zoukankan      html  css  js  c++  java
  • 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 {

           @Override

           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);

           }

          

    }


    原文链接:https://blog.csdn.net/weixin_41547486/article/details/81266768

  • 相关阅读:
    【Spark学习笔记】第一章 Windows10(64位)主机上搭建基于IntelliJ IDEA的spark+scala开发环境
    【Oracle数据库相关】Oracle数据库在CentOS6.5环境下的安装以及相关操作
    【SNMP】Linux系统下安装net-snmp
    【SNMP】SNMP概述
    【转】 memwatch使用说明书
    [转]GCC参数详解
    【Linux C中文函数手册】 字符串转换函数
    【Linux C中文函数手册】文件内容控制函数
    【Linux C中文函数手册】之 目录操作函数
    [心智历练]---高效、静心、持续
  • 原文地址:https://www.cnblogs.com/liang-chen/p/11969989.html
Copyright © 2011-2022 走看看