JSP语法简明入门教程大全_第1页
JSP语法简明入门教程大全_第2页
JSP语法简明入门教程大全_第3页
JSP语法简明入门教程大全_第4页
JSP语法简明入门教程大全_第5页
已阅读5页,还剩133页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 HYPERLINK /bbs/index.php 5天1 HYPERLINK /bbs/thread.php?fid=12&page=3 cI HYPERLINK /bbs/read.php?tid=3678 hTo下ng载d HYPERLINK /bbs/post.php?fid=12 i站 HYPERLINK /bbs/profile.php an HYPERLINK /bbs/post.php?action=vote&fid=12 】.n HYPERLINK /zt.htm 整etww誉.5天1cIhTo下ng载di站an】.n HYPERLINK /bbs/index.php HYP

2、ERLINK /index.htm 首页 | HYPERLINK /siuke.htm 秀客 | HYPERLINK /bbs/index.php 秀客论坛 | HYPERLINK /zt.htm 转帖工具 | 秀客收藏夹 windecember: HYPERLINK /bbs/login.php?action=quit 退出 | HYPERLINK /bbs/profile.php 控制面板 | HYPERLINK /bbs/message.php 短消息 | HYPERLINK /bbs/search.php 搜索 | HYPERLINK /bbs/member.php 会员 | HYPE

3、RLINK /bbs/sort.php 统计与排行 | HYPERLINK /bbs/hack.php?H_name=bank 银行 | HYPERLINK /bbs/faq.php 帮助 | HYPERLINK /bbs/index.php 社区 HYPERLINK /bbs/index.php 秀客论坛 - HYPERLINK /bbs/thread.php?fid=12&page=3 网络编程 - JSP入门教程标题: JSP入门教程 HYPERLINK /bbs/job.php?rd_previous=1&fid=12&tid=3678&fpage=3&goto=previous 上一

4、主题 | HYPERLINK /bbs/job.php?rd_previous=1&fid=12&tid=3678&fpage=3&goto=next 下一主题siuke管理员精华 60 发帖 3459 秀值 2511 秀币 1587 状态 离线 贡献值 4 点在线时间(小时) 519 注册时间 2005-07-17 最后登陆 2005-11-19JSP入门教程JavaServer Pages (JSP)是基于Java的技术,用于创建可支持跨平台及跨Web服务器的动态网 页。JSP可与微软的Active Server Pages (ASP)相媲美,但JSP使用的是类似于HTML的标记和Java

5、 代码 片段而不是用VBScript。当你使用不提供ASP本地支持的Web服务器(例如 Apache或Netscape服 务器)时,你就可以考虑使用JSP了。你虽然也可以为这些服务器弄一个ASP附加软件模块,但是 太昂贵了。现在Sun公司并不会因你使用JSP向你收费(虽然将来可能要收),况且用于Solaris、 Linux以及Windows系统的组件都很容易获得。不要把JSP与服务器端的JavaScript语言搞混了。Web服务器自动将通过JSP生成的Java代码片段转 换成Java 片段(servlets)。 JSP也可自动控制许多功能,如过去用Perl脚本编写功能程序或像 ASP这样的服务

6、器专用API(应用编程接口)。我们马上就要开始帮助你建立一个使用JSP 技术的网站范例了。准备好计算机以使用JSP你需要Java2软件开发工具箱(J2SDK),过去称之为Java开发工具箱(JDK)、JavaServer 网络 开发工具箱(JSWDK)、Tomcat,或者其它能支持JSP的Web服务器。升阳公司为Windows、 Solaris以及 Linux平台提供免费的J2SDK和JSWDK。如果你想在现有的Web服务器上使用JSP,而此服务器本身不支持JSP和Java 代码片段,可以试用 Allaire公司的Jrun。它可以为Netscape的Enterprise Server和Fast

7、track Server、微软的Internet Information Server(IIS)和Personal Web Server(PWS)、Apache以及其他服务器充当Web服 务器附件。你也可以使用Apache服务器的Java版,其中包含最新的JSWDK。下载并安装所需的软件 HYPERLINK http:/www.51ch www.51ch目前,版本号为1.2.2-001的J2SDK可下载版以可安装的归档文件形式出现。这个大约20MB的下载量软件可提供一个彻底的Java开发环境,让你创造任何基于Java并且利用了而标准核心API的解决 方案。其实,你的Web服务器使用JSP的唯一

