第5章JSP的页面元素Word格式文档下载.docx

上传人:b****1 文档编号:430010 上传时间:2023-04-28 格式:DOCX 页数:26 大小:53.43KB
下载 相关 举报
第5章JSP的页面元素Word格式文档下载.docx_第1页
第1页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第2页
第2页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第3页
第3页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第4页
第4页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第5页
第5页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第6页
第6页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第7页
第7页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第8页
第8页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第9页
第9页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第10页
第10页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第11页
第11页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第12页
第12页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第13页
第13页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第14页
第14页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第15页
第15页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第16页
第16页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第17页
第17页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第18页
第18页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第19页
第19页 / 共26页
第5章JSP的页面元素Word格式文档下载.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第5章JSP的页面元素Word格式文档下载.docx

《第5章JSP的页面元素Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第5章JSP的页面元素Word格式文档下载.docx(26页珍藏版)》请在冰点文库上搜索。

第5章JSP的页面元素Word格式文档下载.docx

主要分为两种:

1.使用<

............%>

标记:

用来声明JSP页面中的变量和方法

2.使用标记<

%............%>

是一段

JSP页面的基本结构

⏹JSP页面文件是由传统的HTML页面文件中加入Java程序片和JSP标签构成的。

⏹5种元素组合而成:

1)普通的HTML标记符

2)JSP标签,如指令标签、动作标签

3)

JSP的脚本部分

变量和方法的声明

4)Java程序片

5)Java表达式

●把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。

●JSP标签、数据和方法声明、Java程序片由服务器负责执行,将需要显示的结果发送给客户的浏览器。

●Java表达式由服务器负责计算,并将结果转化为字符串,然后交给客户的浏览器负责显示。

变量和方法、类的声明

在“<

”标记符号之间声明变量和方法。

声明方法

”之间声明方法,该方法在整个JSP页面内有效,但是在该方法内定义的变量只在该方法中有效。

这些方法将在JAVA程序片中被调用,当方法被调用时,方法内定义的变量被分配内存,调用完毕即可释放所占的内存。

声明类

可以在“<

”之间声明一个类,该类在JSP页面内有效,即在JSP页面的JAVA程序片部分,可以使用该类创建对象。

Java程序片

•在“<

”之间的java程序称为Java程序片

•可以有多个程序片在一个JSP页面中

•程序片中的变量是局部变量

•可以把程序片分隔成多个程序片

表达式

⏹可以在“<

%=”和“%>

”之间插入一个表达式

⏹<

%=是一个完整的符号

⏹表达式的值由服务器负责计算

⏹表达式的结果用字符串形式发送到客户端显示

JSP中的注释

⏹HTML注释:

在标记符号“<

--”和“-->

”之间加入注释内容。

⏹JSP注释:

%--”和“--%>

%--注释--%>

JSP引擎忽略JSP注释

隐藏注释

写在JSP程序中,但不是发给客户。

  <

%--comment--%>

例子:

%@pagelanguage="

java"

%>

html>

head>

title>

ACommentTest<

/title>

/head>

body>

h2>

ATestofComments<

/h2>

%--Thiscommentwillnotbevisibleinthepagesource--%>

/body>

<

/html>

用隐藏注释标记的字符会在JSP编译时被忽略掉。

这个注释在你希望隐藏或注释你的JSP程序时是很有用的。

注:

JSP编译器不是会对<

%--and--%>

之间的语句进行编译的,它不会显示在客户的浏览器中,也不会在源代码中看到在<

%----%>

之间,你可以任意写注释语句,但是不能使用"

--%>

"

如果你非要使用请用"

--%\>

JSP语法

(二):

JSP代码(脚本元素)

用来在JSP中包含脚本代码(通常是JAVA代码)的。

它声明变量和方法,包含任意脚本代码和对表达式求值。

主要包含三种类型:

●声明

●JAVA程序块

●表达式

声明

在JSP程序中声明合法的变量和方法

declaration;

[declaration;

]+...%>

