深刻理解ServletRequest与ServletResponse

深刻理解ServletRequest与ServletResponse
 
请求和相应是Web交互最基本的模式,在Servlet中,分别用HttpServletRequest与HttpServletResponse来表示Http请求和响应。这两个类均来自javax.servlet.http包,是J2EE Servlet与JSP规范的一部分,所以,谈及
HttpServletRequest与HttpServletResponse的时候,其实都是和Servlet(包括JSP)有关的。与HTML、ASP、PHP是没有关系的,你也没法在HTML中使用它们。
 
 
 
下面是一个详细过程:
 
1、ServletRequest
 
表明一个HTTP请求,请求在内存中是一个对象,这个对象是一个容器,能够存放请求参数和属性。
 
一、请求对象什么时候被建立,当经过URL访问一个JSP或者Servlet的时候,也就是当调用Servlet的service()、doPut()、doPost()、doXxx()方法时候的时候,执行Servlet的web服服务器就自动建立一个ServletRequest和ServletResponse的对象,传递给服务方法做为参数。
 
二、请求对象由Servlet容器自动产生,这个对象中自动封装了请求中get和post方式提交的参数,以及请求容器中的属性值,还有http头等等。当Servlet或者JSP获得这个请求对象的时候,就知道这个请求时从哪里发出的,请求什么资源,带什么参数等等。
 
三、ServletRequest的层次结构
javax.servlet.ServletRequest
  javax.servlet.http.HttpServletRequest
 
四、经过请求对象,能够得到Session对象和客户端的Cookie。
 
五、请求须要指定URL,浏览器根据URL生成HTTP请求并发送给服务器,请求的URL有必定的规范:
 
2、ServletResponse
 
也是由容器自动建立的,表明Servlet对客户端请求的响应,响应的内容通常是HTML,而HTML仅仅是响应内容的一部分。
 
 
相应对象有如下功能:
一、向客户端写入Cookie
二、重写URL
三、获取输出流对象,向客户端写入文本或者二进制数据
四、设置响应客户端浏览器的字符编码类型
五、设置客户端浏览器的MIME类型。
 
3、GET与POST的本质区别
 
get请求的参数参数在url里面,不安全,post请求的参数放在请求体中,安全。
 
 
4、认识MIME类型
 
 
 
 
 
 
参考资料:
HeadFirst Servlet&JSP