栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

关于request对象的学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

关于request对象的学习

HTTP(Hyper Text Transfer Protocol ,超文本传输协议),定义了客户端与服务器端通信时的数据格式
 
请求消息数据格式:

请求行——格式:请求方式 请求url 请求协议/版本,比如:GET /login.html HTTP/1.1
关于请求方式:HTTP协议有7种请求方式,常用的有两种:
▶ GET:请求参数在请求行中(url中);请求的url有长度限制;不太安全
▶ POST:请求参数在请求体中;请求的url没有长度限制;相对安全

请求头——格式:键值对。是客户端浏览器告诉服务器的信息。
关于几个重要的请求头键/值:
▶ User-Agent:浏览器告诉服务器"我是哪个版本的浏览器"。这样服务器才能"对症下药",解决浏览器兼容性问题
▶ Referer:告诉服务器"我的请求的来源"。这被用于 防盗链 和 统计工作。

请求空行——格式:就是个空行。分割了 请求头 和 请求体

请求体——传递的信息。POST方式有请求体,GET方式没有。流的形式获取。
 

1.Request原理

request是服务器创建的对象来给我们使用,request对象封装了浏览器发送过来的所有数据,如果是获取浏览器发送过来的信息那么就找request对象。

1.1request对象继承体系结构

ServletRequest 接口
   ↑继承
HttpServletRequest 子接口
   ↑ 实现
org.apache.catalina.connector.RequestFacade 实现类

2.request对象常见的方法 2.1.获取请求消息的方法
1. 获取请求方式 :GET
	String getMethod()  
2. (*)获取虚拟目录:/day55
	String getContextPath()
3. 获取Servlet路径: /demo1
	String getServletPath()
4. 获取get方式请求参数:name=zhangsan
	String getQueryString()
5. (*)获取请求URI:/day14/demo1
	String getRequestURI():		/day55/demo1	不全的路径
	StringBuffer getRequestURL()  :http://localhost/day55/demo1   
	URL:统一资源定位符 : http://localhost/day55/demo1	
	URI:统一资源标识符 : /day55/demo1				

6. 获取协议及版本:HTTP/1.1
	String getProtocol()
7. 获取客户机的IP地址:
	String getRemoteAddr()
2.2.获取请求参数
用户名:
密码:
String getParameter(String name):根据表单项的name属性值获取value属性值 Enumeration getParameterNames():获取所有的表单项的name属性值 String[] getParameterValues(String name):根据表单项的name属性值获取所有的value属性值 Map getParameterMap():将所有的表单项的name属性值和value属性值都封装 到了map中
2.3乱码问题

                 (1) get请求:
                        tomcat8之前:中文会出现乱码
                        tomcat8之后:中文不会出现乱码
                    
                  (2)post请求:
                            中文会出现乱码


                            原因:两边编码方式
                            
                            tomcat服务器默认编码为ISO-8859-1
                        
                    (3)解决中文乱码
                            需要修改服务器默认编码

request.setCharacterEncoding("utf-8");
3.转发 3.1作用

      请求转发可以帮助实现servlet到其他的servlet或者是页面

       Request对象:
                    public RequestDispatcher getRequestDispatcher(String path)
                    
       RequestDispatcher:
                    public void forward(ServletRequest request, ServletResponse response)

request.getRequestDispatcher("/WEB-INF/demo.html").forward(request, response);

注:利用转发可以访问web-inf下的文件

3.2特点

                    1.请求转发只能进行内部跳转
                    2.请求转发地址值是不会发生改变的
                    3.请求转发只包含一次请求和一次响应

4.共享

request对象是域对象

作用范围:一次请求范围,浏览器发送请求到服务器做成响应结束,请求转发在一次请求范围内;
创建和销毁时间:浏览器发送请求之后服务器创建request对象,服务器做成相应之后销毁;
存值、取值、移除值
    存值:request.setAttribute(String name,Object value);
    取值:Object value=request.getAttribute(String name);
    移除值:request.removeAttribute(String name);

注意:只能使用转发来实现资源的共享

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号