美文网首页
Servlet中的HttpServletResponse接口

Servlet中的HttpServletResponse接口

作者: 让你变好的过程从来都不会很舒服 | 来源:发表于2021-09-14 11:24 被阅读0次

    HttpServletResponse简介

    Web服务器收到客户端的http请求,会针对每一次请求,创建一个用于代表响应的HttpServletResponse类型的response对象,开发者可以将要向客户端返回的数据封装到response对象中。

    HttpServletResponse向客户端发送数据

    ServletResponse 接口有一个方法 getWriter(),用于获取到一个输出流对象 PrintWriter,
    该输出流对象是专门用于向客户端浏览器中输出字符数据的,称为标准输出流。

    package com.monkey1024.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * 使用HttpServletResponse向客户端发送数据
     * 
     */
    public class ResponseTest01 extends HttpServlet {
        private static final long serialVersionUID = 1L;
    
    
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //设置post请求的字符编码,此方式只对post请求有效
            request.setCharacterEncoding("UTF-8");
            //根据html中的name的名字获取用户在input中填写的value值
            String username = request.getParameter("username");
    
            //从response中取得PrintWriter对象
            PrintWriter out = response.getWriter();
            //向客户端发送数据
            out.print("用户:" + username + "添加成功!<br>");
            out.print("感谢您的注册");
            //关闭PrintWriter
            out.close();
        }
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
    
    }
    

    HttpServletResponse响应乱码的解决方案

    响应时会产生乱码的原因是在 HTTP 协议中规定,默认响应体的字符编码为ISO-8859-1。所以,若要解决乱码问题,就需要修改响应体的默认编码。一般情况下,有两种方式可以修改:

    1、方法一:HttpServletResponse 的 setCharacterEncoding(“utf-8”)方法,将编码修改为utf-8,然后再通过setHead(“Content-type”,”text/html;charset=UTF-8″);方法告诉客户端浏览器的编码方式。
    代码

    response.setCharacterEncoding("UTF-8");
      response.setHead("Content-type","text/html;charset=UTF-8");
    

    2、方法二:为了简便操作,开发者可以直接使用HttpServletResponse 的 setContentType(“text/html;charset=utf-8”)方法,告诉浏览器的编码方式,该方法相当于方法一种的两条代码。
    代码:

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

    注意:设置响应编码时必须在 PrintWriter 对象产生之前先设置,否则将不起作用。

    相关文章

      网友评论

          本文标题:Servlet中的HttpServletResponse接口

          本文链接:https://www.haomeiwen.com/subject/dcfuhltx.html