程序员人生 网站导航

JSP语法

栏目:php教程时间:2015-02-28 08:15:01

脚本程序

脚本程序可以包括任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。

脚本程序的语法格式:<% 代码片断 %>

任何文本、HTML标签、JSP元素必须写在脚本程序的外面。

 

<html> <head><title>HelloWorld</title></head> <body> HelloWorld!<br/> <% out.println("Your IP address is " +request.getRemoteAddr()); %> </body> </html>

JSP声明

1个声明语句可以声明1个或多个变量、方法,供后面的Java代码使用。在JSP文件中,必须先声明这些变量和方法然后才能使用它们。

JSP声明的语法格式: <%!declaration; [ declaration; ]+ ... %>

 

<%! int i =0; %> <%! int a, b,c; %> <%! Circle a= new Circle(2.0); %>
 

JSP表达式

1个JSP表达式中包括的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。

由于表达式的值会被转化成String,所以可以在1个文本行中使用表达式而不用去管它是不是是HTML标签。

表达式元素中可以包括任何符合Java语言规范的表达式,但是不能使用分号来结束表达式。

JSP表达式的语法格式: <%=表达式 %>

<html> <head><title>AComment Test</title></head> <body> <p> Today's date: <%= (newjava.util.Date()).toLocaleString()%> </p> </body> </html>

JSP注释

JSP注释主要有两个作用:为代码作注释和将某段代码注释掉。

JSP注释的语法格式:

<%-- 这里可以填写 JSP 注释 --%>

 

JSP 指令

JSP指令用来设置全部JSP页面相干的属性,如网页的编码方式和脚本语言。

JSP中的3种指令标签:

<%@ page ... %>       定义网页依赖属性,比如脚本语言、error页面、缓存需求等等

<%@ include ... %>   包括其他文件

<%@ taglib ... %>     引入标签库的定义

Page指令

<%@ page attribute="value" %>

等价的XML格式:

<jsp:directive.page attribute="value" />

 

下表列出与Page指令相干的属性:

buffer   指定out对象使用缓冲区的大小

autoFlush   控制out对象的 缓存区,true/false,默许为true

contentType      指定当前JSP页面的MIME类型和字符编码

errorPage   指定当JSP页面产生异常时需要转向的毛病处理页面

isErrorPage 是不是可以作为另外一个JSP页面的毛病处理页面,true/false

extends       指定servlet从哪个类继承

import 导入要使用的Java类,多个包可以用逗号分割

info      定义JSP页面的描写信息,可以通过Servlet.getServletInfo()得到

isThreadSafe     指定对JSP页面的访问是不是为线程安全

language     定义JSP页面所用的脚本语言,默许是Java

session 指定JSP页面是不是使用session,true/false

isELIgnored 指定是不是履行EL表达式,true/false

isScriptingEnabled   肯定脚本元素能否被使用,true/false

trimDirectiveWhitespace 是不是去掉指令前后的空白字符,true/false

Include指令

JSP可以通过include指令来包括其他文件。被包括的文件可以是JSP文件、HTML文件或文本文件。包括的文件就好像是该JSP文件的1部份,会被同时编译履行。

Include指令的语法格式以下:

<%@ include file="relative url" %>

Include指令中的文件名实际上是1个相对的URL。如果没有给文件关联1个路径,JSP编译器默许在当前路径下寻觅。

等价的XML语法:

<jsp:directive.include file="relative url" />

与<jsp:include page=”url”/>的区分:Include指令是先包括,再编译,jsp:include标签是先运行,再包括,就是说前者是把包括的文件合并到1个文件,最后编译成1个class文件;后者是两个文件单独履行,然后将结果合并到1块

 

Taglib指令

JSP API允许用户自定义标签,1个自定义标签库就是自定义标签的集合。

Taglib指令引入1个自定义标签集合的定义,包括库路径、自定义标签。

Taglib指令的语法:

<%@ taglib uri="uri" prefix="prefixOfTag" %>

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

等价的XML语法:

<jsp:directive.taglib uri="uri" prefix="prefixOfTag" />
 

JSP 动作元素

与JSP指令元素不同的是,JSP动作元素在要求处理阶段起作用。JSP动作元素是用XML语法写成的

动作元素基本上都是预定义的函数,JSP规范定义了1系列的标准动作,它用JSP作为前缀,可用的标准动作元素以下:

 

jsp:include  在页面被要求的时候引入1个文件。