8、条件是要有Java编辑器。要让Web服务器知道编辑器 的位置,需要JAVA_HOME 环境变量设置为J2SDK安装目录。如果你已经在Windows系统中进行 了安装并且接受了默认目录, 请将“set JAVA_HOME=C:1.2.2”添加到你的“autoexec.bat”文件 中,然后重新启动。安装J2SDK后,下载并安装JSWDK或者是Tomcat 版,即基于Java的Apache Web服务器的 版。你把JSWDK放在什么地方是无关紧要的,只要你以后能找到它就行。通常,将其放在顶层目 o录ng中d,i这an样.你n在et替换wwJSwW.D5K1或cJShDoKn时g无di需a删n除.另

9、ne一t个w软w件w。.5安1装c好ho这n个g文d件ia后n,.准ne备t工作已经就5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n绪,你可以开始JSP开发工作了。 HYPERLINK 正确地安装JSWDK后,请运行“startserver”脚本程序,以启动Web服务器,使其按照默认情况监听8080端口。你要在启动服务器之后查看您是否已正确地安装了此工具,请加载一个JSP样本文 件(./locahost:8080/examples/jsp/)。如果你能成功地运行这些样本文件,说明你已经正确地安装了这个软件。如果你在用来启动服务器的控制台窗口中看到

10、报错信息,你就需要做些修改。最经常发生的问题是没有设置或不正确地设置了JAVA_HOME环境变量。要看到当前环境变量设置 情况,要请在DOS提示符下键入“set”设置。开始在解释 JSP语法前,创建一个快捷网页,显示目当前的日期和时间,并然后将之其保存为sample. jsp:First PageToday is:.把这个文件以及你所有的HTML 和 JSP 页面放在JSWDK安装目录下的网页目录里。你可以从./ localhost:8080/sample.jsp加载此网页。该网页首次被访问时,Web服务器会把JSP编译成Java代 码片段,这样你就能够看到当前的日期和时间了。你已经下载、安装

11、并配置好了开发环境,你可以开始学习JSP语法并创建自己的基于JSP的解决方 案了。JSP基本语法 讲完安装问题后,现在进入来讨论JSP语法。一个投机取巧的办法是下载语法卡片。如果你不熟悉 Java编程,也许你想看一下Sun的指南 。然而网页创建者并不需要进行太多的Java开发。除了一 些方法调用,在你的JSP网页里应尽可能少用Java代码。记住以上提示,我们首先来看一看JSP指令和脚本元素,之后我们会解释JavaBeans和隐含对象。 共有五种JSP指令和脚本元素。在JSP 1.0版中,大部分JSP被一个以“”结尾的 的标记括在其中。在更新的JSP 1.1规范出台后,就有了与XML兼容的版本。

12、JSP指令和脚本元素Directives Declarations Expressions Code Fragment/Scriptlet Comments 指令 JSP指令是为JSP引擎而设计的。他们并不直接产生任何可见输出,而只是告诉引擎如何处理其余 JSP页面。这些指令始终被括在 “”标记中。两个最重要的指令 是“pagePage”和“Include”。“Taglib”指令不在讨论之列,但是在用JSP1.1创建自定义标记可以使 用它。几乎在所有JSP页面顶部都会看到“Page”指令。尽管不是必须的,但它可以让你指定: 到何处查找起支持作用的Java类别: HYPERLINK mailto

13、:n%gdipaange.nimeptortw i, HYPERLINK HYPERLINK http:/www.51cho出ng现dJiavaan运.行n问et题时 www.51cho出ng现dJiavaan运.行n问et题时,将网上冲浪者引向何处:,5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n还有你是否需要管理用户的会话级信息,这些信息可能来自多个网页(在下面的JavaBeans一节 将对此做进一步讲)述:.“Include”指令可以把你的内容分成更多可管理的元素,比如包括一个普通页面页眉或页脚的元 素。包含的网页可以是一个固定的HTML

14、页面或更多的JSP内容:声明 JSP声明用来让你定义页面级变量,以保存信息或定义JSP页面的其余部分可能需要的支持方法。 如果你发现代码太多,通常最好把它们写成一个独立的Java类别。声明一般都在“”标记 中。一定要以分号(;)结束变量声明,因为任何内容都必须是有效的Java语句:。表达式 有了JSP表达式,表达式评估结果会被转换成一个字符串,并且被直接包括在输出页面之内。JSP 表达式包含在“” 标记中,没有分号,除非在加引号的字符串部分使用分号。 .代码片段/脚本片段代码片段/脚本片段(Scriptlets) JSP代码片段或脚本片段是嵌在“”标记中的。这种Java代码在Web服务器响应请

