浏览器根据用户的请求方式,将请求相关数据按照HTTP规定的格式,进行封装,然后将封装好的数据发给指定的服务器。
服务器在接收到浏览器的请求信息后,会根据请求信息进行请求处理,将处理结果重新按照HTTP协议的要求进行封装,然后将封装的数据响应给浏览器,浏览器在接收到响应信息后,解析执行。到此一次请求就完整的被处理完毕。
1、服务器在接收到请求(请求行 请求头 空行 请求实体)后,会给此次请求创建一个request对象,此对象 中封存了此次请求相关的数据
2、request的作用:存储请求的数据
注意:每次请求都会创建新的request对象存储请求数据
3、特点:
a、request对象由服务器创建
b 、一次请求创建一个request对象
c、生命周期为一次请求内,请求结束即销毁此次请求的request对象
4、请求来了之后,会去找service方法,如果我们自己写的Servlet中有sevice()方法,那么根据多态性,就会执行我们写的service()方法,如果没有重写service()方法,那么会去父类中找service()方法,service方法会去判断是什么方式的请求,一般是get/post方法,
tomcat服务器其实只认识service方法,如果我们自己声明的servlet中没有覆写service方法,则会执行HttpServlet中的service方法,而HttpServlet中的service方法会根据请求方法调用对应的doXX()方法执行请求处理。
doGet(HttpServletRequest req, HttpServletResponse resp)
特点:
处理get方式的请求。
doPost(HttpServletRequest req, HttpServletResponse resp)
特点:
处理post方式的请求
service(HttpServletRequest req, HttpServletResponse resp)
特点:
无论是什么类型的请求方式,服务器都会优先执行service方法。
注意:
如果我们在自己写的servlet中没有重写service()方法,而是重写了doGet或者是doPost中的一个方法,当请求的方法不匹配的时候会报405错误
响应的Response:
请求方式的中文乱码解决方式:
响应到浏览器的中文乱码解决方式:
response.setContextType("text/html;charset=utf-8")