JSP页面<% ... %>中怎样使用out及其它

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

应该知道的:

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等等,请不要直接拿来使用,如果要使用,请将这些实例对象作为参数传入。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航