Servlet response 用法

Servlet response 用法

response 是类 HttpServletResponse 的实例,用于提供给浏览器的响应信息。

设置响应内容

通过 response 设置响应,比如 PrintWriter pw= response.getWriter() 。通过 response.getWriter() 获取一个PrintWriter 对象,可以使用 println()、append()、write()、format() 等等方法设置返回给浏览器的 html 内容。

设置响应格式

response.setContentType("text/html");

“text/html” 是即格式,在request获取头信息 中对应的 request.getHeader(“accept”)。“text/html” 表示浏览器可以识别这种格式,如果换一个其他的格式,浏览器不能识别,那么打开此 servlet 就会弹出一个下载的对话框。这样的手段也就常常用于实现下载功能

设置响应编码

设置响应编码有两种方式,这两种方式都需要在 response.getWriter 调用之前执行才能生效。

response.setContentType("text/html; charset=UTF-8");

这种方式不仅发送到浏览器的内容会使用 UTF-8 编码,而且还通知浏览器使用 UTF-8 编码方式进行显示,所以总能正常显示中文。

response.setCharacterEncoding("UTF-8");

这种方式仅仅是发送的浏览器的内容是 UTF-8 编码的,至于浏览器是用哪种编码方式显示不管。所以当浏览器的显示编码方式不是 UTF-8 的时候,就会看到乱码,需要手动再进行一次设置。

301 或者 302 客户端跳转

客户端有两种跳转

  • 302:表示临时跳转
  • 301:表示永久性跳转

302 采用请求重定向方式即可。

response.sendRedirect("a.html");

301 要使用另外的手段。

response.setStatus(301);
response.setHeader("Location", "a.html");

用户感受不出这两种跳转的区别,但是可以借助火狐的调试工具看到响应的头信息是:301 Moved Permanently。301 和 302 的区别主要在搜索引擎对页面排名的时候有影响,这是属于SEO范畴的概念。

设置不使用缓存

使用缓存可以加快页面的加载,降低服务端的负担,但是也可能看到过时的信息,可以通过如下手段通知浏览器不要使用缓存。

response.setDateHeader("Expires",0 );
response.setHeader("Cache-Control","no-cache");
response.setHeader("pragma","no-cache");
发布了147 篇原创文章 · 获赞 72 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Pranuts_/article/details/97814004