日期:2014-05-16  浏览次数:20369 次

jsp元素的总结
jsp元素包括:

一,jsp页面

1,注释
可见注释 html注释,浏览器可见,不安全
<!-- comment -->
普通注释 Java注释,浏览器不可见,安全,但违背Java与html代码分离原则
<% //comment > 或 <% >
隐藏注释 JSP注释,浏览器不可见,安全,建议使用
<%-- comment --%>

2,指令
<%@ ... %>

page 不是不必备的,作用于本jsp页面,不包含<jsp:include>进来的页面,只有import属性可以重复
<%@ page
extends="class name" //自定义父类必须实现javax.servlet.HttpJspPage接口
improt="java package list" //多个包,逗号隔开
session="true | false" //是否内建session对象
buffer="none | 8KB | custom size" //out对象缓冲区大小
false" //是否自动冲刷,false且满时将抛出异常
inThreadSafe="true | false" //告诉服务器你的线程是否安全,false时不支持并发
info="page info" //可通过getServletInfo()取得
errorPage="error page url" //页面异常时转向的页面
isErrorPage="true | false" //true时可使用内建对象Exception,false时不可以,默认false
contentType="text/html;charset=ISO-8849-1" //“输出到客户端”时的MIME类型和字符集,默认为<--
pageEncoding="char encoding type" //JSP页面的字符集编码
isELIgnored="true | false" //是否支持EL表达式
%>
include 包含静态文件(jsp,html,txt,java...),
<%@ include file="URL" %>
不能包含URL变量,如:<%@ include file="<%= Expression %>" %>
不能再包含的文件后接任何参数。如:<%@ include file="index.jsp?name=user" %>
所包含文件中避免使用<html> <body>等标签,防止与原网页冲突
建议所包含文件后缀名以"f"(fragment)结尾,如jspf,避免jsp编译器对其编译
include指令与jsp:include动作区别见:http://blog.sina.com.cn/s/blog_73cdc7a601018x7l.html

taglib 声明自定义标签库
<%@ taglib uri="URI To Tag Library" prefix="pubtag" %>

3,脚本元素

声明
<%! declaration; [declaration;]+ ... %>
声明类、方法、变量,全局共享,线程不安全

表达式
<%= java expression %>
表达式不已分号结尾,等价于 <% out.print(expression); %>,可作为其它jsp元素属性值

脚本小程序
<% java code %>
Scriptlet内的Java语句不一定是完整的,声明的变量为局部变量

4,模板数据
动作
标准动作
jsp:include 实现请求阶段包含静态或动态资源,只能访问JspWriter,不能设置响应头或Cookie,效率比include指令低,
<jsp:include page="URL | <%= Expression %>" flush="true"> //默认flush为false,必须使用true
[<jsp:param name="param name" value="param value | <%= Expression %> " />]?+
</jsp:include>

jsp:forword