HttpServletRequest类
HttpServletRequest类有什么作用。
每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息。
HttpServletRequest类的常用方法
i. getRequestURI() 获取请求的资源路径
ii.getRequestURL() 获取请求的统一资源定位符(绝对路径)
iii. getRemoteHost() 获取客户端的 ip地址
iv.getHeader() 获取请求头
v. getParameter() 获取请求的参数
vi. getParameterValues() 获取请求的参数(多个值的时候使用)
vii. getMethod() 获取请求的方式GET或POST
viii. setAttribute(key,value); 设置域数据
ix.getAttribute(key); 获取域数据
x. getRequestDispatcher() 获取请求转发对象
获取请求参数


&1.注意:requset中的getparameter方法是根据name属性来获取的,如果不设置name属性是获取不到值的
&2.表单提交可以将值获取到值,在浏览器直接输入也可以获取
POST请求的中文乱码解决
// 设置请求体的字符集为UTF-8,从而解决post 请求的中文乱码问题
req.setCharacterEncoding(“UTF-8”);
请求的转发

内部跳转无法跳转到工程以外的jsp或者servlet,外部跳转则可以。
往客户端回传数据

// 它会同时设置服务器和客户端都使用UTF-8 字符集,还设置了响应头
// 此方法一定要在获取流对象之前调用才有效
resp.setContentType(“text/html; charset=UTF-8”);
请求重定向
请求重定向的第一种方案:
// 设置响应状态码302 ,表示重定向,(已搬迁)
resp.setStatus(302);
// 设置响应头,说明 新的地址在哪里
resp.setHeader(“Location”, “http://localhost:8080“);
请求重定向的第二种方案(推荐使用):
resp.sendRedirect(“http://localhost:8080“);外部跳转可以跳转到工程以外的jsp或者servlet
