zoukankan      html  css  js  c++  java
  • response.getWriter().write()和 response.getWriter().print()的区别 以及 PrintWriter对象 和 out对象 的区别

    感谢原文作者:krismile__qh
    原文链接:https://blog.csdn.net/krismile__qh/article/details/89926001

    一、response.getWriter().write()和

    response.getWriter().print()的区别
    response.getWriter()返回的是PrintWriter,这是一个打印输出流

    response.getWriter().write()response.getWriter().print()是响应给客户端的东西,如果不用ajax接收将数据放在合适的位置,就会在浏览器上生成一个新的页面来显示内容

    print

    response.getWriter().print(),不仅可以打印输出文本格式的(包括html标签)还可以将一个对象以默认的编码方式转换为二进制字节输出

    writer

    response.getWriter().writer(),只能打印输出文本格式的(包括html标签)不可以打印对象
    客户端演示代码:

    <head>
        <script type="text/javascript" src="js/jquery.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){     
                $("#button1").click(function(){             
                    $.get("AJAXServer",null,function(data){                 
                        alert(data);                
                        $("#info").html(data);            
                    });            
                });    
            })
        </script>
    </head>
    <body>
        <input type="button" id="button1" value="点我获取服务器响应信息" onclick="a()";/>
    </body>
    
    

    输出对象服务器端代码:

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {              
        Person person = new Person();              
        person.setName("sjl");             
        response.getWrier().print(person);
    }
    
    

    运行结果

    server.Person@5bd5ab 
    //如果使用response.getWriter().writer(),则代码会报错
    

    总结:

    (1)、write()仅支持输出字符类型数据,字符、字符数组、字符串等
    (2)、print()可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式,这些字节都通过write(int c)方法被输出

    二、response.getWriter()获得的PrintWriter对象和out对象的区别

    (1)、outresponse.getWriter的类不一样,一个是JspWriter,另一个是java.io.PrintWriter

    (2)、执行原理不同:

    JspWriter相当于一个带缓存功能的printWriter,它不是直接将数据输出到页面,而是将数据刷新到response的缓冲区后再输出response.getWriter直接输出数据(response.print()),所以(out.print)只能在其后输出。

    (3)、out为jsp的内置对象,刷新jsp页面,自动初始化获得out对象,所以使用out对象是需要刷新页面的
    response.getWriter()响应信息直接输出到网页上,当响应结束时它自动被关闭,与jsp页面无关,无需刷新页面
    形象的比喻:当我们调用response.getWriter()这个对象同时获得了网页的画笔,这时你就可以通过这个画笔在网页上画任何你想要显示的东西。

    (4)、outprint()方法和println()方法在缓冲区溢出并且没有自动刷新时候会产生ioexception
    response.getWrite()方法的printprintln中都是抑制ioexception异常的,不会有

    javascript ioexception out.println("");

    方法并不能也页面布局换行,只能领html代码换行,要实现页面布局换行可以:out.println("</br>");

  • 相关阅读:
    IDEA插件和快捷设置
    漫谈虚拟内存
    漫谈进程和线程
    漫谈计算机语言
    初识Python
    数据库物理设计
    漫谈计算机体系
    数据库逻辑设计
    NLP中几种分词库的简单使用(Python)
    ML————朴素贝叶斯原理和SKlearn相关库
  • 原文地址:https://www.cnblogs.com/tfxz/p/13251776.html
Copyright © 2011-2022 走看看