分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

jsp内置对象out 和response.getwriter().write()的区别

发布时间:2023-09-06 01:50责任编辑:胡小海关键词:jsjsp内置对象
两者的主要区别:
1. 这两个对象的类型是完全不同的:内置对象out的类型是JspWriter;response.getWrite()返回的类型是PrintWriter
2. 获取方式不同:JspWriter是JSP的内置对象,直接使用即可,对象名out是保留字,也只能通过out来调用其相关方法。此外还可以通过内置对象pageContext.getOut();获得;PrintWriter则是在用的时候需要通过内置对象response.getWriter();获得
3. JspWriter的print()方法会抛出IOException;而PrintWriter则不会
4. JspWriter和PrintWriter都继承自java.io.Writer,但JspWriter是抽象类,而PrintWriter不是
 
 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 ????pageEncoding="utf-8" buffer="1kb" autoFlush="true" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 11 aaaaaaaaaaaaa12 <% 13 ??for(int i=0;i<9;i++){14 ??????out.print("b");15 ??????16 ??}17 %>18 <br/>19 <% 20 ??response.getWriter().write("cccccccccccc");21 ?response.flushBuffer();22 %>23 24 ddddddddddddddddd25 </body>26 </html>

先看上面这段代码的输入

源代码

也就说明了一间事,当只执行 response.getWriter().write("cccccccccccc");的时候直接想客户端传输了一段文字

而,out.write.相当于把数据缓冲在了,out缓冲区中,等页面结束的时候,调用了writer类的write方法,想客户端输送了自己缓存的文字

好再看一个例子

 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 ????pageEncoding="utf-8" buffer="1kb" autoFlush="true" %> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10 11 aaaaaaaaaaaaa12 <% 13 ??for(int i=0;i<900;i++){14 ??????out.print("b");15 ??????16 ??}17 %>18 <br/>19 <% 20 ??response.getWriter().write("cccccccccccc");21 ?response.flushBuffer();22 %>23 24 ddddddddddddddddd25 </body>26 </html>

我把循环改成了900,也就是说,我的out缓冲区满了,这时候out.writezi自动调用了父类的write方法,把内容输出到了客户端

jsp内置对象out 和response.getwriter().write()的区别

原文地址:https://www.cnblogs.com/albertzhangyu/p/8932998.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved