和请求响应相关的类和接口非常多,主要有:
1. ServletRequest 代表了Servlet的请求。它是一个高层的接口,HttpServletRequest是它的子接口。
2. ServletResponse 代表了Servlet的响应。它是一个高层的接口,HttpServletResponse是它的子接口
3. ServletInputStream Servlet的输入流
4. ServletOutputStream Servlet的输出流
5. ServletRequestWrapper它是ServletResquest的实现
6. ServletResponseWrapper它是ServletResponse的实现
7. HttpServletRequest 代表了HTTP的请求,继承了ServletRequest接口
8. HttpServletResponse 代表了HTTP的响应,继承了ServletResponse接口
9. HttpServletRequestWrapper HttpServletRequest的实现
10.HttpServletResponseWrapper HttpServletResponse的实现
下面主要看看HttpServletRequest和HttpServletResponse这两个接口
1. HttpServletRequest
声明: public interface HttpServletRequest extends ServletRequest
这个接口中最常用的方法就是获得请求中的参数,这个请求中的参数是客户端表单中的数据。HttpServletRequest接口可以获取由客户端传送的阐述名称,也可以获取客户端正在使用的通信协议,可以获取产生请求并且接接收请求的服务器远端主机和其IP地址等一些信息
HttpServletRequest接口提供获取数据流的Servlet、ServletInputStream方法,这些数据时客户端引用HTTP Post和Put方法递交的。一个ServletRequest的子类可以让Servlet获得更多的协议特性数据。
例如:
HttpServletRequest包含获取头部信息的方法有request.getMethod()、request.getProtocol()、request.getPathInfo()等
JSP中的内建对象request是一个HttpServletRequest实例,如下一些重要方法
1.getCookies() 获的客户端发送的Cookie。返回一个数组,该数组包含这个请求中当前所有Cookie。如果这个请求中没有Cookie,返回一个空数组
2.getSession()返回和客户端关联的Session。如果没有给客户端分配Session,返回null
3.getSession(boolean create) 和上一个方法类似,不同的是,如果没有给客户端分配Session,则创建一个新的Session并返回。
4. getParameter(java.lang.String name)返回请求中名为name的参数值。这个值往往是checkbox或者select控件提交的,获得的值是一个String数组
HttpServletResponse
声明: public interface HttpServletResponse extends ServletResponse
它代表了对客户端的HTTP响应。HttpServletResponse接口给出相应的客户端的Servlet方法。它允许Servlet设置内容长度和回应MIME类型,并且提供输出流
常用的方法有:
1. addCookie(Cookie cookie) 在响应中增加一个Cookie
2. encodeURL(java.lang.String.url)使用URL和SessionId重写这个URL
3. sendRedirect(java.lang.String location)把响应发送到另一个页面或者Servlet进行处理
4. setContentType(java.lang.String.type)设置响应的MIME类型
5. setCharacterEncoding(java.lang.String charset)设置响应的字符编码类型