PrintWriter out=response.getWriter()的问题
//得到PrintWriter对象。Servlet使用输出流来产生响应PrintWriterout=res.getWriter();//向客户端发送字符数据。out.pr...
//得到PrintWriter对象。Servlet使用输出流来产生响应 PrintWriter out=res.getWriter();
//向客户端发送字符数据。 out.println("Hello World");问题一:res.getWriter(); 返回的是PrintWriter 的对象,那为什么不直接 PrintWriter out=new PrintWriter ();可能有人会说:“res.getWriter(); 返回的是可以在客户端显示的PrintWriter 的对象,new PrintWriter ();则不可以”,那既然这样就说明new PrintWriter ()返回对象;和res.getWriter();返回对象是不一样的,既然不一样,那凭什么可以把 res.getWriter();返回对象赋值给out!从逻辑上讲不通,太困扰了 展开
//向客户端发送字符数据。 out.println("Hello World");问题一:res.getWriter(); 返回的是PrintWriter 的对象,那为什么不直接 PrintWriter out=new PrintWriter ();可能有人会说:“res.getWriter(); 返回的是可以在客户端显示的PrintWriter 的对象,new PrintWriter ();则不可以”,那既然这样就说明new PrintWriter ()返回对象;和res.getWriter();返回对象是不一样的,既然不一样,那凭什么可以把 res.getWriter();返回对象赋值给out!从逻辑上讲不通,太困扰了 展开
5个回答
展开全部
//向客户端发送字符数据。 out.println("Hello World")
;问题一:res.getWriter(); 返回的是PrintWriter 的对象,那为什么不直接 PrintWriter out=new PrintWriter ();
可能有人会说:“res.getWriter(); 返回的是可以在客户端显示的PrintWriter 的对象,new PrintWriter ();则不可以”,
“那既然这样就说明new PrintWriter ()返回对象;和res.getWriter();返回对象是不一样的”
这里解释一下。两个返回的对象时一样的,只是这对象属于谁的?客户端的还是服务端的?直接new 出来的PrintWriter 属服务端的 你要将数据写在客户端哪里去,所以只能用响应对象res中的PrintWriter ,将响应数据传给客户端。
;问题一:res.getWriter(); 返回的是PrintWriter 的对象,那为什么不直接 PrintWriter out=new PrintWriter ();
可能有人会说:“res.getWriter(); 返回的是可以在客户端显示的PrintWriter 的对象,new PrintWriter ();则不可以”,
“那既然这样就说明new PrintWriter ()返回对象;和res.getWriter();返回对象是不一样的”
这里解释一下。两个返回的对象时一样的,只是这对象属于谁的?客户端的还是服务端的?直接new 出来的PrintWriter 属服务端的 你要将数据写在客户端哪里去,所以只能用响应对象res中的PrintWriter ,将响应数据传给客户端。
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
2013-03-28
展开全部
网络请求中,Response可以算是回调,只有res.getWriter()才能确认是本次请求的回应,当然,如果你new PrintWriter ()能set到(如果可以set的话)这个response中,这样也未尝不可。还有你最后说的“逻辑上讲不通”,那个不是简单的赋值就行,网络请求,当然只能让处理回应的那个response返回数据给客户端。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从JDK帮助文档中可以看到PrintWriter没有不带参数的构造方法
构造该对象至少得传递一个输出源信息
楼主说的两者之间的差别就是构造方法中参数的差别
使用res.getWriter()方法会自动将底层的套接字的输出流作为参数传递给PrintWriter构造方法.
楼主也可以在Servlet中通过PrintWriter out = new PrintWriter(res.getOutputStream())方法来构造.
构造该对象至少得传递一个输出源信息
楼主说的两者之间的差别就是构造方法中参数的差别
使用res.getWriter()方法会自动将底层的套接字的输出流作为参数传递给PrintWriter构造方法.
楼主也可以在Servlet中通过PrintWriter out = new PrintWriter(res.getOutputStream())方法来构造.
追问
那PrintWriter out = new PrintWriter(res.getWriter())和PrintWriter out=res.getWriter的区别是什么呢
追答
你可以看看HttpServletResponse几个实现类的源码,以下是某个子类getWriter()的实现.
内部都是自己new了一个PrintWriter对象并返回.
区别就在getWriter()方法里存在其他代码逻辑...
public PrintWriter getWriter()
throws IOException
{
if(cachedWriter == null)
{
String encoding = getCharacterEncoding();
if(encoding != null)
cachedWriter = new PrintWriter(new OutputStreamWriter(getOutputStream(), encoding));
else
cachedWriter = new PrintWriter(new OutputStreamWriter(getOutputStream()));
}
return cachedWriter;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Response.getWriter(); 目的就是构造一个标准输出流,把内容输出到界面上。如果按new PrintWriter () 如何构造出一个输出流,把信息传送到界面上。
追问
PrintWriter的构造函数必须传递一个对象进来吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、如果直接实例化,则与你所的意义,res应该是Response吧,具体可以参考Servlet中的说明。
2、不是赋值,是引用。
2、不是赋值,是引用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询