HttpServletRequest 和HttpServletResponse
HttpServletRequest 和HttpServletResponse
理解:
- HttpServletRequest 是服务器接收来自客户端的数据 多用于获取请求
- HttpServletResponse 是服务器发送数据给客户端 多用于给客户端反馈(也可以用于跳转服务器)
HttpServletRequest 主要方法
(1)getMethod:返回请求方式(如GET)
(2)getRequestURI:返回请求行中的资源名字部分(如/test/index.html )
(3)getRequestURL:返回浏览器地址栏中的所有信息
(4)getContextPath:获取当前项目的上下文路劲
(5)getRemoteAddr:返回发出请求的客户机的IP地址
(6)getRequestURL:返回客户端请求的完整URL(包括协议、服务器名、端口号、资源路径信息),不含查询参数
(7)getHeader:返回指定名称的头字段的值
获取表单请求参数:
①String getParameter(String name):返回指定名字参数的值
②String[] getParameterValues(String name):返回指定名字参数的多个参数值。(复选框)
③Enumeration
④Map<String,String[]> getParameterMap():返回所有的参数和值所组成的Map对象
HttpServletResponse 主要方法
(1)OutputStream getOutputStream():获取字节输出流对象( 文件下载)。
(2)PrintWriter getWriter(): 获取字符输出流对象
(3)response.setContentType("text/html"),设置输出的MIME类型(内容的类型)
(4)response.setCharacterEncoding("UTF-8"),response.setContentType("text/html;charset=utf-8"),设置输出数据的编码方式
关于重定向和跳转
客户端跳转(重定向): 登录信息验证不通过时(格式不对) 需要重新输入数据 可以覆盖数据
- 一共发送了两次请求
- 可以跳转到站外
- 跳转路径需要包含 context-path
- 实现方案:
- resp.setStatus(302);resp.addHeader("Location","客户端路径,需要包含context-path");
- resp.sendRedirect("客户端路径,需要包含context-path");
服务端跳转: 登录成功时将客户端的数据传到服务器进行下一步验证
-
一共只发送了一次请求
-
不可以跳转到站外,只能在当前网站跳转
-
跳转路径不需要包含 context-path
-
实现方案:
- req.getRequestDispatcher("跳转路径,不需要 context-path").forward(req,resp);
当两个Servlet需要传递数据时,选择forward转发。不建议使用sendRedirect进行传递

浙公网安备 33010602011771号