15、求时就会运行。在脚本片段周围可能是原始的HTML或XML语句,在这些 地方,代码片段可以使你创建条件执行代码,或要用到另外一段代码的代码。例如,以下的代码组合使用表达式和代码片段,显示H1、H2、H3和H4标记中的字符串“Hello”。代码片段并不局限 于一行源代码:% for (int i=1; iHHello/H.注释 最后一个主要的JSP元素是嵌入式注释。尽管你始终可以在文件中加入HTML注释,但用户在查看 页面源代码时会看到这些注释。如果你不想让用户看到它,你就应该将其嵌入“” 标 记中:.带JavaBean 的JSP 虽然你可以把大段的代码放在脚本片段(scriptlet)内,但是绝

16、大多数的Java代码属于可重复使用 的名为JavaBea的组件。JavaBean类似于ActiveX控件:他们都能提供常用功能并且可以重复使 用。JavaBean的值是通过一些属性获得的,你可通过这些属性访问JavaBean设置。以一个人来打比 方,这个人就是一个JavaBean,这个人的名字、身份证号码以及住址就是其属性。在JSP网站, 你基本上就是通过玩“Connect the beans)”来使你的网站动态化。假设JavaBean先于网站被创建出来,你需要做的第一件事就是告诉JSP页面它将要用到一 HYPERLINK http:/www.51cho个ng www.51cho个ng“Bde

17、iana”n。.你n可et以用ww“g”d标i记a来n做.n到e这t一w点w:5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n。 HYPERLINK “”标记要求你用“id”属性来识鉴别Bean。这里你提供一个名字来JSP页面其余部分的Bean。除了“id”属性,你还须告诉网页面从何处查找Bean,或者它的Java类别名是什么。这种 类别属性提供确 认Bean的功能,其他一些方法也可以做到这一点。最后一个必需的元素 是“scope”属性。有了“scope”属性的帮助,你就能告诉Bean为单一页面(默认情况) scope=page、为scope=re

18、quest请求为会话scope=session,或者为整个应用程序 scope=application保持留信息。有了会话范围,你就能非常容易地在JSP网页面上维护购物车 等项目。一旦你声名了一个JavaBean,你就可以访问它的属性来定制它。要获得属性值,请用“”标记。有了这个标记,你就能指定将要用到的Bean名称(从useBean的id字段得 到)以及你想得到其值的属性。实际的值被放在输出中:。要改变JavaBean属性,你必须使用“”标记。对这个标记,你需要再次识别Bean 和属性,以修改并额外提供新值。如果命名正确,这些值可以从一个已提交的表中直接获得:参 数获得:;可以从一个参数获得

19、,但你必须直接命名属性和参数:或者直接用一个名字称和值来设置: jsp:setProperty id=localName property=serialNumber value= /.关于JavaBean 的最后一件事: 为了Web服务器能找到JavaBean,你需要将其类别文件放在一个 特殊位置。用JSWDK,最 方便的位置是安装目录下的类别目录,如jswdk-1.0.1classes。JSP隐含对象 与JSP语法相关的最后的元素是一些叫做“隐含对象”的东西。在JSP代码片段中,你可以利用这些 隐含对象与JSP页面的代码片段执行环境产生互动。应尽量少访问这些内置隐含对象。但是,在一 某些情况

20、下,访问隐含对象是可被接受的。若要充分利用隐含对象,就需了解最新的JavaServlet API。 下表列出可用的隐含对象集合。隐含对象说明request 客户端请求,包括从GET/POST请求传递过来的参数response 网页传回客户端的反应 pageContext 在此管理网页属性 session 与请求关联的会话 application 代码片段的运行环境 out 传送响应的输出流config 代码片段配置对象page JSP网页本身exception 有错的网页中未被捕获的例外这些都是用来做什么的,你又如何来使用它们呢?基本上说,在你的脚本片段里,你可以用它们 进入执行JSP代码的代

21、码片段。用不着深入了解太多的Servlet API细节,我们来看看能用它们来做 到的某些事情:你可以不用表达式,直接进入“Out”隐含对象,将某些内容输出到响应中:。 用不着把一个参数直接送到JavaBean,你可以从请求对象获取参数值: HYPERLINK http:/www.51cho www.51choi. 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n HYPERLINK http:/www.51ch www.51cho在ng你d用iJaSnP进.n行e开t发的过程中,进行更多的开发的过【程中誉,如天果I创T建下了载Jav站aBe】ans