inti=0;

inta,b,c;

Circlea=newCircle(2.0);

例子

声明你将要在JSP程序中用到的变量和方法。

你也必须这样做,不然会出错。

当JSP页面被编译执行的时候,整修页面被编译成一个类,这些变量是JSP页面类的成员变量。

同时这些变量也是被共享的,任何一个用户的操作都会影响到其他用户。

%@pagecontentType="

text/html;

charset=GBK"

inti=0;

%

i++;

out.print(i);

%>

个人访问本站

例:

 

执行程序,并刷新浏览器,可以看到值是增加的。

也可以声明函数,一地在函数前面加上synchronized关键字,功能是当前一个用户在执行该方法的时候,其他的用户必须等待,直到该用户完成操作。

使用方法如程序:

intnumber=0;

synchronizedvoidcountPeople(){

number++;

}

countPeople();

您是第<

%out.print(number);

个访问本站的客户。

你可以一次性声明多个变量和方法,只要以"

;

结尾就行,当然这些声明在Java中要是合法的。

当你声明方法或变量时,请注意以下的一些规则:

●声明必须以"

结尾

●你可以直接使用在<

%@page%>

中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。

●一个声明仅在一个页面中有效。

如果你想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<

%@include%>

或<

jsp:

include>

元素包含进来。

●在JSP中,声明是一段JAVA代码,它用来定义在产生的类文件中的类范围变量和方法。

当JSP页面进行初始化并且有了“类”的范围时,进行声明的初始化。

对于其他的声明和表达式或者是代码来讲,在声明中定义的任何东西在整个JSP中都可以使用。

声明段在<

和%>

之间。

代码块

包含一个有效的程序段.

JSP语法

%codefragment%>

%Stringname=null;

if(request.getParameter("

name"

)==null){%>

%@includefile="

error.html"

%}else{

foo.setName(request.getParameter("

));

if(foo.getName().equalsIgnoreCase("

integra"

))

name="

acura"

if(name.equalsIgnoreCase("

)){%>

”之间插入Java程序片,一个JSP页面可以有许多JAVA程序片,这些代码块将被JSP服务器按照顺序执行。

在一个代码块中声明的变量是JSP页面的局部变量,只在当前页面中有效,如程序所示

%inti=0;

该程序去掉了上面程序中的“!

”,这样变量i就变成局部变量了。

该变量是局部变量,所以不能用来计数,该变量始终为1。

可包含多个jsp语句,方法,变量,表达式。

能做以下的事:

●声明将要用到的变量或方法(参考声明).

●编写JSP表达式(参考表达式).

●使用任何隐含的对象和任何用<

useBean>

声明过的对象

●编写JSP语句(如果你在使用Java语言,这些语句必须遵从JavaLanguageSpecification,).

●任何文本,HTML标记,JSP元素必须在scriptlet之外

●当JSP收到客户的请求时,scriptlet就会被执行,如果scriptlet有显示的内容,这些显示的内容就被存在out对象中。

Scriptlet是一段可以在处理请求时间执行的JAVA代码。

Scriptlet包含在<

%和%>

Scriptlet具体要做什么要看代码是如何写的。

它可以产生输出,发到客户的输出流中。

在被编译的类中,多个这样的代码将按在JSP程序出现的顺序合并成一个。

像其他的JAVA代码或方法一样,可以修改在它内部的对象,作为方法引用的结果

在查看网页源代码的时候,这一部分是看不见的,只有执行的结果。

因为这里的代码是被服务器执行的。

JavaScript代码是可以看到的,因为JavaScript是被浏览器解释执行的。

表达式

包含一个符合JSP语法的表达式

fontcolor="

blue"

>

%=map.size()%>

/font>

b>

%=numguess.getHint()%>

/b>

表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。

因为这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式.

当你在JSP中使用表达式时请记住以下几点:

●你不能用一个分号("

)来作为表达式的结束符.但是同样的表达式用在scriptlet中就需要以分号来结尾了!

查看Scriptlet这个表达式元素能够包括任何在JavaLanguageSpecification中有效的表达式.

●有时候表达式也能做为其它JSP元素的属性值.一个表达式能够变得很复杂,它可能由一个或多个表达式组成,这些表达式的顺序是从左到右。

表达式是用于在返回给客户的响应流中产生输出值的一个Scriptlet的简单表示法。

当表达式进行计算时,结果转换成了一个字符串并且显示出来。

一个表达式被封装<

%=和%>

在之间。

如果表达式的任何部分是一个对象。

就通过使用这个对象的toString()方法进行转换

JSP语法(三):

JSP指令

JSP指令(directive)是用作从JSP发送到JSP包容器上的一个信息。

它们用来设置全局变量,如声明类、要实现的方法和输出内容的类型等等。

它们并不向客户产生任何输出。

所有的指令都在整个JSP文件的范围内有效。

换句话说,一个指令影响整个JSP文件,并且仅仅只是这个JSP文件。

在标签中指令都是用@字符在标签内标出的,一般的语法是:

%@指令名attribute=”value”attribute=”value”%>

三类指令是:

●页面(Page)指令

●Include指令

●Taglib指令

JSP指令标签

⏹Page指令:

用来定义整个JSP页面的一些属性和这些属性的值。

⏹Page指令格式:

%@page属性1=“属性1的值”属性2=“属性2的值”…%>

注意:

1)page指令的作用对整个页面有效,与位置无关,习惯写在最前面。

2)一个属性可以指定几个属性值,属性值之间用逗号分隔。

