精华内容
下载资源
问答
  • Printwriter对象

    千次阅读 2013-01-06 10:49:10
    这时候就需要用到PrintWriter对象用来写数据。 一般的使用方法是: 首先获得PrinterWriter内置对象,然后将内容写入 PrinterWriter out; out = response.getWriter(); out.println(""); out.println(title); ...

    在servlet 处理请求后,需要返回一些数据给浏览器客户端。这时候就需要用到PrintWriter对象用来写数据。
    一般的使用方法是:
    首先获得PrinterWriter内置对象,然后将内容写入

    PrinterWriter out;
    out = response.getWriter();
    
    
    out.println("<HTML><HEAD><TITLE>");
    
    
    out.println(title); 
    out.println("</TITLE></HEAD><BODY>");//写入的内容,将要发送给客户端浏览器

    有时候写入的内容过多,会导致浏览器长时间等待接收文本,这里可以使用flush()函数强制将以写入的内容发送到浏览器,再接着写入内容
    out.flush();



    Tip:
    我们web容器(Tomcat为例),都是查找对应.jsp页面的class文件来响应请求的。
    在我们写完jsp文件后,会在WEB-INF目录下找到类似的../../_*JSP.CLASS 文件。(class文件中使用的是out对象的write方法)
    Servlet教程
    展开全文
  • PrintWriter对象的print和write方法的区别? PrintWriter out = response.getWriter(); out.print("数据"); out.write("数据"); 我在servlet中用print输出的东西,jsp页面能接受到,而用write输出就接受不到东西...
  • 可以通过HttpServletResponse中的getWriter方法获取对客户端的输出流,但是如果在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码),HttpServletResponse则会返回一个用默认的...
    写过servlet的人都知道,可以通过HttpServletResponse中的getWriter方法获取对客户端的输出流,但是如果在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码),HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)编码的PrintWriter实例。这样就会造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。比如:
     
    PrintWriter out = resp.getWriter();
    resp.setContentType("text/html;charset=utf-8");
    out = resp.getWriter();
     
    这样用out输出中文的时候肯定会是乱码的,而且即便你在下面再获取一次getWriter(红色地方),此时的PrintWriter也不会是utf8编码的PrintWriter。 正确的写法应该是:
    resp.setContentType("text/html;charset=utf-8");
    PrintWriter out = resp.getWriter();

    这样的。



    博文源自:http://blog.csdn.net/hikvision_java_gyh/article/details/9852901

    展开全文
  • response.getWriter()返回的是PrintWriter,这是一个打印输出流 response.getWriter().write()和 response.getWriter().print()是响应给客户端的东西,如果不用ajax接收将数据放在合适的位...

    一、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)、out和response.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)、out的print()方法和println()方法在缓冲区溢出并且没有自动刷新时候会产生ioexception,
       而response.getWrite()方法的print和println中都是抑制ioexception异常的,不会有ioexception    
       out.println(""); 方法并不能也页面布局换行,只能领html代码换行,要实现页面布局换行可以:out.println("</br>");

    展开全文
  • 使用PrintWriter对象导致Struts国际化失败问题的解决及分析  1.Struts国际化的要求 1.1设置字符编码 ;charset=UTF-8" language="java" %> <html:html lang="true"><br /> 1.2将...

    使用PrintWriter对象导致Struts国际化失败问题的解决及分析   
    1.Struts国际化的要求
    1.1设置字符编码
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html:html lang="true">
    1.2将图片、文字、按钮国际化
    使用<bean:message>标签,和资源文件
    1.3创建资源文件
    创建默认资源文件
    创建临时中文资源文件,然后使用native2ascii -encoding gb2312 oldfile newfile生成中文资源文件
    创建英文资源文件
    需要注意的是:在中文winxp和windows2000上,中文资源文件为默认资源文件,

    例如:如果没有英文资源文件,选择语音编码为en-gb,将显示中文界面;而当选择任何其他语言编码时,都显示中文界面
    1.4采用Servlet过滤器设置请求数据的字符编码
    设置为UTF-8,代码略,网上到处都有
    2.无法国际化的应用的现象
    2.1在完成上述步骤以后,执行一个测试应用,发现中文都是???,而获取请求的编码(request.getCharacterEncoding()),发现仍然是UTF-8,查看页面编码,为GB2312,而正确的页面编码应该是UTF-8
    2.2在使用System.out.println()时,输出的中文是正确的,这表明在输出给JSP页时,转码发生了问题
    2.3如果直接运行JSP文件,可以显示中文,但如果通过Action forward过来,就会变成???。
    这样,就说明Action文件有问题
    3.问题的发现与解决
    仔细查看自己编写的Action文件,发现其中有一条
    PrintWriter out=response.getWriter();
    注释掉这条或者在前面加上response.setCharacterEncoding("UTF-8");都可以解决问题
    4.分析
    修改代码为PrintWriter out1=response.getWriter();
    仍然会发生中文乱码问题,查看相关java文档,个人分析如下:
    4.1jsp页面输出时会使用Action中定义的out或out1,因为JSP隐含对象out也是一个response对象,如果定义了PringWriter对象,那么JSP隐含对象也会使用这个自定义的out,导致无法中文化。
    4.2在Action中使用response.getCharacterEncoding();发现字符编码为ISO-8859-1
    而使用PrintWriter对象时,字符编码没有制定的话,编码也设置为ISO-8859-1
    Action中的数据编码会通过过滤器设置为UTF-8,但PrintWriter对象中的数据无法过滤,因此显示为乱码
    4.3JSP文件的字符编码设置为了UTF-8,因此PrintWriter对象中的数据使用UTF-8解码显示,当然会是乱码,此时,将数据按UTF-8编码,再按iso8859-1解码,就可以显示出中文,即:
    <%
        //代码只用于测试,实际开发中,不应该在JSP中直接写java代码
        String s = (String)request.getAttribute("xxx");
        out.println(new String(s.getBytes("UTF-8"),"iso8859-1");
    %>
    此时显示的仍然为乱码,但不再是???,而是正确的的UTF-8编码,选择浏览器编码为Unicode(UTF-8)可以正常显示中文了。

    展开全文
  • 实现功能:原本到servlet中查到的集合对象,想通过ajax写到jsp界面,但是进不到$.each(data1,function(index,dept){}代码块中,很是纠结,因为data本来就是一个数组中装的对象集合啊,为什么不能遍历呢?百度搜不到...
  • txt的在网上找了下,大多都是直接下载文件,那就要把数据获取后写入文件,然后在提供下载,总觉得这样太麻烦,也会给服务器造成磁盘压力,最后找到了在response对象里可以获取PrintWriter对象,对,我就是要这个!...
  • Servlet--获取Session对象

    千次阅读 2017-07-23 11:23:45
    Servlet--获取Session对象 一、获取Session对象 1、创建一个servlet类,实现获取session对象 package servlet08; import java.io.IOException; import java.io.PrintWriter; import javax.servlet....
  • java解析数据接口获取json对象

    千次阅读 2019-07-07 14:18:49
    使用了Postman这个工具来解析,也获取了json对象,但后也发现,它没法直接连接数据库,也就是说这些数据不能直接存入数据库,经过查询,使用node.js作为中介可以解决这个问题,后又发现,连接后一次只能向数据库post...
  • 1. 这两个对象的类型是... 获取方式不同:JspWriter是JSP的内置对象,直接使用即可,对象名out是保留字,也只能通过out来调用其相关方法。此外还可以通过内置对象pageContext.getOut();获得;PrintWriter则是在用的...
  • servlet中获取ServletConfig 对象的 方法

    千次阅读 2016-07-14 10:48:21
    servlet中获取ServletConfig 对象的 方法 package com.cdsxt.action; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletConfig; ...
  • 获取servletContext对象的两种方式

    千次阅读 2016-07-14 11:51:56
    获取servletContext对象 的两种方式 package com.cdsxt.action; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletContext; import javax.servlet.ServletException; ...
  • Tomcat的Response对象竟然不能同时使用PrintWriter与SevletOutputStream1、背景2、原因查找2.1 小文件失败2.2 大文件可行 1、背景 前几天项目上线,就是把MVC框架由Spring MVC换成Restlet,然后客户说原有的TXT文件...
  • 于是...",如果这个说法是对的话,为什么我定义的PrintWriter对象会调用SocketOutputStream里面的flush()?如果这个说法不对,那么是什么导致调用write()之后flush()无效?求解惑,万分感谢!
  • 2.获取PrintWriter对象,输出两句话试试 3.保存,启动Tomcat,浏览器输入url,看看返回什么 关于println(),看看PrintWriter类描述 这样的响应内容是文本 如果把响应的内容类型换成HTML,会是下面的效果,...
  • JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个阳光明媚的周末,一个又一个的周末,周而复始,...
  • 通过什么方式可以获得这两个对象?只是用JspWriter对象,不用PrintWriter。 JspWriter即Out对象
  • JspWriter与PrintWriter

    千次阅读 2015-02-08 13:30:29
    一.JspWriter与PrintWriter的关系: 1.都是继承自java.io.Writer类. JspWriter可以在JSP页面中直接用out对象输出.可以用pageContext.getOut();得到JspWriter对象. PrintWrietr在JSP页面中必须用response....
  • PrintWriter的使用

    千次阅读 2017-05-29 13:41:22
    构造方法摘要 再没有刷新前,你写入的数据并没有真正写入文件,只是保存在内存中。...创建不具有自动行刷新的对象,就是用这个对象写入数据时不会自动刷新 PrintWriter(File file) 使用指定文件创建不具有
  • JavaWeb - jsp简介/注释/指令/内置对象/动作标签/,javabean,el表达式获取对象中的值
  • https://www.cnblogs.com/xdp-gacl/p/3789624.html
  • javaEE servlet获取jsp内置对象

    千次阅读 2014-05-18 00:26:23
    既然jsp和servlet是等价的,在jsp中可以使用内置对象,那么在servlet中也可以使用。...import java.io.PrintWriter; ... public void doGet(HttpServletRequest request,HttpServletResponse response)throws  Ser
  • java 打印流PrintWriter基本操作

    千次阅读 2014-05-02 22:35:48
    java PrintWriter
  • 如何在servlet中获取jsp中的内置对象

    千次阅读 2013-03-29 18:18:09
    javax.servlet.jsp.JspWriter类的对象,通过PrintWriter out = response.getWriter() 来获取out对象。   2. request对象 javax.servlet.ServletRequest 类的对象,通过GET/POST参数可获取。   3 response对象...
  • 使用 out.write();write中含有中文,输出到前端得到的...之前添加设置response返回的字符类型,因为PrintWrite会先获取项目编码,根据它来设定characterEncoding,所以需要在PrintWriter 之前设置编码格式 分别设...
  • WebSocket获取service层对象,操作数据库,WebSocke在websocket中操作数据库,需要加载已经配置好的spring中的配置文件,获取service层对象。在搭建好websocket条件下以下几种方法可实现 第一种,通过ContextLoader...
  • BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的...PrintWriter:向文本输出流打印对象的格式化表示形式(Prints formatted representat
  • PrintWriter输出乱码问题

    千次阅读 2012-03-13 17:07:36
    PrintWriter输出乱码问题,我们先看API  PrintWriter getWriter() throws IOException   Returns a PrintWriter object that can send character text to the client. The PrintWriter uses the character ...
  • Java IO流之PrintWriter分析

    千次阅读 2018-09-07 13:32:13
    在设置自动刷新的时候,不像PrintStream流中遇到换行符就会刷新,PrintWriter只有调用了printf,println,format三类方法其中一种才会自动刷新.PrintWriter流永远不会抛出异常,因为当抛出异常的时候,流内部会将异常捕获....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,780
精华内容 20,312
关键字:

获取printwriter对象的是