• JavaWeb-HttpServletResponse对象一


    web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象。resquest和response对象既然代表请求和响应,那么要获取客户机提交过来的数据,只需要找request对象就行了。要想客户机输出数据,只需要找response对象就行了。

    HttpServletResponse对象介绍

    HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据,发送响应头,发送响应状态码的方法。

    1.向客户端(浏览器发送数据的相关方法),继承自ServletResponse

     

    2.负责向客户端(浏览器)发送响应头的相关方法

    3.负责向客户端(浏览器)发送响应状态码的相关方法

    4.响应状态码常量

     HttpServletResponse对象常见应用

    使用OutputSteam流向客户端浏览器输出中文数据

    使用OutputStream输出中文要注意:在服务器端,数据是以哪个码表输出的,那么就要在客户端浏览器以相应的码表打开,比如:OutputStream.write(“北邮”.getBytes("UTF-8"));;使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?可以通过设置响应头控制浏览器的行为,如:response.setHeader("content-type", "text/html;charset=UTF-8");通过设置响应头控制浏览器以UTF-8的编码显示数据。

    package com.fpc;
    
    import java.io.IOException;
    import java.io.OutputStream;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class ServletContextDemo1 extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            // TODO Auto-generated method stub
    //        String data = "<h1><font color='blue'>fpc_20171206</font></h1>";
    //        resp.getOutputStream().write(data.getBytes());
    //        ServletContext context = this.getServletContext();//获取ServletContext对象
    //        RequestDispatcher rd = context.getRequestDispatcher("/servletContext/servletContextDemo2");//获取请求转发对象
    //        rd.forward(req, resp);
    //        String data = "fpc_2017/12/06 14:07";
            /*
             * 设置合理的缓存时间值,以避免浏览器向服务器发送请求,提升服务器的性能
             * 这里是将数据的缓存时间设置为1天
             * */
    //        resp.setDateHeader("expires", System.currentTimeMillis() + 24 *3600*1000);
    //        resp.getOutputStream().write(data.getBytes());
            String data = "北邮";
            //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示地是乱码
            
            resp.setHeader("content-type", "text/html;charset=UTF-8");
            OutputStream outputStream = resp.getOutputStream();
            /*data.getBytes()是一个将字符转换成字节数组的过程,这个过程一定会去查码表,
             * 如果是中文的操作系统环境,默认就是查找GB2312码表
             * */
            
            byte[] b = data.getBytes("UTF-8");
            
            outputStream.write(b);
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            // TODO Auto-generated method stub
            super.doPost(req, resp);
        }
        
    }

    运行结果:

  • 相关阅读:
    python---常见排序算法
    flask之session
    Python常考面试题
    MySQL一致性非锁定读原理以及MVCC简介
    mysql面试常考知识点
    数据库学习笔记4数据系统的组成
    工作记录之拯救rm -rf /*(无root权限拯救恢复基础功能)
    数据库学习笔记3数据库的系统结构
    数据库学习笔记2数据模型
    数据库学习笔记1
  • 原文地址:https://www.cnblogs.com/fangpengchengbupter/p/7992671.html
Copyright © 2020-2023  润新知