3)可以使用多个page指令给属性import指定几个值,但其他属性只能使用一次page指令给属性值指定的一个值。

Page指令几个常用的属性

●language属性:

定于JSP页面使用的脚本语言,该属性的值目前只能取JAVA

格式:

%@pagelanguage=“java”%>

●import属性:

为JSP页面引入JAVA核心包中的类,就可以在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。

%@pageimport=“java包中的类”%>

●contentType属性:

定义JSP页面响应MIME类型和JSP页面字符的编码。

属性值一般形式时“MIME”或“MIME类型;

charset=编码”,

常用的格式:

%@pagecontentType=“text/html;

charset=GB2312”%>

●session属性:

用于设置是否需要使用内置的session对象,session属性的值可以时true或false,session属性默认的值是true。

●buffer属性:

内置输出对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。

%@pagebuffer=“kb”%>

默认值是8kb

●autoFlush属性:

指定out的缓冲区被填满是,缓冲区是否自动刷新。

可以取true或false,默认是true。

%@pageautoFlush=“true[false]”%>

当buffer的值是none时,autoFlush的值就不能设置成false。

●isThreadSafe属性:

用来设置JSP页面是否可多线程访问。

该属性值可以取true或false。

默认是

%@pageisThreadSafe=“true[false]”%>

●Info属性:

该属性为JSP页面准备一个字符串,属性值是某个字符串。

%@pageinfo=“字符串”%>

使用getServletInfo()方法来获取info属性的属性值。

Page指令

定义JSP文件中的全局属性。

页面指令定义了许多影响整个页面的重要属性。

单一的JSP页面可以包含多个页面指令,在过程中,所有的页面指令被制取出来并同时应用到同一个页面上。

然而在给定的JSP中,任何由页面指令定义的属性/值只能出现一次。

