使用servlet处理http响应

来源:互联网 发布:巨鹿之战 知乎 编辑:程序博客网 时间:2024/06/05 19:14

使用Servlet发送服务器端响应信息

Servlet中对HTTP请求的处理过程:

1、  Web浏览器通过打开一个到Web服务器的TCP Socket套接字初始化一个HTTP请求。

2、  对于一个Servlet的每次访问请求,Web容器都会解析Socket输入流中的HTTP请求流数据,创建一个请求对象。同时,创建一个响应对象,用于产生Socket输出流中的HTTP响应流

3、  Web容器调用唆请求的Servlet对象的service()方法,并将请求和响应对象作为参数传递给该方法。其中,作为参数传递进来的响应对象就是HttpServletResponse对象,在Servlet对象的service()方法内部可以调用HttpServletResponse对象的各种方法来创建响应消息

设置响应状态行

状态行分为 HTTP协议,状态码,状态描述三个部分

HTTP状态码分类

100-199 表示信息性代码,表示客户端应采取的其他行动,请求正在进行

200-299 表示客户请求成功

300-399 表示用于已经移走的资源文件,指示新的地址

400-499 表示由客户端引发的错误

500-599 表示由服务器端引发的错误

设置状态码

Servlet设置状态码一般使用HttpServletResponse的setStatus()方法。

简单起见HttpServletResponse为两种常见的情形提供了专用方法:

1、  sendError方法该方法生成一个404的应答,同时生成一个简短的HTML错误信息文档发送给客户

2、  sendRedirect 方法该方法生成一个302的应答,同时在Location头中指示新文档的URL地址

设置响应头

containsHeader(String name)  返回一个布尔值,指示是否设置了制定的响应头

setHeader(String name,String value)  用一个给定的名称和字符串值设置响应头的通用方式。

setIntHeader(String name,int value) 用一个给定的名称和整型值设置响应头。

setDateHeader(String name,long date) 用一个给定的名称和日期值设置响应头

addHeader(String name,int value) 用于在response 中添加一个给定名称和字符串的响应头

addDateHeader(String name,long date) 用于在response 中添加一个给定名称和日期的响应头

setContentType(String mimetype) 用于设置返回给客户端内容的MIME类型

addCookie(Cookie c) 用于向Set-Cookie报头插入一个Cookie

 

设置消息体

使用getWrite()或者getOutputStream()方法,以获取输出流来写入响应内容 传递文本流和传递二进制流

 

设置请求重定向

使用sendRedirect方法实现重定向

 

设置自动刷新和等待页面

Response.setHeader(“Refresh”,”time; URL=url”)

Response.setHeader(“Refresh”,”10; URL=http://localhost/index.html”)


0 0
原创粉丝点击