一、servlet
response实现了HttpServletResponse接口,request实现了HttpServletRequest接口。
1、输出流有两个:
字节形式输出:response.getOutputStream()
字符形式输出:response.getWriter()
2、输入流有两个:
字节形式输入:request.getInputStream()
字符形式输入:request.getReader()
二、JSP
JSP中的response对象已经实现了HttpServletResponse接口,request对象已经实现了HttpServletRequest接口。
1、输出流
jsp中可以使用response.getWriter()方法建立字符输出流来输出字符数据到网页上。
因为jsp转译成servlet时,当有输出就会使用getWriter().
它是javax.servlet.jsp.JspWriter类型(extends java.io.Writer).
而getOutputStream().
它是javax.servlet.ServletOutputStream类型(extends java.io.OutputStream).
而对客户端的输出只能使用一种类别输出.
当它在jsp里使用了getOutputStream().
就会产生了两种类别输出,所以就会形成冲突.program根本不知道你要使用那一个作为输出.
一般在下载档案时都要使用getOutputStream().对客户端串流输出.
使用jsp作为下载档案时,
在jsp档案里,不能有任何的输出.
包括空格或out.println("xxx");
因为会使用了jspWriter().
2、输入流
jsp中好像没有自动实现输入流的对象,所以可以使用request.getInputStream(),request.getReader()方法建立输入流。
3、读写服务器上的文件
file.Reader()和file.Writer()方法可以用来读写服务器上任何位置的文件。
application(ServletContext).getResourceAsStream()方法可以读取servlet上下文中的文件。
PrintWriter out = response.getWriter();
如果你打算返回一个文本型的(text/*)页面,不论是HTML还是纯文本,通常都需要调用response.getWriter()方法。然而该方法必须在charset被设置之后调用,为什么呢?因为Writer必须知道如何将Java内部的Unicode字符转换成字节流。假如你选择了GBK,一个汉字将被输出成两个字节的编码;假如你选择了UTF-8,一个汉字将被输出成三个字节的编码。
如果你打算返回一个二进制型的内容,例如:图片,那么你必须调用response.getOutputStream()方法。
OutputStream out = response.getOutputStream();
需要注意的是,你只能在getWriter()和getOutputStream()中选择一个。一旦其中一个方法被调用了,再调用其它一个方法时,系统会抛出异常。
分享到:
相关推荐
- **解析并写入**:读取HTML文件的每一行,将其写入到Servlet的输出流中。如果HTML包含动态内容,可以在写入前进行计算或替换。 - **关闭流**:完成写入后,记得关闭输入流和输出流,确保资源得到释放。 5. **...
在JSP中,通过Servlet的`HttpServletRequest`和`HttpServletResponse`对象可以实现网络数据的输入输出流处理。 了解了文件管理和输入输出流的基本概念后,我们可以更进一步地学习如何在实际应用中处理文件和流。...
Eclipse JSP/Servlet 环境搭建是 Java Web 开发的基础环境,本文将指导用户从零开始搭建 Eclipse JSP/Servlet 环境,包括安装 JDK、Eclipse J2EE、Tomcat 等软件包,并配置 Tomcat 服务器和 Eclipse 环境。...
标题 "JSP在Servlet中的几个编码的作用及原理" 指向的是Java Server Pages (JSP) 和 Servlet 技术中关于字符编码的关键概念。在Web开发中,尤其是在处理多语言用户输入时,正确的编码处理至关重要,以避免乱码问题。...
7. 关闭流:在发送完文件后,记得关闭输入和输出流。 五、JSP部分 在JSP中,可以创建一个链接或者表单,通过点击触发下载请求,例如: ```jsp 下载文件 ``` 六、Tomcat配置 确保Tomcat服务器配置正确,能够处理大...
表现层主要负责用户界面,处理用户的输入和输出;业务逻辑层处理核心的业务规则和流程;数据访问层则负责与数据库交互,实现数据的增删改查。这种架构有利于代码复用,提高系统的可维护性和可扩展性。 在“ch01”这...
- **关闭流**:完成文件传输后,确保关闭输入流和输出流以释放资源。 **4. JSP参与的角色** 在JSP文件中,通常会有一个表单或者链接供用户点击触发下载。表单的ACTION属性指向处理下载请求的Servlet,提交时会携带...
**6.2 与输入输出有关的隐式对象** - **request 对象** - 用于获取客户端发送的数据。 - 示例: `request.getParameter("name")` - **response 对象** - 用于向客户端发送数据。 - 示例: `response....
9. ServletRequest接口可以处理如找到客户端IP地址、检索请求参数、设置和获取属性、以及处理输入和输出流等任务。 10. Servlet处理表单数据时,可以通过POST和GET请求接收数据,两者处理方式不同。...
【标题】"课程设计---JSP+SERVLET的购物系统"揭示了这是一个基于Java Web技术的项目,主要使用了JSP(JavaServer Pages)和Servlet来构建一个在线购物平台。JSP是一种动态网页技术,它允许开发人员在HTML页面中嵌入...
Servlet通过Java的输入输出流来处理HTTP请求和响应,这使得Servlet比传统的CGI(Common Gateway Interface)脚本有更高的性能。Servlet API定义了Servlet应该如何与Web服务器交互,以及如何接收请求、发送响应以及...
以上概述了《JSP Servlet.pdf》文件中提到的关键知识点和技术细节。JSP作为一项重要的Web开发技术,在实际应用中扮演着非常重要的角色。通过深入理解这些概念和技术,开发者能够更好地构建动态网页和Web应用程序。
// 将文件流输出给客户端 FileInputStream fis = new FileInputStream(file); byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = fis.read(buffer)) != -1) { response.getOutputStream()....
`HttpServletResponse`对象则用于向客户端发送响应,包括设置状态码、头信息和输出流内容。 4. **会话管理**: 购物车功能需要保持用户会话状态,即使用户在多个页面之间跳转。Java Servlet API提供`HttpSession`...
在Java Web开发中,`JSP (JavaServer Pages)` 和 `Servlet` 是两种常见的技术,用于构建动态网页和处理客户端请求。本压缩包提供的“jsp+servlet 上传和下载包”是一个基本的文件操作组件,它包含了一些核心库,如...
`RequestDispatcher` 接口在 `javax.servlet` 匔包中定义,它提供了一种方式来将请求转发到服务器上的其他资源(如 Servlet、JSP 页面、CGI 脚本等),或包括其他资源的内容在当前响应中。 **用途:** - **Forward ...
在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)和Servlet技术来构建一个简易的员工管理系统。这个系统是为初学者设计的,旨在帮助理解Java Web开发的基础概念,特别是针对那些刚接触Tomcat服务器和...
它包括了Java语言的核心特性,如面向对象编程、异常处理、多线程、输入/输出流、集合框架等。Core Java的学习是成为一名合格Java开发者的第一步。在"coreJava笔记.doc"中,你可能找到以下知识点: 1. 类与对象:...
- **JSP预定义变量**:介绍请求、响应、输出流等对象。 #### 十三、JSP动作 - **jsp:include动作**:实现在JSP页面中包含另一个文件。 - **jsp:useBean动作**:用于实例化JavaBean对象。 - **jsp:setProperty动作*...
### javaweb servlet(jsp)的乱码问题原理及解决 #### HTTP协议的基本理解与乱码问题背景 HTTP协议作为互联网应用中最为广泛使用的通信协议之一,它定义了客户端和服务端之间的交互规则。HTTP请求主要分为GET和...