您的位置:首页 > Web前端 > JavaScript

常用的JSP指令和动作

2017-03-17 16:22 288 查看
JSP中的指令能够影响JSP翻译生出的java类的结构,如page指令、include指令。

JSP提供了一系列的动作,能够更位便捷地完成一些动态功能,如forward、include等。

JSP指令

JSP中指令的语法:

<%@ directive {attr="value"}* %>
其中directive为指令名,attr指该指令对应的属性名,一个指令可能有多个属性。

(1)page指令。

page指令共有13个属性。page指令作用于整个JSP页面,可以将指令放在JSP页面任何一个位置。

1、import属性:用来引入JSP文件需要使用的类。

<%@ page import="java.util.*,java.io.*" %>
<%@ page import="com.etc.vo.*" %>
上述代码可以在JSP文件中使用,引入需要使用的类。可以使用都好同时引入多个包,也可以在一个JSP文件中多次使用import。(import是page指令中唯一一个可在同一个JSP文件中多次使用的属性)

2、pageEncoding属性:设置JSP文件的页面编码格式。

<%@ page pageEcoding="gb2312" %>
设置当前JSP页面的编码格式是gb2312,可以显示中文。

3、session属性:设置JSP页面是否生出session对象。该属性默认值为true,可以设置成false。

<%@ page session="false" %>
session属性设置为false的话,该JSP翻译生出的类中将没有内置对象session,该JSP不会参与会话。

4、errorPage属性:设置JSP页面的错误页面。当JSP中发生异常或错误却没有被处理时,容器将请求转发到错误页面。

<
4000
%@ page errorPage="error.jsp" %>
This is my JSP page.<br>
<% =100/0 %><br>
访问该页面会发生数学异常,而且并没有对异常进行处理,将会跳转到错误页面error.jsp。

5、isErrorPage属性:该属性默认值是false,可以设置为true。在JSP的错误页面中,将isErrorPage设置为true,则该页面翻译生出的Java类中将生出exception内置对象。

JSP页面是不是只有设置了isErrorPage=true后,才能作为错误页面使用?

不是,任何一个JSP页面都可以作为错误页面,只要通过“errorPage=”设置即可。而设置isErrorPage=true后,该错误页面可以使用exception内置对象,否则不能使用exception内置对象。

(2)include指令。

include指令作用:用来静态包含其他页面(发生在翻译期间)。

如存在一个copyright.jsp文件,代码如下:

Copyright@ author:<% =request.getParameter("author") %><br>
2013-2017
如果在其他JSP页面中,也需要这样的代码片段,就可以使用include指令进行包含,不需要重新编写。

如果index.jsp要包含copyright.jsp,只要在需要包含的位置加入如下代码即可:

<%@ include file="copyright.jsp"%>
但是如下方式将会发生错误:(copyright.jsp?author=etc这个路径或文件不存在)
<%@ include file="copyright.jsp?author=etc"%>
(include指令相当于将被包含页面中的代码复制粘贴到需要包含它的页面的代码中,file=””中的属性必须是已存在的文件,否则会报异常。如果被包含页面发生改变,主页面也会随之改变)

JSP动作

JSP中动作的语法与xml语法一致:
<jsp:action_name attribute1="value1" attribute2="value2">
其中action_name表示动作的名字,attribute表示动作的属性。
(1)forward动作。

在JSP页面中进行请求转发。
<jsp:forward page="copyright.jap">
</jsp:forward>
上述代码将请求转发到copyright.jsp页面,类似于servlet中调用RequestDispatcher的forward方法进行请求转发。
(2)include动作。

在JSP页面中,进行动态包含(发生在运行期间)。
<jsp:include page="copyright.jsp">
</jsp:include>
<jsp:include>是动态包含的,发生在运行期间,并将响应结果同包含页面的响应结果合并,生成最终的响应。类似于servlet中调用RequestDispatcher的include方法进行包含。因为是动态包含,所以可以在包含时传递请求参数。
<jsp:include page="copyright.jsp?author=etc">
</jsp:include>
(3)param动作。

传递参数,param动作往往作为子动作使用,为forward和include动作传递参数。
<jsp:forward page="copyright.jsp">
<jsp:param name="author" value="etc"/>
</jsp:forward>
<jsp:include page="copyright.jsp">
<jsp:param name="author" value="etc"/>
</jsp:include>
上述代码使用param为forward和include动作传递参数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: