ServletRequest,HttpServletRequest ServletResponse,ServletResponse的区别

来源:互联网 发布:des加密算法java实现 编辑:程序博客网 时间:2024/04/26 04:50

ServletRequest,HttpServletRequest 

ServletResponse,HttpServletResponse

的区别:

 

所有

Servlet

响应都实现

ServletResponse

接口。

ServletResponse

接口

主要有以下方法:

 

 

 

1

)从

Servlet

中可以通过

getWriter

方法取得

PrintWriter

对象,来输

出字符数据。从

Servlet

中可以通过

getOutputStream

方法取得

ServletoutputStream

对象。

ServletOutputStream

既可以输出字符数据,也可

以输出

MIME

格式的二进制数据。如果

getWriter

方法已经被使用过,当使用

getOutputStream

时,会有

java.lang.IllegalStateException

例外抛出。

 

 

 

2

setContentType

方法:在响应中可以表明内容格式和长短。

 

 

 

3

setBufferSize

方法:设置

Web

容器的缓冲器大小

; getBufferSize

方法返回

Web

容器的缓冲器大小

; resetBuffer

方法清空并重置缓冲器,使用

reset

方法清空缓冲器、状态头信息,使用

flushBuffer

方法将缓冲器内的所有

输出内容向客户传递。使用

isCommitted

方法判断是否响应已经被履行。“履

行”的定义是指状态码冬耕信息已经被写入响应。

 

 

 

4

setLocal

方法设定响应的地域信息,主要在

Web

程序的国际货币国际

化时使用。

这个方法应该在

getWriter

之前被使用。

默认的

Web

服务器的地域信

息。

 

 

 

HttpServletResponse

继承了

ServletResponse

接口,并提供了与

Http

议有关的方法,这些方法的主要功能是设置

HTTP

状态码和管理

Cookie

 

 

 

1

setStatus

方法用来设置

Servlet

向客户端返回的状态码,它用来设

置没有出错的状态。如果

Servlet

运行出错,

Servlet

可以使用

sendError

方法

设置状态码,如

sendError(int sc)

方法设置错误状态代码。

sendError(int 

sc,String msg)

方法除了设置状态码,还向客户发出一条错误信息。

 

 

 

2

setHeader

可以指定特定名称的头信息的值,

addDateheader

addIntHeader

setDateHeader

setIntHeader

可以加入或理性特定时间或整数

型头信息。

 

 

 

3

addCookie

方法可以在

Web

服务器响应中加入

Cookie

对象,这个对象

将被浏览器所保存。

Cookie

机制也被用来维护会话状态。

 

 

 

4

sendRedirect

方法向客户发出临时重新导向的响应。它生成的响应状

态码为

302

。该响应给了客户一个新的

URL

风趣。如果缓冲器已经被清空,这个

方法会弹出一个

IllegalStateException

例外。

 

内置对象是不需要声明,直接可以在

JSP

中使用的对象,

JSP

有以下几种内置对

象:

  

 

request request

表示

HttpServletRequest

对象。它包含了有关浏览器请求的

信息,并且提供了几个用于获取

cookie, header, 

session

数据的有用的方

法。

 

response 

response

表示

HttpServletResponse

对象,并提供了几个用于设置送

回浏览器的响应的方法(如

cookies,

头信息等)

 

out 

out 

对象是

javax.jsp.JspWriter

的一个实例,

并提供了几个方法使你能用

于向浏览器回送输出结果。

 

pageContext 

pageContext

表示一个

javax.servlet.jsp.PageContext

对象。它

是用于方便存取各种范围的名字空间、

servlet

相关的对象的

API

,并且包装了

通用的

servlet

相关功能的方法。

 

session session

表示一个请求的

javax.servlet.http.HttpSession

对象。

Session

可以存贮用户的状态信息

 

application applicaton 

表示一个

javax.servle.ServletContext

对象。这有

助于查找有关

servlet

引擎和

servlet

环境的信息

 

config 

config

表示一个

javax.servlet.ServletConfig

对象。该对象用于存取

servlet

实例的初始化参数。

 

page page

表示从该页面产生的一个

servlet

实例。

 

Servlet API

中的几个对象

 

JSP

提供了八个内部对象,而其中的五个内部对象对应于

Servlet 

API

中的七个

对象,

这也就使得我们正常理解并熟练使用

Servlet

中的这七个对象显得尤其重

要。这五个

JSP

的内部对象和

Servlet API

中的对象的对应关系是:

 

request

javax.servlet.http.HttpServletRequest

javax.servlet.ServletRequest 

response

javax.servlet.http.HttpServletResponse

javax.servlet.ServletResponse 

session

对象对应于:

javax.servlet.http.HttpSession 

application

对象对应于:

javax.servlet.ServletContext 

config

对象对应于:

javax.servlet.ServletConfig 

javax.servlet.http.HttpServletRequest 

这是一个接口,在我们提到接口之前,还是让我们来复习一下

Java

中接口的一

个初步的解释:

 

接口在语法上与类相似,

但是接口没有实例,

使用接口,

只是指定类必须做什么

而不是如何做。

 

HttpServletRequest

接口用来处理一个对

Servlet

HTTP

格式的请求信息。

 

 

javax.servlet.ServletRequest 

这也是一个接口,这个接口定义一个

Servlet

引擎产生的对象,通过这个对象,

Servlet

可以获得客户端请求的数据。

这个对象通过读取请求体的数据提供包括

javax.servlet.http.HttpServletRequest

也只是该接口的一个扩展,也就是

说,

该接口的所有方法也可以被

javax.servlet.http.HttpServletRequest

所使

用。

 

 

javax.servlet.http.HttpServletResponse

接口

 

该接口用来描述一个返回到客户端的

HTTP

回应。

 

 

javax.servlet.ServletResponse

接口

 

该接口用来定义一个

Servlet

引擎产生的对象,通过这个对象,

Servlet

对客户

端的请求作出响应。

这个响应应该是一个

MIME

实体,

可能是一个

HTML

页、

图象

数据或其他

MIME

的格式。

javax.servlet.http.HttpServletResponse

接口是该

接口的扩展。

 

 

javax.servlet.http.HttpSession

接口

 

该接口用来描述一个

session

至于什么是

session

我想在这里就没必要说了吧。

 

 

javax.servlet.ServletContext

接口

 

该接口用来定义了一个

Servlet

的环境对象。

也可是认为这是多个客户端共享的

信息,它与

session

的区别在于应用范围的不同,

session

只对应于一个用户。

 

 

javax.servlet.ServletConfig

接口

 

该接口定义了一个对象,通过这个对象,

Servlet

引擎配置一个

Servlet

。每一

ServletConfig

对象对应着一个唯一的

Servlet

 

 

javax.servlet.http.Cookie

 

这个类描述了一个

cookie

cookie

的作用其实与

session

很类似,只是

cookie

保存在客户端,

session

保存在服务器端


0 0