22、整或发理现JSP文件 中加入了太多的Java源代码,你就需要创建起支持作用的Java分类(class)了,它可以协助你重 复利用源代码并减少JSP网页编译时间。当你需要创建Java分类文件时,你必须:将JDSWK installation in目录添加到PATH中。在autoexec.bat文件PATH行的末尾,加入“C:1.2.2/bin”。用这个命令将JAR文件复制到“jrelibext:”目录中: copy c:jswdk-1.0.1libservlet.jar c:jdk1.2.2jrelibext.创建一个JSP网站 现在该是把所有这些JSP语法派上用场的时候了。我们将创建一个网页,

23、它有一个输入表单,可以 使用户输入一个股票代号以获得出当前股价(有20分钟)。如果输入有误,则显示报错网页。quote.jsp首先,用 这个代码 创建一个quote.jsp网页并将其保存在JSWDK安装目录下的网页目录中。大多数的网页是标准的HTML,其间散布着JSP代码。第六行是一个网页指示,表示将把所有错误发送 到“errorPage.jsp”文中。第13到15行是一个脚本片段,主要说明只有提供“符号”参数才会显示表 格。“If”代码段在32到34行结束。第17行定义了要用的JavaBean,第18行从参数加载JavaBean的 符号属性。第27行到29行显示Bean的属性。除了if 代码

24、段,实际上并不涉及其它Java代码。errorPage.jsp 下一步,将下列JSP源代码保存到网页目录中的“errorPage.jsp”文件中。“这是一个错误网页”的提 示为第一行,它将isErrorPage网页提示属性设置为真。上一页说了明错误网页的位置,本页则说 明这就是错误网页。其它JSP文件中的JSP专用代码只有访问隐含例外对象才用到。网页只显示其 值:Error PageOur Error PageWe got ourselves an exception:Restart。Quotes.javaQuotes JavaBean 利用Yahoo资源来获得股票价格。需要将此 资源保存到J

25、SWDK安装目录下“classescomjguru”目录中的“quotes.java”文件中。请在此用JSDK中的Javac编辑器来编辑它。你的第一个JSP网页。 创建了这两个JSP文件,建立了JavaBean资源文件并编辑了它后,你就可以从./localhost:8080/ quote.jsp加载“quote.jsp”文件以查看结果,假设你没有更改JSWDK安装设置,转而使用别的端 口。这个网页当然能做得更漂亮,但是它已实现了需要实现的功能,并且很好地展示了JSP的功 能。秀客设计: 专业网页设计、平面设计论坛。网页设计&平面设计初学者最受欢迎的论坛! HYPERLINK HYPERLINK

26、 HYPERLINK 5天1cI HYPERLINK /msgrd?V=1&Uin=173436316&Site=%E7%A7%80%E5%AE%A2%E8%AE%BA%E5%9D%9B&Menu=yes hTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n2005-11-11w1w3w:3.251c楼h主【誉天IT下载站】整理siuke管理员精华 60 发帖 3459 秀值 2511 秀币 1587 状态 离线 贡献值 4 点在线时间(小时) 519 注册时间 2005-07-17 最后登陆 2005-11-19 HYPERLINK http:/www.51c

27、h www.51chJSP入门教程(二)欢迎使用JavaServer Pages(以下简称JSP)技术制作动态内容网页的方法。 如果你希望学习这篇教程的话,我想你一定是这项技术的新手。你可能想成为一名利用JSP技术开发网络应用程序的程序员或者网页设计师。本教程中包含了一系列JSP的技巧和一些简单的代码的 写法,每一步都举了一组例子来讲述原理。我建议你在学习本教程之前先去看一看FAQ,了解如果配置你的服务器好让他能支持并运行JSP。 那样你就可以跳过前边的内容直接看你感兴趣的内容了。OK,费话少说,Lets go! 第一课:真正的开始 页面明:在很多JSP文件中你都要写上这样的说明。在hello

28、word.jsp中:傻瓜也看得出来,这句话没什么大用,只是简要的说明一下这段代码的作用。 你可以在JSP文件中的任何地方写这种代码,但是好的习惯是把他写在最前面,还有,因为他是JSP标签,记住一定要放在前面,呵include说明:include用来在主JSP文件中调用本地的一个其他文件,通常是一些版权信息啦,脚本语言啦等其 他任何你想在其他文件中重复使用的代码。在这个例子中就是调用了一个图片其实。大家明白这 个意思就得了。随便说两句: 在JSP中对写法非常敏感,不可以有一点错误。举个例子,把写成那样服务器会出现错误信息。一些如类名,包名,路径o5天1cI HYPERLINK /msgrd?V=

