笔记1

来源:互联网 发布:csp漫画软件 编辑:程序博客网 时间:2024/04/28 21:05

第一部分: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>发生错误时显示给拥护错误信息。

原创粉丝点击