第一部分:JSP指令,脚本,动作
编译指令:(DIRECTIVES)
主要用于指定JSP网页有关的输出方式,引用套件,加载文件等相关设置。它并不会输出任何数据至最前端,其有效范围仅仅限于使用该指令的JSP网页。
<%@ directive attribute="value"...%>
网页指令(page):用于现实相应的JSP网页的信息。
加载指令(include):用于现实包含在JSP网页中的文件。
自定义标签指令(taglib):主要用于显示相应的JSP网页是否使用标记库,并显示标记库的URL。
page:
<%@ page
language="java"
import="java.*.*"
contentType="TYPE;charset=CHARSET"
session="true|false"//默认为true,若为false,不能使用session对象
buffer="none|8kb|sizekb"//缓冲区字节的大小
autoFlush="true|false"//默认为true
isThreadSafe="true|false"//默认为true
info="text"
errorPage="relativeURL"
isErrorPage="true|false" //默认为false
extends="package.class"
isELIgnored="true|false"//制定EL(表达式语言)是否被忽略,如果为true,则容器忽略"${}"表达式的计算
pageEncoding="peinfo"
%>
include:静态包含某文件到本网页中,静态包含是指包含的文件被插入到JSP文件中,该文件可以是JSP,HTML,文本文件,INC文件等等。
<%@include file="文件名称"%>
taglib:
<%@taglib uri="taglibLibraryURL"|tagdir="tagDir" prefix="tagPrefix"%>
uri:该属性的作用是通过在web.xml中描述找到相应标志的类文件
tagdir:该属性的作用是通过路径找到相应标志的类文件
prefix:该属性的作用是定义标识的前缀,但是需要主义一些特殊的有意义的字符串不能被定义为标识的前缀。
将本指令是为了提高JSP网页的扩展性而设计的一种标记,它提供了可以使用JSP语法的一般程序功能,主要是为了使用JAVA语言。
Script:Declaration,Expression,Scriptlets
声明语句:Declaration:声明是在网页中定义变量和方法时使用的标记
<%! declarations
%>
<%! String getDate()
{
return new java.util.Date().toString();
}
%>
注意:不能在!和%之间有空格
表达式:Expression:表达式就是变量或者方法的值,将运算结果,输出到屏幕上,其语法格式如下:
<%= 变量或者方法的值%>
在<%=和%>标记之间可以使用任意形式的变量。JSP会Container会将标记中的值全部转化为字符串并输出到客户端。其作用和JAVA语言的toString()方法一样.
表达式和声明语句不同的是不需在语句结果后添加";"
脚本小程序:Scriptlets:脚本小程序主要用于解释编程语言的标记。如果在网页中嵌入Scriptlets标记,则JSP Container会解释Script标记内的编程语句,并根据其语法在网页上运行。
<%运行的指令%>
注视语句:说明程序的流程的语句。
<!-- -->:注释html代码
<%-- --%>:注释JSP代码
<%//....%>:注释脚本小程序代码
JSP动作与JSP编译指令不同,JSP动作指令是在客户端请求时动态执行的,每次有客户请求时,可能都被重新执行一次,而JSP编译指令是在编译时被JSP引擎执行的。
(1)<jsp:param name="paramname" value="paramvalue"/>
必须配合<jsp:include>、<jsp:include>、<jsp:plugin>一起使用。
(2)<jsp:include>动作被用于在这个JSP程序中包含一个静态或动态,此指令在运行上的效率比<%@page include=""%>指令的效率低,但是可以动态的增加内容。
<jsp:include page="filename" flush="true">
<jsp:param name="paramName" value="paramValue"/>
</jsp:include>
<jsp:include>,动态的加载网页,可以传递参数和数值,而<%@page include=""%>是静态加载网页,它不可以传递参数和数值,一经编译不能改变。
(3)<jsp:forward>动作用于将用户的请求跳转到另一个JSP网页,用户在地址栏内看到的地址就是当前网页的地址,而内容是另一个页面的内容,其语法为:
<jsp:forward page="filename">
<jsp:param name="paramName" value="paramValue"/>
</jsp:forward>
(4)<jsp:setProperty name="beanName" propertyDetails/>
name为必选属性,其值为JavaBean的名字,这个JavaBean必须首先使用<jsp:useBean>动作实例化。
propertyDetails:该属性可以使用一下4种方式来指定其值。
property="*":该方法表示根据表单中所有的参数设定JavaBean的属性。这是一种设置JavaBean的属性的快捷方式,在JavaBean中,属性的名字,类型必须和request对象中的参数名称相匹配。如果在表单中传递过来的值是String类型的,则JSP内在机制会把这些参数转化成为JavaBean属性对应的类型。
如果request对象的参数值中有空值,那么对应的JavaBean属性将不会设置任何值,同样,如果JavaBean中有一个属性没有与之对应的request参数值,那么这个属性也同样不会被设定。
如果使用了上面这种方法,则JavaBean的属性没有必要按HTML表单中的顺序排列。
property="propertyName":使用request中的一个参数来指定JavaBean中的一个属性值。加入在JavaBean中有setUserName(String userName)方法,则propertyName的值就是"userName"。
property="propertyName" param="parameterName":当JavaBean属性的名字和request中参数名字不同时使用这个方法,param指定request中参数名。
property="propertyName" value="propertyValue":value是一个可选参数,用于使用指定的值设定JavaBean的属性,这个值可以是字符串也可以是表达式。
<jsp:useBean>和<jsp:setProperty>是联系在一起的,它们使用的JavaBean实例的名字也必须匹配,即在<jsp:setProperty>动做中的name值应当和<jsp:useBean>中的ID值相同,ID实际上就是JavaBean的重命名,也可以和JavaBean同名。
(5)<jsp:getProperty>动作是对<jsp:setProperty>动作的补充,用来访问一个JavaBean的属性,它访问的属性值将先转化成一个String,然后发送到输出流中,如果属性是一个对象,则调用toString方法,该动作的语法格式如下:
<jsp:getProperty name="beanName" property="propertyName"/>
(6)<jsp:userBean>动作用来在JSP页面中创建一个JavaBean实例,并指定它的名字以及作用范围,它保证对象在动作制定的范围内可以使用,该动作语法格式如下:
<jsp:useBean id="id" scope="page|request|session|application" typeSpec/>
id:该属性用于在所定义的范围内确认JavaBean的变量,在定义某个JavaBean时,需要指定它的id,通过此id对JavaBean的实例对象进行引用。这个变量名必须符合所使用的脚本语言的规定,并且变量名对大小写敏感。如果要使用的是一个已经传见好的JavaBean,那么这个id必须与原来的id值一样。
scope:该属性用于设置JavaBean存在的范围以及ID变量名的有效范围。scope属性的默认值是page,下面是该属性的四个生命周期:
page:能够在包含该动作的JSP文件以及此文件包含的所有静态文件中使用JavaBean,知道页面执行完毕向客户端发回响应或转到另一个文件为止;
request:在请求的范围内有效,可以使用request对象访问JavaBean,例如
request.getAttribute(name);
其中name是JavaBean实例化的名字,即ID
session:从创建JavaBean开始,就可以在session有效范围内使用这个JavaBean,这个JavaBean对于JSP来说是共享的。
需要说明的是,在<%@ page session=""%>中必须制定为true,否则可能发生致命错误。
session.getValue(name);
application:同session一样,从创建JavaBean开始,就可以在任何使用相同的application的JSP文件中使用JavaBean。不同的是,Application对象是在服务器启动时就创建了,直到服务器关闭。
typeSpec:该属性可以是"class="className"","class="className" type="typeName"","beanName="beanName" type="typeName"",和"type="typeName"".
其中className是JavaBean的类路径和类名,这个class不能是抽象的,必须有一个公用的,没有参数的构造器,该包的名字对大小写敏感。beanName使用instantiate方法从一个class中实例化一个JavaBean,同时还可以指定JavaBean的类型(type)。
不能同时使用className和beanName。后者表示JavaBean的名字,其形式为a.b.c。<jsp:useBean>动作用于定位或实例化一个JavaBean组件。<jsp:useBean>首先会试图定位一个JavaBean实例,如果这个JavaBean不存在,那么动作就会从一个class或者模板中进行实例化。
<jsp:useBean>主体中经常包含<jsp:setProperty>动作用于设置JavaBean的属性值,该动作的主体仅仅在<jsp:useBean>实例化JavaBean时才被执行,如果这个JavaBean已经存在,<jsp:useBean>就能定位它,那么主体中的内容将不再起作用。
(7)<jsp:plugin>动作用于在浏览器中播放或者显示一个对象(通常是Applet或者JavaBean),而这种显示需要安装JAVA插件。
<jsp:plugin type="plugin类"//javaBean or Applet
code="保存类的文件名称"//className
align="对齐方式"
archive="相关文件路径"//package that needs to be contained
height="高度"
width="宽度"
hspace="水平间距"
vspace="垂直间距"
jreversion="JAVA环境版本"
name="对象名称"//JavaBean's name or applet's name
nspluginurl="供NC使用的plugin加载的位置"
iepluginurl="供IE使用的plugin加载的位置"
/>
(8)<jsp:fallback>动作用于applet程序的回退,只用于<jsp:plugin>动作中,当<jsp:plugin>发生错误时显示给拥护错误信息。
笔记1
最新推荐文章于 2023-07-21 19:21:55 发布