JSP指令与动作

一、指令

JSP指令用来设置整个JSP页面的相关属性,如网页的编码方式和脚本语言等。

1、page指令:通常位于JSP页面的顶端,同一页面可以有多个page指令

page指令语法:<%@ page 属性1="属性值1"属性2="属性值2"属性n="属性值n"%>

<%@ page 属性1="属性值1"属性2="属性值2"属性n="属性值n"%>
page指令常用属性表
属性 描述 默认值
language 指定JSP页面使用的脚本语言 java
import 指定脚本语言中使用到的类文件 null
contentType 指定JSP页面采用的编码方式以及文件类型 text/html,ISO-8859-1
buffer 指定out对象使用缓冲区的大小  
extends 指定servlet继承自哪个类  
isELIgnored 指定是否执行EL表达式  
errorPage 指定当前页面发生异常时需要转向的错误处理页面  
isErrorPage 指定当前页面是否可以作为错误处理页面  

【注】pageEncoding是JSP页面本身的编码,contentType的charset属性是指服务器发给客户端时的内容编码

2、include指令:将一个外部文件嵌入到当前JSP页面中,同时解析这个页面

<%@ include file="URL"%>

 include指令中的文件名是一个相对的URL,JSP编译器默认在当前路径下寻找。

3、taglib指令:使用标签库定义新的自定义标签,在JSP页面启用定制行为

<%@ taglib uri="uri" prefix="前缀"%>

uri属性确定标签库的位置,prefix属性指定标签库的前缀。

二、动作

JSP动作元素(action elements),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性、可选的内容、与开始标签匹配的结束标签。

JSP动作的分类:

①与存取JavaBean有关的动作

<jsp:useBean><jsp:setProperty><jsp:getProperty>

②JSP1.2开始有的基本元素,包括6个动作元素

<jsp:include><jsp:forward><jsp:param><jsp:plugin><jsp:params><jsp:fallback>

③JSP2.0新增加的元素,主要与JSP Document有关,包括6个元素

<jsp:root><jsp:declaration><jsp:scriptlet><jsp:expression><jsp:text><jsp:output>

④JSP2.0新增加的元素,主要是用来动态生成XML元素标签的值,包括3个动作

<jsp:attribute><jsp:body><jsp:element>

⑤JSP2.0新增加的元素,主要用在Tag File中,有2个元素

<jsp:invoke><jsp:dobody>

1、include动作

<jsp:include page="URL" flush="true/false"/>

page属性表示要包含的页面,flush属性表示被包含的页面是否要从缓冲区读取

【注】include指令和include动作的区别,简单说来,include指令包含的是代码,include动作包含的是结果

include指令与include动作的比较表
  include指令 include动作
语法格式 <%@ include file="url" %> <jsp:include page="url">
发生作用的时间 页面转换期间 请求期间
包含的内容 文件的实际内容 页面的输出
转换成的Servlet 主页面与包含页面转换为一个Servlet 主页面和包含页面分别转换为独立的Servlet
编译时间 较慢,资源必须被解析 较快
执行时间 稍快 较慢,每次资源必须被解析

2、forward动作

<jsp:forward page="URL"/>

等同于request.getRequestDispatcher(url).forward(request,response);

3、param动作

<jsp:param name="参数名" value="参数值"/>

常常与<jsp:forward>标签一起使用,作为其子标签,可以添加新的参数也可以修改原有参数

<jsp:forward page="login.jsp">
    <jsp:param name="name" value="admin"/>
</jsp:forward>

4、useBean动作

<jsp:useBean id="标示符" class="类名" scope="作用范围">

5、setProperty动作

<!-- 全部属性与表单关联 -->
<jsp:setProperty name="JavaBean实例名" property="*"/>
<!-- 部分属性与表单关联-->
<jsp:setProperty name="JavaBean实例名" property="指定属性名"/>
<!-- 手工设置属性-->
<jsp:setProperty name="JavaBean实例名" property="指定属性名" value="指定属性值"/>
<!-- 与request参数关联-->
<jsp:setProperty name="JavaBean实例名" property="指定属性名" value="指定属性值" param="request对象中的参数名"/>

6、getProperty动作

<jsp:getProperty name="JavaBean实例名" property="属性名"/>

7、plugin动作

<jsp:plugin>标签用来根据浏览器类型,通过插入Java插件运行Java Applet所必需的OBJECT活EMBED元素

<jsp:plugin 
type="bean | applet" 
code="classFileName" 
codebase="classFileDirectoryName" 
[ name="instanceName" ] 
[ archive="URIToArchive, ..." ] 
[ align="bottom | top | middle | left | right" ] 
[ height="displayPixels" ] 
[ width="displayPixels" ] 
[ hspace="leftRightPixels" ] 
[ vspace="topBottomPixels" ] 
[ jreversion="JREVersionNumber | 1.1" ] 
[ nspluginurl="URLToPlugin" ] 
[ iepluginurl="URLToPlugin" ] ></jsp:plugin>

8、<jsp:element>、<jsp:attribute>、<jsp:body>动作

这三个动作元素动态定义了XML元素

<jsp:element name="xmlElement">
    <jsp:attribute name="xmlElementAttr">
       Value for the attribute
    </jsp:attribute>
    <jsp:body>
       Body for XML element
    </jsp:body>
</jsp:element>

参考资料:慕课网【JAVA遇见HTML——JSP篇】http://www.imooc.com/learn/166

     w3cschool的JSP教程 http://www.w3cschool.cc/jsp/jsp-tutorial.html

原文地址:https://www.cnblogs.com/sherryueda/p/4270600.html