JSP中的输入输出流

一、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上下文中的文件。

JSP(JavaServer Pages)在Web应用中,输入主要是从客户端接收数据,输出则是将处理结果返回给客户端。 ### 原理 JSP输入的原理基于HTTP协议。客户端通过表单、URL参数等方式向服务器发送请求,服务器端的JSP页面可以通过`request`对象获取这些请求参数。输出原理是服务器端的JSP页面将处理结果动态生成HTML页面,通过`response`对象将生成的HTML页面发送回客户端浏览器进行显示。 ### 方法 - **输入方法**:使用`request`对象获取客户端传递的参数。`request`对象是JSP的内置对象之一,类型为`javax.servlet.http.HttpServletRequest`,可以获取各种请求信息,如表单数据、URL参数等 [^3]。 - **输出方法**: - **脚本输出**:使用`<% %>`标签在JSP页面中嵌入Java代码,通过`out`对象输出内容到浏览器。`out`对象是`javax.servlet.jsp.jspWriter`类型的输出流对象 [^3]。 - **EL表达式输出**:EL(Expression Language)表达式可以方便地输出数据,通常用于输出请求、会话等作用域中的属性值。 ### 示例 - **输入示例**: ```jsp <!DOCTYPE html> <html> <body> <form action="process.jsp" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <input type="submit" value="提交"> </form> </body> </html> ``` 在`process.jsp`中获取输入的用户名: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <body> <% String username = request.getParameter("username"); out.print("你输入的用户名是: " + username); %> </body> </html> ``` - **输出示例**: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <body> <% String[] colors = {"红色", "绿色", "蓝色"}; for(String color : colors) { out.print("<li>" + color + "</li>"); } // 条件输出 boolean isAdmin = true; if(isAdmin) { out.print("<button>管理功能</button>"); } %> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值