29、1&Uin=173436316&Site=%E7%A7%80%E5%AE%A2%E8%AE%BA%E5%9D%9B&Menu=yes hTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n2005-11-11w1w3w:3.551#ch1 o HYPERLINK /bbs/profile.php?action=show&uid=1 【誉天IT下载站】整理siuke管理员精华 60 发帖 3459 秀值 2511 秀币 1587 状态 离线 贡献值 4 点在线时间(小时) 519 注册时间 2005-07-17 最后登陆 2005-11-19 HYPERLINK h

30、ttp:/www.51ch www.51chJSP入门教程(三)第二课:用HTML表单 大多数情况下,商业的网站都要有一些表单,比如说输入一下消费者的姓名啦,地址啦,或者敲一个词来用搜索引擎来查一下啦,或者市场人员从来访者处收集一些数据供参考什么的。那些表单传回的数据怎么处理的? 来访者通过表单向JSP引擎输入了数据,并保存在了request对象中,那么接下来怎么办? 图2-1向你展示了数据流是如何在服务器和客户之间传递的(至少在SUN的JSP referenceimplementation是这么做的,别的JSP引擎工作起来可能会有一点点的不同,其实大同小异,都差不多)字儿太小了,可能看不大清

31、吧?俺来解释一下了只好。 首先,JSP引擎把存放在request对象中的数据发到JSP页面指定的服务器端的组件(JavaBeans组件, servlet,或者enterprise bean),组件收到这些个数据以后,有可能再存这些数据到数据库或 者其他的地方存放起来,同时,返回一个response对象给JSP引擎。JSP引擎再把response对象传 给JSP页面,这时的页面包含了定义好的格式和从服务器端得到的数据。这时JSP引擎和Web服务器再发送一个整理好的完整的页面给客户,也就是这们在浏览器上看到的结果。客户和服务器间的通信协议可以用HTTP,当然也可以用其他的。Request和Resp

32、onse对象在你制作的JSP原代码中起作用。到于request对象到底怎么用,我要在 接下来详细的讲给你听。如何创建表单 用HTML定义一些有代表性的表单做成一个JSP文件,然后用JSP标签在表单和服务器端对象(通常都用Bean)传递数据。一般情况下是这么干的:1、 写JSP原文件,创建一些HTML的表单并命名。2、 在Java文件里写Bean,定义属性,GET或者SET方法来配合已经被你指定好名字的表单。3、 回到JSP原文件中,增加标签来创建一个或者调用一个现成的Bean。4、 增加标签设置HTML表单中需要SET方法的Bean的属性。5、 增加标签设置HTML表单中需要GET方法的Bea

33、n的属性。6、 如果需要处理更多的用户数据,用request对象。 说了半天你可能看不懂,其实看一个例子你就懂了。 先看一个简单的hello的例子吧:这段程序其实还是计算机程序里那个最经典的“hello,world”的程序,只不过呢,我使他挠了一点 弯儿,使他看起来比较智能和复杂。首先你输入你的名字,然后Duke跟你说:“hello!” HYPERLINK HYPERLINK o5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n HYPERLINK 看看代码吧:dukebanner.html 主JSP文件:hellouser.jspHello, Us

34、er My name is Duke. Whats yours?td width=150 HYPERLINK HYPERLINK 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n HYPERLINK http:/www.51cho www.51cho回应文件:response.jsp Hello, ! 处理数据的Bean:(namehandler.java) package hello;public class NameHandlerprivate String username; public NameHandler() username = n

35、ull;public void setUsername( String name ) username = name; HYPERLINK HYPERLINK HYPERLINK 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.npublic String getUsername() HYPERLINK return username;建立HTML表单 一个HTML的窗分为三个部分:标签,输入方法,提交按钮发数据到服务器。一般的HTML页面里,是这么写的,在其他的页面里的action属性可能是其他特殊的CGI程序或者其他能处理数据的程序,那么在JSP

36、里边是怎么用的呢,呵,如果 你想把数据发到Bean里的话那么你可以省略action里边的东里了,直接写标签或 者其他特定的JSP文件了。接下来的那些表单和普通的HTML差不多了,的方法,然后加 一个提交按钮,可能还有一个Reset按钮,对了,别忘了,还得给每一个input表单加一个名字。 这么写:使用GET和POST方法 用GET和POST方法可以发数据到服务器,在JSP程序中GET和POST方法可以发数据到Bean、servlet、或者其他服务器端的组件。理论上说,GET是从服务器上请求数据,POST是发送数据到服务器。事实上,GET方法是把数据 参数队列(query string)加到一个