jsp:useBean       寻觅或实例化1个JavaBean。

jsp:setProperty 设置JavaBean的属性。

jsp:getProperty 输出某个JavaBean的属性。

jsp:forward 把要求转到1个新的页面。

jsp:plugin    根据阅读器类型为Java插件生成OBJECT或EMBED标记。

jsp:element       定义动态XML元素

jsp:attribute      设置动态定义的XML元素属性。

jsp:body      设置动态定义的XML元素内容。

jsp:text 在JSP页面和文档中使用写入文本的模板

 

所有的动作要素都有两个属性:id属性和scope属性。

 

id属性:

id属性是动作元素的唯1标识,可以在JSP页面中援用。动作元素创建的id值可以通过PageContext来调用。

 

scope属性:

该属性用于辨认动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相干联id对象的寿命。 scope属性有4个可能的值:(a) page, (b)request, (c)session, 和 (d) application。

 

<jsp:include>动作元素

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

以下是include动作相干的属性列表。

page     包括在页面中的相对URL地址。

flush     布尔属性,定义在包括资源前是不是刷新缓存区。

<jsp:useBean>动作元素

<jsp:useBean id="name" class="package.class" />
 

在类载入后,可以通过jsp:setProperty 和 jsp:getProperty 动作来修改和检索bean的属性。

 

以下是useBean动作相干的属性列表。

 

class     指定Bean的完全包名。

type      指定将援用该对象变量的类型。

beanName  通过 java.beans.Beans 的 instantiate() 方法指定Bean的名字。

 

<jsp:useBean id="test" class="action.TestBean" /> <!-- 此句可以从request域中自动获得所有符合的属性值--> <jsp:setProperty name="test" property="*" /> <jsp:setProperty name="test"property="message" value="HelloJSP..." /> <p>Got message....</p> <jsp:getProperty name="test" property="message" />

 

<jsp:setProperty>和<jsp:getProperty>

<jsp:setProperty>的属性列表

name    name属性是必须的。它表示要设置属性的是哪一个Bean。

property     property属性是必须的。它表示要设置哪一个属性。有1个特殊用法:如果property的值是"*",表示所着名字和Bean属性名字匹配的要求参数都将被传递给相应的属性set方法。

value    value 属性是可选的。该属性用来指定Bean属性的值。字符串数据会在目标类中通过标准的valueOf方法自动转换成数字、boolean、Boolean、 byte、Byte、char、Character。例如,boolean和Boolean类型的属性值(比如"true")通过 Boolean.valueOf转换,int和Integer类型的属性值(比如"42")通过Integer.valueOf转换。  value和param不能同时使用,但可使用其中任意1个。

param  param 是可选的。它指定用哪一个要求参数作为Bean属性的值。如果当前要求没有参数,则甚么事情也不做,系统不会把null传递给Bean属性的set方法。因此,你可让Bean自己提供默许属性值,只有当要求参数明确指定了新值时才修改默许属性值。

 

<jsp:getProperty>的属性列表

name    要检索的Bean属性名称。Bean必须已定义。

property     表示要提取Bean属性的值

 

<jsp:forward> 和<jsp:param>

<jsp:forward page=”url”> <jsp:param name=”param1” value=”value1”/> <jsp:param name=”param2” value=”value2”/> </jsp:forward>

<jsp:directive>

<jsp:directive>与JSP指令相对应,可以互换

<jsp:directive.page/>

<jsp:directive.include/>

<jsp:directive.taglib/>

 

<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素

<jsp:element>、 <jsp:attribute>、 <jsp:body>动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。

 

以下实例动态定义了XML元素:

 

<%@page language="java" contentType="text/html"%> <html xmlns="http://www.w3c.org/1999/xhtml" xmlns:jsp="http://java.sun.com/JSP/Page"> <head><title>Generate XML Element</title></head> <body> <jsp:element name="xmlElement"> <jsp:attribute name="xmlElementAttr"> Value for the attribute </jsp:attribute> <jsp:body> Body for XML element </jsp:body> </jsp:element> </body> </html>


履行时生成HTML代码以下:

 

<html xmlns="http://www.w3c.org/1999/xhtml" xmlns:jsp="http://java.sun.com/JSP/Page"> <head><title>GenerateXML Element</title></head> <body> <xmlElement xmlElementAttr="Value for the attribute"> Body for XML element </xmlElement> </body> </html>

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