日期:2014-05-20  浏览次数:20766 次

include包含
1
<%@   include   file= ".. "/>       //什么是编译时包含
<jsp:include   page= "... "/>       //什么是运行时包含
应该在什么情况下分别应用它们

2  
<%!...%>     //声明的的语句在编译为servelet的时候将作为类的属性存在,什么叫做类的属性
<%...%>     //将在编译后在类的方法内部出现,什么叫做类的方法内部
同上,应该什么区分在什么情况下应用它们呢

3
<jsp:forward> 动作发生的时候,如果已经有文本被写入输出流而且页面没有设置缓冲,那么将抛出一个IllegalStateException异常        
1)     什么叫 "文本被写入输出流 "
2)     什么叫 "页面没有设置缓冲 "

------解决方案--------------------
1、
<%@ include file= ".. "/> 是先包含再编译
<jsp:include page= "... "/> 是先(分别)编译,再包含。

2、
属性的说法不准确,应该叫成员。
所有 <%...%> 的代码实际上是放在一个方法里面,比如 _jspService()。建议楼主看看
%TOMCAT_HOME%\work\Catalina\localhost 中生成的 java 文件。

3、
这句话的意思换句话说就是:
如果浏览器的请求已经回应过了,则处理 <jsp:forward> 将会抛出异常。
例如:
<%
response.sendRedirect( "go.html ");
// 已经回应了请求
%>
<jsp:forward page= "go1.html "/>
------解决方案--------------------
3、这个意思就是说,在调用这个forward动作之前,在Response中不应该写出任何东西。