HttpServletRequest类
-
作用
- 每次只要有请求进入Tomcat服务器,Tomcat服务器就会把请求过来的HTTP协议信息解析好封装到Request对象中。然后拍传递到Service方法(doGet和doPost)中给我们使用。我们可以通过HttpServiceRequest对象,获取到所有请求的信息。
-
HttpServletRequest类的常用方法
方法 说明 getRequestURI() 获取请求的资源路径 getRequestURL() 获取请求的统一的资源定位符 getRemoteHost() 获取客户端的ip地址 getHeader() 获取请求头 getParameter() 获取请求的参数 getParameterValues() 获取请求的参数(多值) getMethod() 获取请求的方法 setAttribute(key,value) 设置域数据 getAttribute(key) 获取域数据 getRequestDispatcher() 获取请求转发对象 -
如何获取请求的参数
-
请求转发
- 请求转发是指,服务器收到请求后,从一个资源跳转到另一个资源的操作请求
-
WEB中的相对路径和绝对路径
-
相对路径:
符号 说明 . 表示当前目录 … 表示上一级目录 资源名 表示当前目录/资源名 -
绝对路径
http://ip:port/工程路径/资源路径
-
-
WEB中’/‘斜杠的不同意义
- 在WEB中/ 斜杠是一种绝对路径。
- / 斜杠如果别浏览器解析,得到的地址是:http://ip:port
- / 斜杠如果被服务器解析,得到的地址是:http://ip:port/工程路径
- /servlet1
- servletContext.getRealPath("/");
- request.getRequestDispatcher("/");
- 特殊:reponse.sendRediect("/");把斜杠发送给浏览器,得到http://ip:port/
HttpServletResponse类
-
HttpServletResponse类的作用
HttpServletResponse类和HttpServletRequest类一样。每次请求进来,Tomcat服务器都会创建一个response对象传递给Servlet程序去使用。HttpServletRequest表示请求过来的信息,HttpServletResponse表示所有响应的信息,可以通过HttpServletResponse对象进行设置返回给客户端的信息。
-
两个输出流的说明
字节流 getOutputStream(); 常用于下载(传递二进制数据)
字符流 getWriter(); 常用于回传字符串
两个流同时只能使用一个。
-
服务器,浏览器显示字符集修改
-
服务器:
resp.setCharacterEncoding("utf-8");
-
浏览器:
resp.setHeader("Content-Type","text/html; charset = UTF-8");
-
同时设置:
resp.setContentType("text/html;charset=utf-8");
注意:此方法一定在获取流对象前才有效
-
-
请求重定向
请求重定向,是指客户端给服务器请求,然后服务器告诉客户端说。我给你一些新地址,你去新地址访问。叫请求重定向(因为以前的地址可能已经废弃)。
响应码状态码 302
Location响应头 新地址
- 特点:
- 浏览器地址会发生变化
- 两次请求
- 不共享Request域中的数据
- 不能访问WEB-INF下的资源
- 可以访问工程外的资源
- 特点:
-
请求重对象第二种方法(推荐)
resp.sendRedirect("http://localhost:8080");