reponse.getWriter和JSP中的out.printe的区别;

本文详细比较了JSP内置对象out与response.getWriter的区别,包括它们的类型、获取方式、执行原理等,并讨论了如何正确使用这些对象进行页面输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

两者的主要区别:
1.内置对象out的类型是JspWriter;
 response.getWrite()返回的类型是PrintWriter;
 out和response.getWriter的类不一样,一个是JspWriter,另一个是java.io.PrintWriter。
2. 获取方式不同:
  JspWriter是JSP的内置对象,直接使用即可,对象名out是保留字,也只能通过out来调用其相关方法。
  此外还可以通过内置对象pageContext.getOut();获得;
  PrintWriter则是在用的时候需要通过内置对象response.getWriter();获得
3.执行原理不同:
  JspWriter相当于一个带缓存功能的printWriter,它不是直接将数据输出到页面,
  而是将数据刷新到response的缓冲区后再输出,
  response.getWriter直接输出数据(response.print()),所以(out.print)只能在其后输出。 
4. JspWriter的print()方法会抛出IOException;而PrintWriter则不会5.out为jsp的内置对象,刷新jsp页面,自动初始化获得out对象,所以使用out对象是需要刷新页面的,
  而response.getWriter()响应信息通过out对象输出到网页上,当响应结束时它自动被关闭,与jsp页面无关,无需刷新页面
5.out的print()方法和println()方法在缓冲区溢出并且没有自动刷新时候会产生ioexception,
  而response.getWrite()方法的print和println中都是抑制ioexception异常的,不会有ioexception 
  out.println(""); 方法并不能也页面布局换行,只能领html代码换行,
要实现页面布局换行可以:out.println("</br>");

转载于:https://www.cnblogs.com/hljj/p/7067246.html

HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 无法为JSP编译类: 描述 服务器遇到一个意外的情况,阻止它完成请求。 例外情况 org.apache.jasper.JasperException: 无法为JSP编译类: 在生成的java文件中的第:[17]行发生错误:[C:\Users\kewd\AppData\Local\JetBrains\IntelliJIdea2024.3\tomcat\12258b91-f73a-4a22-857d-3456e0dfe9aa\work\Catalina\localhost\ROOT\org\apache\jsp\get_005frecord_jsp.java] Only a type can be imported. org.json.JSONObject resolves to a package 在生成的java文件中的第:[18]行发生错误:[C:\Users\kewd\AppData\Local\JetBrains\IntelliJIdea2024.3\tomcat\12258b91-f73a-4a22-857d-3456e0dfe9aa\work\Catalina\localhost\ROOT\org\apache\jsp\get_005frecord_jsp.java] Only a type can be imported. org.json.JSONArray resolves to a package JSP文件:[/get_record.jsp] 的第 [55] 行发生了一个错误 JSONObject cannot be resolved to a type 52: //////////数据库查询完毕,得到了json数组jsonList////////// 53: //jsonList.clear(); 54: //下面开始构建返回的json 55: JSONObject jsonObj=new JSONObject(); 56: jsonObj.put("aaData",jsonList); 57: jsonObj.put("action",action); 58: jsonObj.put("result_msg","ok"); //如果发生错误就设置成"error"等 JSP文件:[/get_record.jsp] 的第 [55] 行发生了一个错误 JSONObject cannot be resolved to a type 52: //////////数据库查询完毕,得到了json数组jsonList////////// 53: //jsonList.clear(); 54: //下面开始构建返回的json 55: JSONObject jsonObj=new JSONObject(); 56: jsonObj.put("aaData",jsonList); 57: jsonObj.put("action",action); 58: jsonObj.put("result_msg","ok"); //如果发生错误就设置成"error"等 JSP文件:[/get_record.jsp] 的第 [66] 行发生了一个错误 IOException cannot be resolved to a type 63: response.getWriter().print(jsonObj); 64: response.getWriter().flush(); 65: response.getWriter().close(); 66: } catch (IOException e) { 67: e.printStackTrace(); 68: } 69: System.out.println("返回结果给调用页面了。"); Stacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:72) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:192) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:524) org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) org.apache.j
最新发布
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值