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

两者的主要区别:

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 aaaaaaaaaaaaa
12 <%
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 ddddddddddddddddd
25 </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 aaaaaaaaaaaaa
12 <%
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 ddddddddddddddddd
25 </body>
26 </html>

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

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

时间: 2024-10-16 21:18:22

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

Jsp — 内置对象request、response 配置servlet

1. 访问动态网页 使用URL实现页面访问: URL:统一资源定位符,即常说的网址: URL是唯一能识别Internet上具体的计算机.目录或文件夹的命名约定: 组成:第一部分:协议     第二部分:主机的IP地址,主机或端口号,是每台计算机的唯一标识:     第三部分:项目资源的地址,如目录和文件夹名等. 2. Jsp文件中的注释 ① 在jsp中写java脚本使用<% %>来括起来 ② 在jsp中如果要输出一个表达式使用<%= %> ③ 在jsp中如果要定义一个方法使用<

jsp内置对象request 和response

1.request对象主要用于处理客户端的请求 request对象常用方法 一.String  request.getParameter(String name)             根据页面表单的组件name值获取组件的value值 (注:如果请求的组件name不存在返回null     如果请求组件的value值为空返回" "空字符串) 二.String  request.getParameterValues(String name)    获取一组有相同name的组件valu

JSP内置对象---请求重定向与请求转发的区别

视频地址:http://www.imooc.com/video/3306 方便理解:

02_05 JSP内置对象之response

JSP内置对象之response 一.response概述 Response对象的主要作用是服务器对客户端请求的中响应,将web服务器处理后的结果发回给客户端.Response对象属于javax.servlet.http.HttpServletResponse接口的实例.它的常用方法有: NO 方法 类型 描述 1 Public void addCookie(Cookie cookie) 普通 向客户端增加 Cookie 2 Public void setHeader(String name,

JSP内置对象之------response、session、application

1. 重定向和转发 response.sendRedirect("地址"); a. 页面地址显示最终页面 b. 不可向后传递参数 c. 跳到外部站点 request.getRequestDispatcher("地址").forward(request, response); a. 页面地址显示请求页面 b. 可以向后传递参数 c. 不可以跳到外部站点 通俗的来说两者的区别就是: 重定向:发出两次请求,不能够共享前一次请求中封装的参数信息 转发:   发一次请求 2.

Jsp内置对象的简单说明

声明 实习森的理解层次,希望有错大家一起纠正 本文主要信息来自网友共享的一个JSPAPI,不是特别全,只是对jsp内置对象进行了简单的介绍,这里我总结了一下 正文 Jsp主要内置了9个对象,分别为:Application.Exception.Out.PageContext.Page.Request.Response.Session以及Config,详细如下: Application对象 基础介绍: Application对象实现了不同用户之间的数据共享,声明周期最长了,服务器启动的时候,Appl

javaEE servlet获取jsp内置对象

既然jsp和servlet是等价的,在jsp中可以使用内置对象,那么在servlet中也可以使用. 1.获得out对象 可以使用如下代码获得out对象: import java.io.PrintWriter; ... public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ PrintWriter out = reponse.getW

JSP内置对象(上)

在JSP中为了简化页面的开发提供了一些内置的对象.这些对象不需要由JSP的编写者通过new关键字实例化,他们都由容器实现和管理,在所有的JSP页面中都可以使用内置对象. JSP中共有9大内置对象: out对象 requset对象 response对象 session对象 pageContext对象 application对象 config对象 page对象 exception对象 JSP内置对象(下):http://wxmimperio.coding.io/?p=329 PS: [web对象的请

JSP内置对象详解及示例

JSP 内置对象 jsp一共有9个内置对象,这些对象由web容器创造并且适用于所有jsp页面. 九大内置对象如列表所示: 对象 类型 out JspWriter类的实例 request HttpServletRequest接口的实例 response HttpServletResponse接口的实例 config ServletConfig类的实例 application ServletContext类的实例 session HttpSession类的实例 pageContext PageCon