应该知道的:
out是javax.servlet.jsp.JspWriter类的实例,JSP页面是对Servlet进一步的封装。
问题:
假设jsp文件名为usingout.jsp, 其中有一个函数声明:
void test(){
out.println("this is a test!"); // 编译出错!
}
%>void test(){
? out.println("this is a test!"); // 编译出错!
}
%>void test(){
? out.println("this is a test!"); // 编译出错!
}
%>
答案:
usingout.jsp 转换为 java文件后,查看java文件:
<%! ... %>中定义的函数,变量,最终作为文件类(class usingout)的成员函数和变量,而不是作
为servlet入口函数_jspService中的成员函数或变量。
<% ... %>中包含的jsp语句被包含在入口函数service中。
可以看到_jspService函数中开头:
JspWriter out = null;
out = pageContext.getOut();
这两句是usingout.jsp转为usingout.java文件时,由jsp应用伺服器自动添加的。
不难看出:out在_jspService函数已定义并获得一个实例,因此,可以直接在<% ... %>中使用out,
但要在<%! ... %>函数中使用out对象,由于out并未定义和实例化,编译出错!
如果非要在函数中使用out将某些错误信息输出到客户端,可以将javax.servlet.jsp.JspWriter类型变量作为函数参数。
同理可知:
在JSP页面<%! ... %>中定义的函数在使用servlet中任何实例对象如:request, response, session, appacition, out等等,请不要直接拿来使用,如果要使用,请将这些实例对象作为参数传入。
分享到:
相关推荐
jsp网络编程的PPT,适合菜鸟使用。 第一个JSP程序 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
简易聊天室本次实验的目的是通过以下题目掌握JSP内置对象,包括:request,response,session,application等。 (1)制作简易聊天室,能够实现简单的页面聊天功能。 (2)制作网页计数器,要求相同的窗口内刷新页面访问...
一、JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码。 先看一个JSP程序: <%@ page language=java import=java.util.* %> <html>...
例如,这儿有一个JSP页面: <html><head><title>jsp教程</title></head><body><I><%out.println(“hello world”);%></I></body></html>它将输出“hello ...
import java.io.IOException...%=users.getId()%>'>删除</a> <a href='updateUser.jsp'>更新</a> <a href="login.jsp">登陆</a></td> <% } %> </form> </body> </html>
jsp页面中分三种scriptlet: 第一种:<% %> 可以在里面写java的代码。定义java变量以及书写java语句。 第二种:<%! %> 可以在里面定义全局变量以及方法,类。 第三种:<%=%> 用于打印变量...
- **隐藏域**: 在表单中使用隐藏字段来传递会话ID,安全性较低。 **6. HTML 标记处理** 在Web开发中,HTML标记需要转义,如 `转义为 `<`,`>` 转义为 `>`,`"` 转义为 `"`,`'` 转义为 `'`,`&` ...
在 test/WebContent 中新建一个 test.jsp 文件 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE ...
1.每秒递减跳转 代码如下:[removed] function out(obj){ var i = obj ; if(i==0) [removed].href=”index.jsp”; document.body[removed] = i; i–; setTimeout(“out(“+i+”)”,1000); } [removed] <body ...
8.在 test/WebContent 中新建一个 test.jsp 文件 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE ...
jsp分页公共类 private int page 1; 当前是第几页 private int pageCount 15; 当前页显示几条数据 private int maxPage; 共多少条页 private int maxCount; 共多少条数据 public PageBean {} public ...
JSP页面</ title> </ head> </ head> Hello World!</ h1> <%int dia = Integer.parseInt(((new SimpleDateFormat(“ dd”)).format(new Date()))); out.println(“ 今天是天” +...
JS JSP ASP .NET J2AM API接口和返回的版本 目前所有版本的JS JSP ASP .NET J2AM 都是提供源代码的,对于一些脚本语言来说,直接解压缩之后就可以使用了,不需要什么安装步骤。另外一些需要编译的语言,则提供了编译...
JSP提供了一些内置对象,如`request`、`response`、`session`等,它们是预定义的,可以直接在JSP页面中使用,简化了编程。 - **EL和JSTL** 表达式语言(EL)简化了数据访问,而JSTL(JavaServer Pages Standard ...
在前面的教程中,我们已经使用了java.util.Date。可以有人就会问:为什么不只使用import java.util.*呢?其实,在JSPs中也可以使用import语句,但是它的语法跟普通的Java是有些差别的。下面给出一个例子:<%@...
除了标签处理器类之外,还需要为这个标签编写TLD (Tag Library Descriptor) 文件,以便在JSP页面中使用这个标签。 ```xml <tag-name>forEach2 <tag-class>com.example.items.ForEachTag2</tag-class> ...
9. out:输出,但是尽量使用表达式输出。 二、JSP动作 JSP动作共有6种基本动作: 1. <jsp:include page="" />:在页面被请求的时候包含一个文件。 2. <jsp:useBean id="" class="" scope="application page ...
JS JSP ASP .NET J2AM API接口和返回的版本 目前所有版本的JS JSP ASP .NET J2AM 都是提供源代码的,对于一些脚本语言来说,直接解压缩之后就可以使用了,不需要什么安装步骤。另外一些需要编译的语言,则提供了编译...
-- Action名字,类以及导航页面定义 --> <!-- 通过Action类处理才导航的的Action定义 --> <action name="upload" class="com.aptech.action.UploadAction"> <result name="upload">/upload.jsp ...