Servlet如何设置服务器返回响应头的信息呢?

Servlet 发布时间:2021-08-12 10:29:34 阅读数:14794 1
响应头的内容是web服务器依据HTTP协议返回给客户端的一些状态信息,
那么Servlet如何设置返回响应头的信息呢?下文将通过示例的方式一一道来,如下所示:

Servlet操作响应头方法简介

编号 方法 & 备注
1 String encodeRedirectURL(String url)
为 sendRedirect 方法中使用的指定的 URL 进行编码,或者如果编码不是必需的,则返回 URL 未改变。
2 String encodeURL(String url)
对包含 session 会话 ID 的指定 URL 进行编码,或者如果编码不是必需的,则返回 URL 未改变。
3 boolean containsHeader(String name)
返回一个布尔值,指示是否已经设置已命名的响应报头。
4 boolean isCommitted()
返回一个布尔值,指示响应是否已经提交。
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 字符集)例如,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, String value)
设置一个带有给定的名称和值的响应报头。
21 void setIntHeader(String name, int value)
设置一个带有给定的名称和整数值的响应报头。
22 void setLocale(Locale loc)
如果响应还未被提交,设置响应的区域。
23 void setStatus(int sc)
为该响应设置状态码。

Servlet操作响应头的示例

下文的示例基于Servlet Hello World进行改进


package servlet01;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/helloWorld")
public class ServletHelloWorld extends HttpServlet {

	private static final long serialVersionUID = 888;

	private String msg;

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		msg = "java265.com is Java WebSite.";
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		// 输出获取的值
		PrintWriter o = resp.getWriter();
		o.println("<h4>" + msg + "</h4>");
		o.println("<h5>Radom:" + System.currentTimeMillis() + "</h5>");

		// 设置响应头信息
		// 设置网页编码
		resp.setContentType("text/html;charset=UTF-8");
		// 设置刷新自动加载时间为 1 秒
		resp.setIntHeader("Refresh", 1);

	}

}


运行以上代码,我们可以发现
  服务器头信息已经被返回客户端,
并且网页会每隔1秒刷新一次
响应头运行示例
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/Servlet/202108/183.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者