HttpServletRequest对象
- 负责接收客户端传送过来的数据,如请求头,发送头的信息等,该对象应用在HTTP协议上,由Tomcat封装好传递过来。service方法中接收的就是HttpServletRequset实例化的对象。
- HttpServletRequset继承自ServletRequset接口,以后如果有新的协议,只需直接继承ServletRequset就行。
接收请求
- 常用方法:
方法 | 作用 |
---|---|
getRequestURL() | 获取客户端发出请求时的完整URL |
getRequestURI() | 获取部分资源名称(项目名称开始) |
getQueryString() | 获取请求行中的参数部分 |
getMethod() | 获取客户端请求方式 |
getProtocol() | 获取http版本号 |
getContextPath() | 获取webapp名字 |
- 获取请求参数
/** * 获取请求参数 * 1:通过参数名获取参数值,返回字符串 * req.getParameter("参数名") * 参数名: * 1:表单元素的name属性值 * 2:ajax 的data 属性的值的键 * 3:超链接参数的键 * 2:通过参数名获取所有的参数值,返回数组 */ // 获取用户名 String Uname = req.getParameter("uname"); String upwd = req.getParameter("upwd"); System.out.println(Uname+" "+upwd );
- 请求乱码问题
- 在Tomcat8之前,Get,Post请求都会乱码,8以后,get不会乱码,post会乱码;(原因:request有默认编码格式,IOS-8859-1,这种编码格式不支持中文)
- // 在参数获取前 设置utf-8
req.setCharacterEncoding(“UTF-8”);
请求转发
- 一种跳转方式,服务端的行为,格式
特点:1.请求转发页面跳转后,地址栏不会发生改变//请求跳转到首页 req.getRequestDispatcher("index.jsp").forward(req,resp);
- 服务端行为
- 请求转发只有一次请求
- request、response 数据对象可以共享(所以可以使用java脚本在jsp页面中写java代码,因为jsp是一个动态页面)
requset作用域
- 通过该对象在一个请求中传递数据(通过将数据设置入request来进行传递,,在java代码里放入数据,来使前端页面可以访问到)作用范围,在一次请求中有效,即服务器跳转有效
- 所以在一次转发请求的过程中,可以使用request作用域来传输/共享数据。
总结
- request 获取客户端传递过来的数据
- 可以设置数据放入作用域里 ,供前端访问。