当前位置:编程学习 > JS >>

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 将请求转发到另一个资源,该资源必须和发送者位于请求相同的上下文环境中,遇到此操作时立即转发
<jsp:forword page="URL | <%= Expression %>">
[<jsp:param name="param name" value="param value | <%= Expression %> " /> ]?+
</jsp:forword>


jsp:useBean
<jsp:useBean
id="beanId"
class="package.class" //实例化类
scope="request" //作用域范围,默认为Page
type="superclass or interface" //接口或超类的类型
/>


jsp:setProperty
<jsp:setProperty
name="bean name" //该属性所属bean的name
property="property name" //属性名
value="str" //属性值,也可用EL表达式
/jsp:setProperty>
可采用通配符"*"来设置与HTTP表单属性同名的JavaBean属性值,如:
<jsp:setProperty name="user" property="*" />,来代替:
<jsp:setProperty name="user" property="name" value="<%= Request.getParameter("name") %>" />
<jsp:setProperty name="user" property="password" value="<%= Request.getParameter(" password") />
若不同名,可使用Request参数设置,如:
<jsp:setProperty name="user" property="name" param="username" />


jsp:getProperty
<jsp:getProperty
name="bean name" //该属性所属bean的name
property="property name" //属性名
/jsp:getProperty>


jsp:param 新参数的作用域是</jsp:include>和</jsp:forword>
<jsp:param name="param name" value="param value | <%= Expression %> " />


jsp:plugin
<jsp:plugin type="Applet | Bean" codebase="URL" >
[<jsp:param name="param name" value="param value | <%= Expression %> " /> ]?+
[<jsp:callback> arbitary_text </jsp:fallback> ]?+
</jsp:plugin>


注意:
1,使用include指令时,包含文件和被包含文件必须采用一致的编码方式
2,使用<jsp:forward>和<jsp:include>指令可共享Request作用域范围内的bean。


 

补充:Web开发 , Jsp ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,