`

JSP语法简介(2)

    博客分类:
  • JSP
阅读更多

<jsp:forward>
重定向一个HTML文件,JSP文件,或者是一个程序段.

JSP 语法
<jsp:forward page={"relativeURL" / "<%= expression %>"} />
or
<jsp:forward page={"relativeURL" / "<%= expression %>"} >
<jsp:param name="parameterName"
value="{parameterValue / <%= expression %>}" />+
</jsp:forward>
例子
<jsp:forward page="/servlet/login" />
<jsp:forward page="/servlet/login">
<jsp:param name="username" value="jsmith" />
</jsp:forward>
描述
<jsp:forward>标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.<jsp:forward>标签以下的代码,将不能执行.

你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<jsp:param>标签的话,目标文件必须是一个动态的文件,能够处理参数.

如果你使用了非缓冲输出的话,那么使用<jsp:forward>时就要小心。如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错.

属性
page="{relativeURL / <%= expression %>}"
这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL.这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).

<jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" />+
向一个动态文件发送一个或多个参数,这个文件一定是动态文件.

如果你想传递多个参数,你可以在一个JSP文件中使用多个<jsp:param>。name指定参数名,value指定参数值.

======================================================================
<jsp:getProperty>
获取Bean的属性值,用于显示在页面中

JSP 语法
<jsp:getProperty name="beanInstanceName" property="propertyName" />
例子
<jsp:useBean id="calendar" scope="page" class="employee.Calendar" />
<h2>
Calendar of <jsp:getProperty name="calendar" property="username" />
</h2>
描述
这个<jsp:getProperty>元素将获得Bean的属性值,并可以将其使用或显示在JSP页面中.在你使用<jsp:getProperty>之前,你必须用<jsp:useBean>创建它.

<jsp:getProperty>元素有一些限制:

你不能使用<jsp:getProperty>来检索一个已经被索引了的属性
你能够和JavaBeans组件一起使用<jsp:getProperty>,但是不能与Enterprise Bean一起使用。
属性
name="beanInstanceName"
bean的名字,由<jsp:useBean>指定

property="propertyName"
所指定的Bean的属性名。

技巧:
在sun的JSP参考中提到,如果你使用<jsp:getProperty>来检索的值是空值,那么NullPointerException将会出现,同时如果使用程序段或表达式来检索其值,那么在浏览器上出现的是null(空).

======================================================================
<jsp:include>
包含一个静态或动态文件.

JSP 语法
<jsp:include page="{relativeURL / <%= expression%>}" flush="true" />
or
<jsp:include page="{relativeURL / <%= expression %>}" flush="true" >
<jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" />+
</jsp:include>
Examples
<jsp:include page="scripts/login.jsp" />
<jsp:include page="copyright.html" />
<jsp:include page="/index.html" />
<jsp:include page="scripts/login.jsp">
<jsp:param name="username" value="jsmith" />
</jsp:include>

描述
<jsp:include>元素允许你包含动态文件和静态,这两种包含文件的结果是不同的。如果文件仅是静态文件,那么这种包含仅仅是把包含文件的内容加到jsp文件中去,而如果这个文件动态的,那么这个被包含文件也会被Jsp编译器执行(这一切与asp相似)

你不能从文件名上判断一个文件是动态的还是静态的,比如aspcn.asp 就有可能只是包含一些信息而已,而不需要执行。<jsp:include>能够同时处理这两种文件,因此你就不需要包含时还要判断此文件是动态的还是静态的.

如果这个包含文件是动态的,那么你还可以用<jsp:param>还传递参数名和参数值。

属性
page="{relativeURL / <%= expression %>}"
参数为一相对路径,或者是代表相对路径的表达式.

flush="true"
这里你必须使用flush="true",你不能使用false值.缺省值为false

<jsp:param name="parameterName" value="{parameterValue / <%= expression %> }" />+
<jsp:param>子句能让你传递一个或多个参数给动态文件

你能在一个页面中使用多个<jsp:param>来传递多个参数.

==================================================================
<jsp:plugin>
执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它.

JSP 语法
<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:params>
[ <jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" /> ]+
</jsp:params> ]

[ <jsp:fallback> text message for user </jsp:fallback> ]

</jsp:plugin>

例子
<jsp:plugin type=applet code="Molecule.class" codebase="/html">
<jsp:params>
<jsp:param name="molecule" value="molecules/benzene.mol" />
</jsp:params>
<jsp:fallback>
<p>Unable to load applet</p>
</jsp:fallback>
</jsp:plugin>
描述
<jsp:plugin>元素用于在浏览器中播放或显示一个对象(典型的就是applet和Bean),而这种显示需要在浏览器的java插件。

当Jsp文件被编译,送往浏览器时,<jsp:plugin>元素将会根据浏览器的版本替换成<object>或者<embed>元素。注意,<object>用于HTML 4.0 ,<embed>用于HTML 3.2.

一般来说,<jsp:plugin>元素会指定对象是Applet还是Bean,同样也会指定class的名字,还有位置,另外还会指定将从哪里下载这个Java插件。具体如下:

属性
type="bean / applet"
.将被执行的插件对象的类型,你必须得指定这个是Bean还是applet,因为这个属性没有缺省值.

code="classFileName"
将会被Java插件执行的Java Class的名字,必须以.class结尾。这个文件必须存在于codebase属性指定的目录中.

codebase="classFileDirectoryName"
将会被执行的Java Class文件的目录(或者是路径),如果你没有提供此属性,那么使用<jsp:plugin>的jsp文件的目录将会被使用.

name="instanceName"
这个Bean或applet实例的名字,它将会在Jsp其它的地方调用.

archive="URIToArchive, ..."
一些由逗号分开的路径名,这些路径名用于预装一些将要使用的class,这会提高applet的性能.

align="bottom / top / middle / left / right"
图形,对象,Applet的位置,有以下值:

bottom
top
middle
left
right
height="displayPixels" width="displayPixels"
Applet或Bean将要显示的长宽的值,此值为数字,单位为象素.

hspace="leftRightPixels" vspace="topBottomPixels"
Applet或Bean显示时在屏幕左右,上下所需留下的空间,单位为象素.

jreversion="JREVersionNumber / 1.1"
Applet或Bean运行所需的Java Runtime Environment (JRE) 的版本. 缺省值是 1.1.

nspluginurl="URLToPlugin"
Netscape Navigator用户能够使用的JRE的下载地址,此值为一个标准的URL,如http://www.aspcn.com/jsp

iepluginurl="URLToPlugin"
IE用户能够使用的JRE的下载地址,此值为一个标准的URL,如http://www.aspcn.com/jsp

 

<jsp:params> [ <jsp:param name="parameterName" value="{parameterValue / <%= expression %>}" /> ]+ </jsp:params>
你需要向applet或Bean传送的参数或参数值。

<jsp:fallback> text message for user </jsp:fallback>
一段文字用于Java 插件不能启动时显示给用户的,如果插件能够启动而applet或Bean不能,那么浏览器会有一个出错信息弹出.

=========================================================================
<jsp:setProperty>
设置Bean中的属性值.

JSP语法
<jsp:setProperty
name="beanInstanceName"
{
property= "*" /
property="propertyName" [ param="parameterName" ] /
property="propertyName" value="{string / <%= expression %>}"
}
/>
例子
<jsp:setProperty name="mybean" property="*" />
<jsp:setProperty name="mybean" property="username" />
<jsp:setProperty name="mybean" property="username" value="Steve" />
描述
<jsp:setProperty>元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。你在使用这个元素之前必须得使用<jsp:useBean>声明此Bean.因为,<jsp:useBean>和<jsp:setProperty>是联系在一起的,同时这他们使用的Bean实例的名字也应当相匹配(就是说,在<jsp:setProperty>中的name的值应当和<jsp:useBean>中id的值相同)

你能使用多种方法利用<jsp:setProperty>来设定属性值 :

通过用户输入的所有值(被做为参数储存中request对象中)来匹配Bean中的属性
通过用户输入的指定的值来匹配Bean中指定的属性
在运行时使用一个表达式来匹配Bean的属性
每一种设定属性值的方法都有其特定的语法,下面我们会来讲解

属性及其用法
name="beanInstanceName"
表示已经在<jsp:useBean>中创建的Bean实例的名字.

property="*"
储存用户在Jsp输入的所有值,用于匹配Bean中的属性。在Bean中的属性的名字必须和request对象中的参数名一致.

从客户传到服器上的参数值一般都是字符类型 ,这些字符串为了能够在Bean中匹配就必须转换成其它的类型,下面的表中列出了Bean属性的类型以及他们的转换方法.

把字符串转化为其它类型的方法. Property 类型
方法


boolean or Boolean

java.lang.Boolean.valueOf(String)

byte or Byte

java.lang.Byte.valueOf(String)

char or Character

java.lang.Character.valueOf(String)

double or Double

java.lang.Double.valueOf(String)

integer or Integer

java.lang.Integer.valueOf(String)

float or Float

java.lang.Float.valueOf(String)

long or Long

java.lang.Long.valueOf(String)


如果request对象的参数值中有空值,那么对应的Bean属性将不会设定任何值。同样的,如果Bean中有一个属性没有与之对应的Request参数值,那么这个属性同样也不会设定.

property="propertyName" [ param="parameterName" ]
使用request中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean的属性名,param指定request中的参数名.

如果bean属性和request参数的名字不同,那么你就必须得指定property和param ,如果他们同名,那么你就只需要指明property就行了.

如查参数值为空(或未初始化),对应的Bean属性不被设定.

property="propertyName" value="{string / <%= expression %>}"
使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型(查看上面的表).如果它是一个表达式,那么它类型就必须和它将要设定的属性值的类型一致。

如果参数值为空,那么对应的属性值也不会被设定。另外,你不能在一个<jsp:setProperty>中同时使用param和value

技巧
如果你使用了property="*",那么Bean的属性没有必要按Html表单中的顺序排序

=======================================================================
<jsp:useBean>
创建一个Bean实例并指定它的名字和作用范围.

JSP 语法
<jsp:useBean
id="beanInstanceName"
scope="page / request / session / application"
{
class="package.class" /
type="package.class" /
class="package.class" type="package.class" /
beanName="{package.class / <%= expression %>}" type="package.class"
}
{
/> /
> other elements </jsp:useBean>
}
例子
<jsp:useBean id="cart" scope="session" class="session.Carts" />
<jsp:setProperty name="cart" property="*" />
<jsp:useBean id="checking" scope="session" class="bank.Checking" >
<jsp:setProperty name="checking" property="balance" value="0.0" />
</jsp:useBean>

描述
<jsp:useBean>用于定位或示例一个JavaBeans组件。<jsp:useBean>首先会试图定位一个Bean实例,如果这个Bean不存在,那么<jsp:useBean>就会从一个class或模版中进行示例。

为了定位或示例一个Bean,<jsp:useBean>会进行以下步聚,顺序如下:

通过给定名字和范围试图定位一个Bean.
对这个Bean对象引用变量以你指定的名字命名.
如果发现了这个Bean,将会在这个变量中储存这个引用。如果你也指定了类型,那么这个Bean也设置为相应的类型.
如果没有发现这个Bean,将会从你指定的class中示例,并将此引用储存到一个新的变量中去。如果这个class的名字代表的是一个模版,那么这个Bean被java.beans.Beans.instantiate示例.
如果<jsp:useBean>已经示例(不是定位)了Bean,同时<jsp:useBean>和</jsp:useBean>中有元素,那么将会执行其中的代码.
<jsp:useBean>元素的主体通常包含有<jsp:setProperty>元素,用于设置Bean的属性值。正如上面第五步所说的,<jsp:useBean>的主体仅仅只有在<jsp:useBean>示例Bean时才会被执行,如果这个Bean已经存在,<jsp:useBean>能够定位它,那么主体中的内容将不会起作用

属性以及用法
id="beanInstanceName"
在你所定义的范围中确认Bean的变量,你能在后面的程序中使用此变量名来分辨不同的Bean

这个变量名对大小写敏感,必须符合你所使用的脚本语言的规定,在Java Programming Language中,这个规定在Java Language 规范已经写明。如果这个Bean已经在别的<jsp:useBean>中创建,那么这个id的值必须与原来的那个id值一致.

scope="page / request / session / application"
Bean存在的范围以及id变量名的有效范围。缺省值是page,以下是详细说明:

 

page - 你能在包含<jsp:useBean>元素的JSP文件以及此文件中的所有静态包含文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。
 

request - 你在任何执行相同请求的Jsp文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。你能够使用Request对象访问Bean,比如request.getAttribute(beanInstanceName)
 

session - 从创建Bean开始,你就能在任何使用相同session的Jsp文件中使用Bean.这个Bean存在于整个Session生存周期内,任何在分享此Session的Jsp文件都能使用同一Bean.注意在你创建Bean的Jsp文件中<% @ page %>指令中必须指定session=true
 

application - 从创建Bean开始,你就能在任何使用相同application的Jsp文件中使用Bean.这个Bean存在于整个application生存周期内,任何在分享此application的Jsp文件都能使用同一Bean.
class="package.class"
使用new关键字以及class构造器从一个class中示例一个bean.这个class不能是抽象的,必须有一个公用的,没有参数的构造器.这个package的名字区别大小写。

type="package.class"
如果这个Bean已经在指定的范围中存在,那么写这个Bean一个新的数据库类型 。如果你没有使用class或beanName指定type,Bean将不会被示例.package和class的名字,区分大小写.

beanName="{package.class / <%= expression %>}" type="package.class"
使用java.beans.Beans.instantiate方法来从一个class或连续模版中示例一个Bean,同时指定Bean的类型。

beanName可以是package和class也可以是表达式,它的值会传给Beans.instantiate.tupe的值可以和Bean相同。

package 和 class 名字区分大小写.

分享到:
评论

相关推荐

    JSP基本语法及由浅入深

    本篇将深入探讨JSP的基本语法以及如何逐步深化对JSP的理解。 ### 一、JSP的基本语法 1. **JSP页面结构**:一个JSP页面由两部分组成,即HTML或XML标记(负责页面布局和静态内容)和JSP指令或元素(负责动态内容和...

    JSP语法基础PPT

    JSP基础语法,掌握JSP基本语法 掌握JSP基本指令 &lt;jsp:include pate=“uri”/&gt; “uri”%&gt; &lt;jsp:forward page=“uri”/&gt; 掌握JSP九个内置对象

    jsp语法详解

    jsp语法详解 jsp语法是Java服务器页面(JavaServer Pages)的缩写,是一种基于Java技术的服务器端脚本语言。jsp语法用于在Web服务器上生成动态网页。jsp文件是一种特殊的html文件,它可以包含-java代码、html代码和...

    jsp 语法大全详细解说

    **JSP(JavaServer Pages)** 是一种动态网页技术,由Sun ...以上是JSP语法大全的详细解说,涵盖其基本概念、核心元素以及与Servlet、MVC模式的关联。通过深入学习和实践,开发者可以更高效地创建动态Web应用程序。

    jsp语法的讲解

    具体描述了jsp语法,并对其进行了讲解,让大家对JAVA语法进行了深入的了解

    JSP语法基础.pdf

    ### JSP语法基础详解 #### 一、JSP页面组成及元素分类 JSP (Java Server Pages) 是一种基于Java的服务器端动态网页技术标准,它允许开发人员创建功能丰富的Web应用程序。一个JSP页面主要由**元素**和**模板数据**...

    jsp核心语法.jsp入门

    【JSP核心语法详解】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML代码中嵌入Java代码,实现服务器端的动态处理。本篇文章将深入探讨JSP的核心语法,包括注释、声明、表达式...

    jsp语法简介(入门级)

    ### jsp语法简介(入门级) #### JSP基础概念与语法结构 JSP(Java Server Pages)是一种基于Java技术的动态网页开发技术,它允许在HTML文件中嵌入Java代码,使得网页具备处理数据和逻辑的能力。对于初学者而言,...

    常用JSP语法以及数据库连接

    在本文中,我们将深入探讨JSP(JavaServer Pages)的基础语法和如何利用JSP与数据库进行连接,特别是针对SQL数据库的交互。...通过学习和实践,你将能够熟练地运用JSP语法和JDBC来构建动态的数据库驱动的Web应用。

    关于jsp语法和练习

    以下是一些关于JSP语法和练习的关键知识点: 1. **读取Cookie**: JSP中,要获取HttpServletRequest对象中的所有Cookie,应使用`request.getCookies()`方法。这个方法返回一个Cookie数组,包含了请求中携带的所有...

    JSP语法简表JSP语法快速查询

    **JSP语法简表** JavaServer Pages(JSP)是一种基于Java的技术,用于创建动态网页。JSP提供了多种语法结构,使得开发人员可以方便地在HTML中嵌入Java代码。以下是一些关键的JSP语法点: 1. **HTML注释** - HTML...

    JSP基础语法知识(JSP语法(中华电脑书库_整理制作))

    JSP语法是开发者掌握JSP技术的基础,它使得Java程序员能够轻松地在网页中嵌入Java代码,实现动态内容的生成。 ### 1. JSP页面结构 一个基本的JSP页面由两部分组成:静态内容和动态脚本元素。静态内容包括HTML、CSS...

    JSP语法.chm

    JSP语法(1)——HTML注释 JSP语法(2)——隐藏注释 JSP语法(3)——声明 JSP语法(4)——表达式 JSP语法(5)——Scriptlet JSP语法(6)——Page指令 JSP语法(7)——Taglib指令

    jsp语法

    【JSP语法详解】 JSP(JavaServer Pages)是Java平台上的动态网页技术,它允许开发者将静态HTML、XML或者WML与动态Java代码结合在一起,以创建交互式的Web应用程序。JSP的主要目的是简化Web开发,使服务器端的编程...

    第3章 JSP语法基础

    第3章 JSP语法基础,

Global site tag (gtag.js) - Google Analytics