HttpServletResponse

我们创建servlet的时会覆盖service()方法,或doGet/doPost(),这些方法都有两个参数,一个代表请求request一个代表响应reponse;设置响应状态码:response.setStatus(304);302:重定向;304:访问缓存;404:地址错误;500:找不到服务器资源

 

Servlet是服务器端程序,主要用来交互式地浏览和修改数据,生成动态web内容。web服务器接收到客户端的Servlet请求后,如果检查到已经装载并创建了该Servlet的实例对象,则会创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表Http响应消息的HttpServletResponse对象,然后调用Servlet的service()方法,将请求和响应对象作为参数传递进去,这样客户端通过HttpServletRequest对象将请求发送给服务器,服务器通过HttpServletResponse对象将响应传递给客户端,达到通信的目的。

HttpServletResponse

 request是请求对象,而response是响应对象。

 

1 HttpServletResponse功能介绍

response对象的功能分为以下四种:

 

设置响应头信息;addHeader(“reFresh”, “5;URL=xxxx”);

发送状态码;sendError(404);

设置响应正文;getWriter().print(“fdsfdsa”);

重定向:sendRedirect(“path”);

 

 

2 设置状态码及其他方法

response.setContentType("text/html;charset=utf-8"):设置响应类型为html,编码为utf-8,处理相应页面文本显示的乱码;

response.setCharacterEncoding(“utf-8”):如果响应类型为文本,那么就需要设置文本的编码类型,然后浏览器使用这个编码来解读文本。注意,如果没有设置contentType,那么浏览器会认为contentType为text/html,如果没设置编码,那么默认为ISO-8859-1编码。所以以上两点在使用response返回结果之前必须设置。

response.setStatus(200):设置状态码;

response.sendError(404, “您要查找的资源不存在”):当发送错误状态码时,Tomcat会跳转到固定的错误页面去,但可以显示错误信息。

 

 

3 设置响应头信息

response.setHeader(“contentType”, “text/html;charset=utf-8”):与setContentType()方法的功能相同。setContentType()方法属于便捷方法;

刷新(定时重定向):

 

response.setHeader("Refresh","5; URL=http://www.baidu.com"):5秒后自动跳转到百度主页。

 

 

代码

public class HelloServlet extends HttpServlet {

       protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              //response不是服务器跳转,需要使用绝对路径         

              //给response设置编码,如果响应类型为文本,我们需要设置响应编码和文本编码

              //设置响应类型和编码response.setContentType("text/html;charset=UTF-8")

              //设置文本编码response.setCharacterEncoding("UTF-8")

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

              response.setCharacterEncoding("UTF-8");           

              //设置响应正文

              response.getWriter().print("3秒后跳转到注册页面");

              //3秒后跳转到1.html页面

              //response.setHeader("reFresh", "3;URL=/request_demo5/1.html");             

              //设置状态码,一般不需要我们自己设置,这是由tomcat来分析的

              //response.setStatus(404);

              //response.setStatus(404, "页面找不到");

              //response.sendError(500, "后台错误");

              //重定向,又叫客服端跳转,访问百度,显著特征地址栏发生变化

              //注意request.getRequestDispatcher().forward(request,response)是服务端跳转

              response.sendRedirect("http://www.baidu.com");       

              /**

               * forward和redirect的区别

               * forward:是服务器端的跳转,地址栏不发生变化

               * redirect:是客服端的跳转,地址栏发送变化

               */     

       @Override

       public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              doGet(request, response);

       }    

}

 

 

 

 

 
 



posted @ 2019-09-27 14:05  阿旭zzz  阅读(264)  评论(0编辑  收藏  举报