37、URL上,值和表单是一一对应的。比如说,name=John。在队 列里,值和表单用一个&符号分开,空格用+号替换,特殊的符号转换成十六进制的代码。因为这 一队列在URL里边,这样队列的参数就能看得到,可以被记录下来,或更改。通常GET方法还限 制字符的大小。事实上POST方法可以没有时间限制的传递数据到服务器,用户在浏览器端是看不 到这一过程的,所以POST方法比较适合用于发送一个保密的(比如信用卡号)或者比较大量的数 据到服务器。写Bean如果JSP程序用到了Bean,你就得按照JavaBeans API的说明设计你的Bean。 记住下面两个关键部分。 如果JSP程序里用标签,那你就得在Be

38、an里边配合的GET方法。 如果JSP程序进而用 标签,那你就得在Bean里边配合的Set方法。 设置参数到Bean或者从里边取参数将在以后的部分详细介绍。传数据到Bean把HTML表单的数据传到Bean里需要两个工作: 用标签创建或者定位到Bean 在Bean里面用设置属性值 第一步用标签创建或者定位到Bean一定要用在之前,首先按照你指定的名字查找Bean,如果没找到,会给你指定一个。允许在一个JSP文件 中创建一个Bean,然后再另一个文件中调用,这就给了Bean一个很广泛的运行空间。第二步在Bean里面用设置属性值。最简单的方法是把值定义成与表单名相配 合。举个例子,如果你把表单名定义

39、成“username”那么,你就在Bean里定义属性“username”然后 用方法getUsername和setUsername。 HYPERLINK HYPERLINK HYPERLINK 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n当然也可以定义成不同的名字,只要你不认为麻烦。谁让你记忆力好呢! HYPERLINK Request对象用户输入的数据用来存放在Request对象里,用javax.servlet.HttpServletRequest来执行(你也可 以用其他不同的工具来执行,但他们其实都是javax.servlet.HttpSe

40、rvletRequest的子集)你也可以直接用scriptlet来直接访问Request对象。Scriptlet将在下一讲里边详细的讨论,现在你 只需要知道他是用脚本语言写的一段放在 之间的代码就足够了。在JSP 1.0中,你必须 用JavaTM程序语言作为你的脚本语言。你经常会用到如下方法处理Request对象:方法 说明 执行结果getRequestJavax.servlet.jsp.PageContext返回当前Request对象getParameterNames javax.servlet.ServletRequest返回当前Request对象参数名getParameterValues

41、 javax.servlet.ServletRequest返回当前Request对象参数值你将会发现其他方法包括ServletRequest,HttpServletRequest或者其他任何ServletRequest的子 集。JSP引擎经常在scenes之后使用Request对象,即使你没有明确地在JSP文件中调用。 从Bean中调数据到JSP页面一旦用户的数据被传到Bean,你就想重新得到数据,然后在JSP面页中显示出来。想达到这一步,你就得用到标签。传Bean名和属性名:Hello, !, , 和 标签必须相配,举个例子:hellouser.jsp:response.jsp:Hello,

42、 !在这个例子里,标签被放在两个文件中,但是指定的名字都是相同的,如果不同的话,那么系统 会返回一个错误信息。如何运行例子 我用的是主机,如果你用windows,那么改相应的路径即可。创建路径./jswdk-1.0/examples/jsp/tutorial/hellouser.把文件background.gif, duke.waving.gif, dukebanner.html, hellousr.jsp和response.jsp文件放进 去。创建一个目录,./jswdk-1.0/examples/WEB-INF/jsp/beans/hello HYPERLINK HYPERLINK HYP

43、ERLINK jasonh, ./ HYPERLINK http:/www.51choCnogpdyriigahnt www.51choCnogpdyriigahnt 1.9n9e9,tK&A SoftwareDistributed by Sun Microsystems with permission-5天1cIhTo下ng载di站an】.n整etww誉.5天 HYPERLINK mailto:jasonh 1cIhTo下ng载di站an】.nNumber Guess Congratulations! You got it.And after just tries.Care to try a

44、gain? Welcome to the Number Guess game.Im thinking of a number between 1 and 100.Whats your guess? Good guess, but nope. Try . You have made guesses.Im thinking of a number between 1 and 100.Whats your guess? 操作程序(NumberGuessBean.java)/ Number Guess Game/ Written by Jason Hunter, CTO, K&A Software/