(除了import属性外,因为可以多次引入。

JSP语法:

page指令主要有如下属性:

[language="

ScriptLanguage"

]

[extends="

package.class"

]

[import="

{package.class|package.*},..."

[session="

true|false"

[buffer="

none|8kb|sizekb"

[autoFlush="

[isThreadSafe="

[info="

text"

[errorPage="

relativeURL"

[contentType="

mimeType[;

charset=characterSet]"

|"

text/html;

charset=ISO-8859-1"

[isErrorPage="

%@pageimport="

java.util.*,java.lang.*"

%@pagebuffer="

5kb"

autoFlush="

false"

%@pageerrorPage="

error.jsp"

描述

%@page%>

指令作用于整个JSP页面,同样包括静态的包含文件。

但是<

指令不能作用于动态的包含文件,比如<

include>

你可以在一个页面中用上多个<

指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性。

因为import属性和Java中的import语句差不多(参照JavaLanguage),所以你就能多用此属性几次了.

无论你把<

指令放在JSP的文件的哪个地方,它的作用范围都是整个JSP页面。

不过,为了JSP程序的可读性,以及好的编程习惯,最好还是把它放在JSP文件的顶部。

Include指令标签

Include指令:

在JSP页面内某处整体嵌入一个文件,使用该指令标签。

格式:

%@includefile=“文件的名字”%>

在JSP页面出现该指令的位置处,静态插入一个文件,被插入的文件必须是可访问和可使用的。

即该文件必须和当前JSP页面在同一个Web服务目录中。

静态插入:

就是当前JSP页面和插入的部分合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java类文件。

新合成的JSP页面必须符合JSP语法规则。

Taglib指令

定义一个标签库以及其自定义标签的前缀。

%@tagliburi="

URIToTagLibrary"

prefix="

tagPrefix"

public"

public:

loop>

……….

/public:

%@taglib%>

指令声明此JSP文件使用了自定义的标签,同时引用标签库,也指定了他们的标签的前缀。

这里自定义的标签含有标签和元素之分。

因为JSP文件能够转化为XML,所以了解标签和元素之间的联系很重要。

标签只不过是一个在意义上被抬高了点的标记,是JSP元素的一部分。

JSP元素是JSP语法的一部分,和XML一样有开始标记和结束标记。

元素也可以包含其它的文本,标记,元素。

比如,一个jsp:

plugin元素有<

plugin>

开始标记和    <

/jsp:

结束标记,同样也可以有<

params>

和<

fallback>

元素。

你必须在使用自定义标签之前使用<

指令,而且你可以在一个页面中多次使用,但是前缀只能使用一次

属性

1.uri="

 UniformResourceIdentifier(URI)根据标签的前缀对自定义的标签进行唯一的命名,URI可以是以下的内容:

●UniformResourceLocator(URL),由RFC2396定义,查看http:

//www.hut.fi/u/jkorpela/rfc/2396/full.html

●UniformResourceName(URN),由RFC2396定义一个相对或绝对的路径

2.prefix="

在自定义标签之前的前缀,比如,在<

中的public,如果这里不写public,那么这就是不合法的。

请不要用jsp,jspx,java,javax,servlet,sun,和sunw做为你的前缀。

forward>

重定向一个HTML文件,JSP文件,或者是一个程序段。

forwardpage={"

}/>

or

}>

paramname="

parameterName"

value="

{parameterValue|<

}"

/>

+

forwardpage="

/servlet/login"

username"

value="

jsmith"

标签从一个JSP文件向另一个文件传递一个包含用户请求的request对象.<

标签以下的代码,将不能执行.

你能够向目标文件传送参数和值,在这个例子中我们传递的参数名为username,值为scott,如果你使用了<

param>

标签的话,目标文件必须是一个动态的文件,能够处理参数.

如果你使用了非缓冲输出的话,那么使用<

时就要小心。

如果在你使用<

之前,jsp文件已经有了数据,那么文件执行就会出错.

page="

{relativeURL|<

这里是一个表达式或是一个字符串用于说明你将要定向的文件或URL.这个文件可以是JSP,程序段,或者其它能够处理request对象的文件(如asp,cgi,php).

向一个动态文件发送一个或多个参数,这个文件一定是动态文件。

如果你想传递多个参数,你可以在一个JSP文件中使用多个<

name指定参数名,value指定参数值。

getProperty>

获取Bean的属性值,用于显示在页面中

getPropertyname="

beanInstanceName"

property="

propertyName"

useBeanid="

calendar"

scope="

page"

class="

employee.Calendar"

Calendarof<

get

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2