深入理解ServletRequest与ServletResponse
请求和相应是Web交互最基本的模式,在Servlet中,分别用HttpServletRequest与HttpServletResponse来表示Http请求和响应。这两个类均来自javax.servlet.http包,是J2EE Servlet与JSP规范的一部分,因此,谈及
HttpServletRequest与HttpServletResponse的时候,其实都是和Servlet(包括JSP)有关的。与HTML、ASP、PHP是没有关系的,你也无法在HTML中使用它们。
下面是一个详细过程:
一、ServletRequest
代表一个HTTP请求,请求在内存中是一个对象,这个对象是一个容器,可以存放请求参数和属性。
1、请求对象何时被创建,当通过URL访问一个JSP或者Servlet的时候,也就是当调用Servlet的service()、doPut()、doPost()、doXxx()方法时候的时候,执行Servlet的web服服务器就自动创建一个ServletRequest和ServletResponse的对象,传递给服务方法作为参数。
2、请求对象由Servlet容器自动产生,这个对象中自动封装了请求中get和post方式提交的参数,以及请求容器中的属性值,还有http头等等。当Servlet或者JSP得到这个请求对象的时候,就知道这个请求时从哪里发出的,请求什么资源,带什么参数等等。
3、ServletRequest的层次结构
javax.servlet.ServletRequest
javax.servlet.http.HttpServletRequest
4、通过请求对象,可以获得Session对象和客户端的Cookie。
5、请求需要指定URL,浏览器根据URL生成HTTP请求并发送给服务器,请求的URL有一定的规范:
二、ServletResponse
也是由容器自动创建的,代表Servlet对客户端请求的响应,响应的内容一般是HTML,而HTML仅仅是响应内容的一部分。
相应对象有以下功能:
1、向客户端写入Cookie
2、重写URL
3、获取输出流对象,向客户端写入文本或者二进制数据
4、设置响应客户端浏览器的字符编码类型
5、设置客户端浏览器的MIME类型。
三、GET与POST的本质区别
get请求的参数参数在url里面,不安全,post请求的参数放在请求体中,安全。
四、认识MIME类型
参考资料:
HeadFirst Servlet&JSP
本文出自 “熔 岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/275586
分享到:
相关推荐
`ServletRequest`和`ServletResponse`分别代表请求和响应,用于获取和设置客户端的数据。 4. `getServletInfo()`: 返回关于Servlet的信息,如作者、版本等。 5. `destroy()`: 当Servlet不再需要时,容器调用此方法...
- `service()`:核心方法,处理客户端请求,接收ServletRequest和ServletResponse对象,负责发送响应。 - `getServletConfig()`和`getServletInfo()`:辅助方法,获取Servlet配置和信息。 以下是一个简单的...
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse httpResponse = (HttpServletResponse) response; ...
- `service(ServletRequest request, ServletResponse response)`: 这是Servlet处理请求的核心方法,它接收来自客户端的ServletRequest和ServletResponse对象,根据请求类型执行相应的操作,并通过ServletResponse...
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest...
Servlet API 提供了丰富的接口和类,例如 Servlet、GenericServlet、HttpServlet、ServletRequest、ServletResponse 等,用于开发 Web 组件。 2. Servlet 的定义: Servlet 可以从不同的角度进行描述: - 技术层面...
`javax.servlet.http.HttpServletRequest`和`javax.servlet.http.HttpServletResponse`是ServletRequest和ServletResponse的HTTP实现,它们提供了更具体的HTTP特性,如获取请求URL、Cookie、Session等。 Servlet...
Java Servlet API是Java Web开发中的核心组件,它定义了服务器端如何处理HTTP请求以及与Web应用程序交互的接口和类。...虽然这里的文档是英文版,但对于深入理解和使用Servlet技术来说,仍然是必不可少的参考资料。
开发者可以从中学习到`HttpServlet`、`ServletConfig`、`ServletRequest`和`ServletResponse`等核心接口和类的实现细节,以及它们如何协同工作来处理Web请求。 1. `HttpServlet`:这是所有Servlet的基类,提供了...
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest...
4. 容器将请求封装成ServletRequest对象,将响应封装成ServletResponse对象,然后调用Servlet的service()方法。 5. service()方法根据请求类型(GET、POST等)选择合适的doXXX方法(如doGet、doPost)进行处理。 6. ...
4. 容器将请求封装成ServletRequest对象,响应封装成ServletResponse对象。 5. 调用Servlet的service()方法,此方法会根据请求方法(GET、POST等)转发到对应的方法,如doGet()或doPost()。 6. Servlet在这些方法中...
6. javax.servlet.ServletRequest和ServletResponse:分别表示HTTP请求和响应,提供了获取请求数据和设置响应内容的方法。 此外,Servlet API还提供了过滤器(Filter)和监听器(Listener)的概念,它们允许开发者...
此外,还会涉及Servlet的配置,如web.xml文件中的配置元素,以及如何利用ServletContext、ServletRequest和ServletResponse接口来获取和响应数据。 JSP方面,本书会讲解JSP的脚本元素、JSP指令、JSP表达式、EL...
`javax.servlet.Filter`接口定义了过滤器的核心方法,如`doFilter(ServletRequest request, ServletResponse response, FilterChain chain)`。过滤器链 (`FilterChain`) 允许一个过滤器调用下一个过滤器,直到请求...
通过深入理解这些Servlet接口,开发者可以更好地控制和定制Servlet的行为,以满足不同Web应用的需求。在提供的"PPT"文件中,可能详细阐述了这些接口的使用方法和实例,建议结合该资料进一步学习和实践。
`doFilter(ServletRequest request, ServletResponse response, FilterChain chain)`方法是核心,通过调用`chain.doFilter(request, response)`将请求传递给下一个Filter或目标Servlet。 七、Servlet容器与部署 ...
容器传递`ServletRequest`和`ServletResponse`对象,分别代表请求和响应。开发人员在此处编写处理逻辑,根据请求数据生成响应内容。 3. `destroy()`: 当Servlet不再需要时,容器调用此方法,释放Servlet占用的资源...
ServletRequest和ServletResponse,用于获取和设置HTTP请求和响应的信息。 另一方面,javax.zip包是Java的标准API,用于处理ZIP文件。例如,java.util.zip类库提供了一系列工具类,如ZipInputStream、...
6. **ServletRequest和ServletResponse接口**:分别表示HTTP请求和响应,提供了获取请求参数、设置响应头和内容的方法。 7. **Filter和FilterChain接口**:用于实现请求过滤,可以拦截、修改或转发请求和响应,实现...