深圳幻海软件技术有限公司欢迎您!

幻海优品

JSP - 服务器响应

在本章中,我们将讨论JSP中的服务器响应.当Web服务器响应HTTP请求时,响应通常由状态行,一些响应头,空行和文档组成.典型的响应看起来像这样 : 去;

HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ......HeaderN: ...   (Blank Line)<!doctype ...><html>   <head>...</head>   <body>      ...   </body></html>

状态行包含HTTP版本(示例中为HTTP/1.1),状态代码(200在示例中),以及对应于状态代码的非常短的消息(在示例中为OK).

以下是对最有用的HTTP 1.1响应标头,从Web服务器返回浏览器.这些标题经常用于网络编程和减号;

S.No.标题&描述
1

允许

此标头指定请求方法( GET,POST 等)服务器支持.

2

缓存控制

此标头指定响应文档的情况安全地被缓存.它可以具有值 public,private no-cache 等.公共意味着文档是可缓存的,私有意味着文档是针对单个用户的,并且只能存储在私有中(非共享) )缓存和无缓存意味着永远不应该缓存文档.

3

连接

此标题指示浏览器是否使用持久性HTTP连接.值 close 指示浏览器不使用持久HTTP连接, keep-alive 表示使用持久连接.

4

Content-Disposition

此标题允许您请求浏览器要求用户将响应保存到给定名称的文件中.

5

内容编码

此标头指定在传输过程中页面的编码方式.

6

内容 - 语言

此标题表示文档的编写语言.例如, en,en-us,ru,等.

7

内容长度

此标头指示响应中的字节数.仅当浏览器使用持久(保持活动)HTTP连接时才需要此信息.

8

内容类型

此标题提供响应文档的 MIME (多用途Internet邮件扩展名)类型.

9

过期

此标头指定内容应被视为过期的时间,因此不再被缓存.

10

上次修改

此标题指示上次更改文档的时间.然后,客户端可以缓存文档,并在以后的请求中通过 If-Modified-Since 请求标头提供日期.

11

位置

此标头应包含在状态代码为300s的所有响应中.这会通知浏览器文档地址.浏览器会自动重新连接到此位置并检索新文档.

12

刷新

此标头指定浏览器应该多久要求更新页面.您可以指定刷新页面的秒数.

13

重试 - 之后

此标题可以与 503(服务不可用)响应一起使用,告诉客户可以多快重复其请求.

14

Set-Cookie

此标题指定与页面关联的Cookie.

HttpServletResponse对象

响应对象是 javax.servlet.http.HttpServletResponse对象的一个实例的.就像服务器创建请求对象一样,它也会创建一个对象来表示对客户端的响应.

响应对象还定义了处理创建新HTTP头的接口.通过这个对象,JSP程序员可以添加新的cookie或日期戳,HTTP状态代码等.

以下方法可用于在servlet程序中设置HTTP响应头.这些方法可用于 HttpServletResponse 对象.此对象表示服务器响应.

S.不.方法&描述
1

String encodeRedirectURL(String url)

对指定的URL进行编码,以便在 sendRedirect 方法中使用或,如果不需要编码,则返回URL不变.

2

String encodeURL(String url)

通过在其中包含会话ID来对指定的URL进行编码,或者,如果不需要编码,则返回不变的URL.

3

boolean containsHeader(String name)

返回一个布尔值,指示是否已设置指定的响应头.

4

boolean isCommitted( )

返回布尔n表示响应是否已提交.

5

void addCookie(Cookie Cookie)

添加指定响应的cookie.

6

void addDateHeader(String name,long date)

添加一个具有给定名称和日期值的响应标题.

7

void addHeader(String name,String value)

添加具有给定名称和值的响应标头.

8

void addIntHeader(String name,int value)

添加一个具有给定名称和整数值的响应头.

9

void flushBuffer()

强制将缓冲区中的任何内容写入客户端.

10

void reset()

清除缓冲区中存在的所有数据以及状态代码和标题.

11

void resetBuffer()

清除响应中底层缓冲区的内容,而不清除标题或状态代码.

12

void sendError(int sc)

使用指定的状态代码向客户端发送错误响应并清除缓冲区.

13

void sendError(int sc,String msg)

使用指定的状态向客户端发送错误响应.

14

void sendRedirect(String location)

使用指定的重定向位置向客户端发送临时重定向响应URL.

15

void setBufferSize(int size)

设置主体的首选缓冲区大小回应.

16

void setCharacterEncoding(String charset)

设置字符编码(MIME charset)发送给客户的响应,例如,发送到UTF-8.

17

void setContentLength(int len)

设置响应中内容主体的长度在HTTP servlet中;此方法还设置HTTP Content-Length标头.

18

void setContentType(String type)

如果响应尚未提交,则设置发送给客户端的响应的内容类型.

19

void setDateHeader(String name,long date)

设置一个具有给定名称和日期值的响应标题.

20

void setHeader(String name ,字符串值)

设置具有给定名称和值的响应标头.

21

void setIntHeader (String name,int value)

使用g设置响应头iven名称和整数值.

22

void setLocale(Locale loc)

设置的语言环境响应,如果响应尚未提交.

23

void setStatus(int sc)

设置此响应的状态代码.

HTTP标头响应示例

以下示例将使用 setIntHeader()方法设置刷新标头以模拟数字时钟 :

<%@ page import = "java.io.*,java.util.*" %><html>      <head>      <title>Auto Refresh Header Example</title>   </head>      <body>      <center>         <h2>Auto Refresh Header Example</h2>         <%            // Set refresh, autoload time as 5 seconds            response.setIntHeader("Refresh", 5);                        // Get current time            Calendar calendar = new GregorianCalendar();                        String am_pm;            int hour = calendar.get(Calendar.HOUR);            int minute = calendar.get(Calendar.MINUTE);            int second = calendar.get(Calendar.SECOND);                        if(calendar.get(Calendar.AM_PM) == 0)                am_pm = "AM";            else               am_pm = "PM";               String CT = hour+":"+ minute +":"+ second +" "+ am_pm;               out.println("Current Time is: " + CT + "\n");         %>      </center>      </body></html>

现在将上面的代码放在 main.jsp 中并尝试访问它.这将显示每5秒后的当前系统时间,如下所示.运行JSP.您将收到以下输出: :

Auto Refresh Header ExampleCurrent Time is: 9:44:50 PM

你可以尝试一下其他方法也是类似的.

免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除