45、jasonh, ./ Copyright 1999, K&A Software/ Distributed by Sun Microsystems with permissionpackage num;import java.util.*;public class NumberGuessBean int answer;boolean success; HYPERLINK http:/www.51choSntgrindgihainnt www.51choSntgrindgihainnt;.net HYPERLINK HYPERLINK int numGuesses; HYPERLINK http:

46、/www.51chopnugbdliciNaunm.bnereGtuessBean www.51chopnugbdliciNaunm.bnereGtuessBean() reset();public void setGuess(String guess) numGuesses+;int g;try g = Integer.parseInt(guess);catch (NumberFormatException e) g = -1;if (g = answer) success = true;else if (g = -1) hint = a number next time;else if (

47、g answer) hint = lower;public boolean getSuccess() return success;public String getHint() return + hint;public int getNumGuesses() return numGuesses;public void reset() 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.nanswer = Math.abs(new Random().nextInt() % 100)+ 1;success = false;numGuesses = 0;在J

48、SP文件中使用脚本 numguess.jsp是一个非常有趣儿的用脚本写的例子,你看他的结构其实是一个很大的IFELSE 结构,但是很一个从句又都是用HTML写的,看起来象一个大的程序段。 不过你也不一定非得象numguess.jsp那样用HTML和JSP标签一起来写脚本。在标签之 间,你可以写任意多行的脚本代码,在通常情况下,尽量少用脚本来处理程序,而尽可能的使用 servlets或者Beans,这样你的程序看起来会非常的清析,明了。话又说回来,怎么写JSP还得根 据你的习惯和爱好,我不强迫非得使用任何一种方法,SUN的JSP详细说明书不规定脚本的长 度。用标签组合脚本 使用HTML和JSP标

49、签来写脚本的时候,注意前后的标签不要忘记,一定要“封”好。说的不明白, 举个例子吧: HYPERLINK http:/www.51cho.n www.51cho.n.g这d时ia候n用.JnSeP标t签w吧ww 51 HYPERLINK HYPERLINK http:/www.51cho www.51chon.开始的时候这种做法看起来可能有一点奇怪,但它以确保你JSP文件编译的时候脚本的成功转换。那么,脚本什么时候执行呢? 一个JSP原文件的处理分为两个阶段:一个是HTTP的编译时候,一个是请求的处理时间。HTTP编译的时候,当用户第一次读JSP页面的时候,JSP的原代码被编译成CLASS,通

50、常是servlet。HTML标签和JSP标签在这个时候同时被处理了,这之前用户还没有任何的请求被提交。请求处理时间是当用户在JSP页面中提交了一个请求,这时请求由客户端被request对象传到了服 务器端,JSP引擎根据用户提交的值执行编译过的JSP文件或者servlet。当你在JSP页中使用脚本的时候,你必须知道他们什么时候被执行。声明在HTTP编译阶段就已经 被处理了,其他脚本,表达式在编译JSP文件的时候也可用。表达式在HTTP编译的时候也被执行 了。表达式的值被转换成了字符串被插入到JSP文件中一块儿被编译。其实在请求阶段,脚本也是 可以利用的。如何运行例子 我现在给出的都是在UNIX

51、风格下的路径,如果你用Windows,那么改成Windows风格路径1、猜数字游戏在装TOMCAT或者JSWDK的时候就已经装好了。2、.jsp和.html文件在./jswdk-1.0.1/examples/num中3、.java和.class文件在./jswdk-1.0.1/examples/WEB-INF/jsp/bean/num中4、开浏览器,./机器名/examples/jsp/num/numguess.jsp秀客设计: 专业网页设计、平面设计论坛。网页设计&平面设计初学者最受欢迎的论坛!快速发帖 HYPERLINK javascript:scroll(0,0) 顶端 HYPERLIN

52、K HYPERLINK HYPERLINK HYPERLINK /bbs/index.php HYPERLINK /index.htm 首页 | HYPERLINK /siuke.htm 秀客 | HYPERLINK /bbs/index.php 秀客论坛 | HYPERLINK /zt.htm 转帖工具 | 秀客收藏夹 windecember: HYPERLINK /bbs/login.php?action=quit 退出 | HYPERLINK /bbs/profile.php 控制面板 | HYPERLINK /bbs/message.php 短消息 | HYPERLINK /bbs/s

