JSP指令(Directive)作用是与JSP引擎进行沟通,为JSP页面设置全局变量,声
明类以及JSP要实现的方法和输出内容的类型等
JSP指令在整个页面范围内有效,且不在客户端产生任何输出
格式:<%@ directivename attribute="value"%>
<%@ directivename attribute1="value1"......attributeN="valueN"%>
2>page指令
用来定义JSP页面的全局属性和相关功能,并由该指令和JSP引擎进行通信
格式:<%@ page attribute1="value1",........%>
可用属性:language import contentType session buffer autoFlush
isThreadSafe info errorPage isErrorPage extends.
一个JSP页面可以包含多个Page指令
除了import属性外,每个属性只能定义一次,否则出错
language属性:language="脚本语言"声明JSP页面中使用的脚本语言的种类
extends="ClassName"定义JSP页面所产生的Servlet所继承的类,将限制JSP引
擎提供的超类
import="importList"和java的import的意思一样,导入包文件
session="true|false"指定JSP页是否参与一个Http会话
buffer="none|sizeKB"指定客户端输出流的缓冲模式,none表示不缓冲
false"当缓冲区满时将自动刷新,如果为false,缓冲区满了
就会出现溢出异常
isThreadSafe="true|false"可以使用多线程
info="info_text"定义一个任意的字符串,用来说明JSP说明的信息,将直接加
入翻译的页面
errorPage="error_url"设置处理异常事件的JSP文件
isErrorPage="true|false"设置此页是否为异常页面"
contentType="type;charset=CHARSET"定义了JSP页面相应MIME类型以及JSP页
面的字符编码(可以只写type部分)
pageEncoding="peinfo"处理中文字符通常charset=GB2312
isELIgnored="true|false"用来设置EL表达式是否被忽略
3>include指令
用来指定JSP被编译时所需要插入的资源,可以是文本,代码,HTML文件或JSP
文件
格式:<%@ include file="URL">一旦编译完成,资源内容就不可改变
用include指令可以将一个复杂的JSP页面分为若干部分,如:head.jsp
body.jsp tail.jsp然后在同一网站的不同JSP页面用include指令调用
4>taglib指令
用来自定义标签,可以把一些需要反复显示的内容定义成为一个标签,从而增
加代码的重用度,并使页面便于维护
步骤1定义一个标签处理类,用来实现标签的功能
步骤2定义标签库描述文件,.tld后最 对标记相关信息进行说明
步骤3最后配置文件web.xml
格式:<%@ taglib uri="tagligURL prefilx="tagPrefix"%>
5>Scriptlet脚本元素
声明用来定义变量方法 <%! int i,a,b=0;%>声明每个语句以;结束
声明方法<%! String getDate(){}%> (一个声明只能在一个JSP页面有效)
表达式格式:<%=表达式%>(表达式不能以;结尾)
<%=1+2+3%>输出6
<%=new java.util.Date().toString()%>输出日期
Scriptlet:以<%%>括起来的java代码
JSP提供了很多种动作元素:
<jsp:useBean><jsp:setProperty><jsp:getProperty><jsp:fallback>
<jsp:param><jsp:include><jsp:forward><jsp:plugin>
<jsp:params><jsp:root><jsp:expression_r_r><jsp:text>
<jsp:output><jsp:declaration><jsp:scriptlet>.....20多种
<jsp:param>传递一个或多个参数到指定动态文件,需要和
<jsp:include><jsp:forward><jsp:plugin>一起来使用
<jsp:paramvalue="paramValue"/>
<jsp:include page="HelloWorld.html"/>
<jsp:forward>允许将当前的请求转发至另一个静态文件或JSP页面或含有与当
前页面相同内容的Servlet
<jsp:forward page="confirm.jsp">
<jsp:param value="aaa"/>
<jsp:param value="12345"/>
</jsp:forward>转向confirm.jsp页面并传递两个参数user和password
<jsp:plugin>用来在客户端浏览器中播放或显示一个对象,通常为Applet或
Bean,最终根据浏览器版本替换为<object>或<embed>
格式:
<jsp:plugin type="bean|applet" code="objectCode"
codebase="objectCodebase" archive="archiveList"
align="alignment"
vspace="vspace"hspace="hspace"
width="width"
nspluginurl="url"iepluginurl="url"
jreversion="jreversion"myscript="true|false"/>
<jsp:paramsvalue="paramValue">
<jsp:fallback>artibute text</jsp:fallback>(当显示Bean|Applet失败时显
示此字符串
6>JSP的内建对象
JSP提供了一些由容器实现和管理的内建对象,在JSP页面中可以直接使用,不
需要实例化,通过存取这些内建对象实现与JSP页面的Servlet环境的互相访问
JSP一共提供了9个内建对象:out request repnse session pageContext
application config page exception
JSP是构建在Servlet上的,JSP的每个内建对象都是与JavaServletAPI包中的类
相对象,在服务器运行时自动生成
JSP提供给开发人员一项传递数据的机制,那就是利用setAttribute()和
getAttribute()方法
JSP有四种范围:分别为Page Request Session Application
Page范围指的是单单一页JSP Page的范围 离开页面就失效
PageContext.setAttribute("Name","abc");设置属性Name的值为abc,该值只
在本页范围内有效,在本页调用(String)PageContext.getAttribute("Name")将
返回"abc"
Request范围是指在一JSP页面发出请求到另一个JSP网页之间(include指
令,forward指令等..),随后范围就失效
Request.setAttribute()和Request.getAttribute()
Session范围为一段用户持续和服务器所连接的时间,但与服务器断线后,属性
就失效
Application的作用范围在服务器运行一开始执行服务就生效,直到服务器关闭
为止
以上四种内建对象可以使用的存储和取得属性的方法: