指令与动作

来源:互联网 发布:迈克尔芬利数据 编辑:程序博客网 时间:2024/06/07 09:42

指令(Directive)

<%@在eclipse中输入Alt+/会提示有三种指令,page,include,taglib

page

一般放在页面的起始位置。但是无论被放在什么地方,都是作用于整个页面,常用的page属性有。
<%@ page 多个项目间用空格隔开
[ import="java.util.*,high.Test" ] 多个包用,分开
    [ session="true | false" ] 
    [ isThreadSafe="true | false" ] 
    [ errorPage="relative_url" ] JSP内部使用的是forward的形式,即虽然显示error页面的内容,但是网址还是当前网页的网址。
另外,为了保证error页面是隐私的,通常将error放在WEB-INF中,这样这能通过forward访问,用户不能直接访问。
    [ isErrorPage="true | false" ]  只有当isErrorPage="true"时,才可以使用exception对象。
    [ contentType="text/html;charset=UTF-8"]
    [ pageEncoding="characterSet | ISO-8859-1" ] 
    [ isELIgnored="true | false" ] 指定是否执行EL表达式,通常为false,即通常不忽略EL表达式。

通常pageEncoding和ContentType的编码是一致的。
pageEncoding是jsp文件本身的编码
contentType的charset是指服务器发送给客户端时的内容编码
JSP要经过两次的“编码”,第一阶是jsp编译成.java,它会根据pageEncoding的设定读取jsp;第二阶段是由JAVAC的JAVA源码至java byteCode的编译,固定为UTF-8;第三阶段就是由Tomcat出来的网页, 用的是contentType。

包含文件

<%@ include file="relative url" %> 如果以/开头,则必须是相对于web-app的路径,否则是相对于当前文件的路径。
由包含后生成JSPServlet的时候只有一个文件,通常也被称为静态包含。

自定义标签

<%@ taglib uri="uri" prefix="prefixOfTag" %>

动作(Action)

动作使用起来类似XML语法,比较简洁,比指令功能强大,推荐使用动作来完成include,forward等。

与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。
利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。
已include动作为例讲解什么是动态插入,如下在a.jsp中有如下语句,则生成的servlet会分别有a.jsp和b.jsp
区别于静态导入,如果是<%@include file=""%>的静态导入则只会生成a.jsp的servlet。
<jsp:include page="b.jsp">
<jsp:forward page="/test.jsp"> 相当于 request.getRequestDispatcher("/test.jsp").forward(request, response);
jsp:include,forward都可以包含jsp param参数。
<jsp:forward page="test.jsp">
<jsp:param value="abc" name="abc-value"/>
</jsp:forward>


通过request.getParameter("username")来获取参数。


其他动作:
jsp:useBean 寻找或者实例化一个JavaBean。
jsp:setProperty 设置JavaBean的属性。
jsp:getProperty 输出某个JavaBean的属性。
jsp:plugin 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
jsp:element 定义动态XML元素
jsp:attribute 设置动态定义的XML元素属性。
jsp:body 设置动态定义的XML元素内容。

jsp:text 在JSP页面和文档中使用写入文本的模板

<完>

0 0