53、earch.php 搜索 | HYPERLINK /bbs/member.php 会员 | HYPERLINK /bbs/sort.php 统计与排行 | HYPERLINK /bbs/hack.php?H_name=bank 银行 | HYPERLINK /bbs/faq.php 帮助 | HYPERLINK /bbs/index.php 社区 HYPERLINK /bbs/index.php 秀客论坛 - HYPERLINK /bbs/job.php?rd_previous=1&fid=12&tid=3725&fpage=3&goto=previous 上一主题 | HYPERLINK /

54、bbs/job.php?rd_previous=1&fid=12&tid=3725&fpage=3&goto=next 下一主题siuke管理员精华 60 发帖 3459 秀值 2511 秀币 1587 状态 离线 贡献值 4 点在线时间(小时) 519 注册时间 2005-07-17 最后登陆 2005-11-19JSP语法入门教程JSP语法(1)HTML注释HTML 注释 在客户端显示一个注释. JSP 语法!- comment -例子 1在客户端的HTML源代码中产生和上面一样的数据:例子 2!- This page was loaded on -在客户端的HTML源代码中显示为: 描述

55、 这种注释和HTML中很像,也就是它可以在查看源代码中看到。唯一有些不同的就是,你可以在这个注释中用表达式(例子2所示)。这个表达示是不定的,由页 面不同而不同,你能够使用各种表达式,只要是合法的就行。5天1cI HYPERLINK /msgrd?V=1&Uin=173436316&Site=%E7%A7%80%E5%AE%A2%E8%AE%BA%E5%9D%9B&Menu=yes hTo下 HYPERLINK /bbs/message.php?action=write&touid=1 ng载 HYPERLINK /bbs/sendemail.php?uid=1 di站a HYPERLINK

56、/bbs/post.php?action=modify&fid=12&tid=3725&pid=9609&article=2 n】. HYPERLINK /bbs/post.php?action=quote&fid=12&tid=3725&pid=9609&article=2 n整etww誉.5 HYPERLINK /bbs/profile.php?action=show&uid=1 天1c HYPERLINK /bbs/message.php?action=write&touid=1 IhTo HYPERLINK /bbs/sendemail.php?uid=1 下ng载 HYPERLINK

57、 /bbs/post.php?action=modify&fid=12&tid=3725&pid=9610&article=3 di站 HYPERLINK /bbs/post.php?action=quote&fid=12&tid=3725&pid=9610&article=3 an】 HYPERLINK javascript:scroll(0,0) .n HYPERLINK http:/www.51ch www.51ch当你声明方法或变量时,请注意以下的一些规则:【誉天IT下载站】整理声明必须以;结尾(Scriptlet有同样的规则,但是 表达式就不同了).你可以直接使用在中被包含进来的已经

58、声明的变量和方法,不需要对它们重新进 行声明.一个声明仅在一个页面中有效。如果你想每个页面都用到一些声明,最好把它们写成一个单独的 文件,然后用或元素包含进来。秀客设计: 专业网页设计、平面设计论坛。网页设计&平面设计初学者最受欢迎的论坛!2005-11-12 08:45#2siuke管理员精华 60 发帖 3459 秀值 2511 秀币 1587 状态 离线 贡献值 4 点在线时间(小时) 519 注册时间 2005-07-17 最后登陆 2005-11-19JSP语法(4)表达式包含一个符合JSP语法的表达式JSP 语法例子.描述 表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后

59、被自动转化为字符串,然后插入到这个表达示在JSP文件的位置显示。因为这个表达式的值已经被转化为字符串,所以你能在一行文本中插入这个表达式(形式和ASP完全一样).当你在JSP中使用表达式时请记住以下几点: 你不能用一个分号(;)来作为表达式的结束符.但是同样的表达式用在scriptlet中就需要以分号来结尾了!查看Scriptlet 这个表达式元素能够包括任何在Java Language Specification中有效的 表达式.有时候表达式也能做为其它JSP元素的属性值.一个表达式能够变得很复杂,它可能由一个或多个 表达式组成,这些表达式的顺序是从左到右。秀客设计: 专业网页设计、平面设计

60、论坛。网页设计&平面设计初学者最受欢迎的论坛!2005-11-12 08:45#3 HYPERLINK HYPERLINK HYPERLINK o5天1cIhTo下ng载di站an】.n整etww誉.5 HYPERLINK /bbs/profile.php?action=show&uid=1 天1c HYPERLINK /bbs/message.php?action=write&touid=1 IhTo HYPERLINK /bbs/sendemail.php?uid=1 下ng载 HYPERLINK /bbs/post.php?action=modify&fid=12&tid=3725&pi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论