Requers对象和Response对象原理
请求(请求消息)
响应(响应消息)
1.Tomcat服务器会根据请求URL中的资源路径,创建对应的ServletDemo的对象。
2.Tomcat服务器会创建request和response对象,request对象中的封装请求消息数据。
3.Tomcat将request和response两个对象传递给servic方法,并且调用service方法。
4.程序员可以来操作request获取请求消息数据,通过response对象设置相应消息数据。
5.服务器再给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据。
request和response是由服务器创建的,我们使用。
request对象是获取请求消息,response对象是设置响应消息。
request对象继承体系结构
ServletRequest --接口
继承 |
HttpServletRequest --接口
实现 |
org.apache.catalina.connector.RequestFacade --类(Tomcat编写实现了HttpServlet接口,Tomcat通过这个类创建Http对象并传递给service方法)
request功能
获取请求消息数据
1.获取请求行数据
例:GET /day04_servlet/demo5?name=xxx HTTP/1.1
八个方法:
①获取请求方式:GET , String getmethod()
【重点】获取虚拟目录:/day04_servlet , String getContextPath()
②获取Servlet路径:/demo5 , String getServletPath()
③获取GET方式请求参数:name=xxx , String getQueryString()
④获取请求的URI:/day04_servlet/demo5
【重点】String getRequestURI():/day04_servlet/demo5
⑤StringBuffer getRequestURL():http://localhost/day04_servlet/demo5
URL统一资源定位符:http://localhost:8080/day04_servlet/RequestDemo1
URI统一资源标识符:/day04_servlet/RequestDemo1 【范围更大】
⑥获取协议及版本:HTTP/1.1 , String getProtocol()
获取客户机IP地址:String getRemoteAddr()
/**
- 演示Request对象获取请求行数据
*/
@WebServlet("/RequestDemo1")
public class RequestDemo1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.获取请求方式:GET
String method = request.getMethod();
System.out.println(method