收藏 分享(赏)

JSP语法简明入门教程大全.doc

上传人:dreamzhangning 文档编号:3012306 上传时间:2018-10-01 格式:DOC 页数:138 大小:997KB
下载 相关 举报
JSP语法简明入门教程大全.doc_第1页
第1页 / 共138页
JSP语法简明入门教程大全.doc_第2页
第2页 / 共138页
JSP语法简明入门教程大全.doc_第3页
第3页 / 共138页
JSP语法简明入门教程大全.doc_第4页
第4页 / 共138页
JSP语法简明入门教程大全.doc_第5页
第5页 / 共138页
点击查看更多>>
资源描述

1、5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n首页 | 秀客 | 秀客论坛 | 转帖工具 | 秀客收藏夹 windecember: 退出 | 控制面板 | 短消息 | 搜索 | 会员 | 统计与排行 |银行 | 帮助 | 社区秀客论坛 - 网络编程 - JSP入门教程标题: JSP入门教程 上一主题 | 下一主题siuke管理员精华 60 发帖 3459 秀值 2511 秀币 1587 状态 离线 贡献值 4 点在线时间(小时 ) 519 注册时间 2005-07-17 最后登陆 2005-11-19JSP入门教程JavaServer Pages

2、 (JSP)是基于Java 的技术,用于创建可支持跨平台及跨 Web服务器的动态网 页。JSP可与微软的Active Server Pages (ASP)相媲美,但JSP使用的是类似于HTML 的标记和Java 代码 片段而不是用VBScript。当你使用不提供ASP 本地支持的Web 服务器(例如 Apache或Netscape 服 务器)时,你就可以考虑使用JSP了。你虽然也可以为这些服务器弄一个ASP 附加软件模块,但是 太昂贵了。现在Sun公司并不会因你使用JSP向你收费(虽然将来可能要收),况且用于 Solaris、 Linux以及 Windows系统的组件都很容易获得。不要把JSP

3、与服务器端的JavaScript语言搞混了。Web服务器自动将通过JSP生成的Java代码片段转 换成Java 片段(servlets )。 JSP也可自动控制许多功能,如过去用Perl 脚本编写功能程序或像 ASP这样的服务器专用API(应用编程接口)。我们马上就要开始帮助你建立一个使用JSP 技术的网站范例了。准备好计算机以使用JSP你需要Java2软件开发工具箱(J2SDK),过去称之为Java开发工具箱(JDK)、JavaServer 网络 开发工具箱(JSWDK)、Tomcat,或者其它能支持JSP的Web服务器。升阳公司为Windows、 Solaris以及 Linux平台提供免费

4、的J2SDK 和JSWDK。如果你想在现有的Web服务器上使用JSP,而此服务器本身不支持JSP和Java 代码片段,可以试用 Allaire公司的Jrun。它可以为Netscape的Enterprise Server和Fasttrack Server、微软的Internet Information Server(IIS)和Personal Web Server(PWS)、Apache 以及其他服务器充当Web 服 务器附件。你也可以使用Apache服务器的Java 版,其中包含最新的JSWDK。下载并安装所需的软件www.51ch目前,版本号为1.2.2-001的J2SDK 可下载版以可安装

5、的归档文件形式出现。这个大约20MB 的下载量软件可提供一个彻底的Java开发环境,让你创造任何基于Java并且利用了而标准核心API 的解决 方案。其实,你的Web服务器使用JSP的唯一条件是要有Java编辑器。要让Web服务器知道编辑器 的位置,需要JAVA_HOME 环境变量设置为J2SDK 安装目录。如果你已经在 Windows系统中进行 了安装并且接受了默认目录, 请将“set JAVA_HOME=C:1.2.2”添加到你的“autoexec.bat”文件 中,然后重新启动。安装J2SDK后,下载并安装JSWDK或者是Tomcat 版,即基于Java的Apache Web服务器的 版

6、。你把JSWDK放在什么地方是无关紧要的,只要你以后能找到它就行。通常,将其放在顶层目 o 录 ng中d, i这 an样 .你 n在 et替换 wJSwW.D5K1或 cJShDoKn时 g无 di需 a删 n除 .另 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开发工作了。正确地安装JSWDK后,请运行“startserver”脚本程序,以启动Web服务器,使其按照默认情况监听8080端口。你要在启动服务器

7、之后查看您是否已正确地安装了此工具,请加载一个JSP样本文 件(/locahost:8080/examples/jsp/)。如果你能成功地运行这些样本文件,说明你已经正确地安装了这个软件。如果你在用来启动服务器的控制台窗口中看到报错信息,你就需要做些修改。最经常发生的问题是没有设置或不正确地设置了JAVA_HOME环境变量。要看到当前环境变量设置 情况,要请在DOS提示符下键入“set” 设置。开始在解释 JSP语法前,创建一个快捷网页,显示目当前的日期和时间,并然后将之其保存为sample. jsp:First PageToday is:.把这个文件以及你所有的HTML 和 JSP 页面放在

8、JSWDK安装目录下的网页目录里。你可以从/ localhost:8080/sample.jsp加载此网页。该网页首次被访问时,Web 服务器会把JSP编译成Java代 码片段,这样你就能够看到当前的日期和时间了。你已经下载、安装并配置好了开发环境,你可以开始学习JSP语法并创建自己的基于JSP 的解决方 案了。JSP基本语法 讲完安装问题后,现在进入来讨论JSP语法。一个投机取巧的办法是下载语法卡片。如果你不熟悉 Java编程,也许你想看一下Sun的指南 。然而网页创建者并不需要进行太多的Java开发。除了一 些方法调用,在你的JSP网页里应尽可能少用Java代码。记住以上提示,我们首先来看

9、一看JSP指令和脚本元素,之后我们会解释JavaBeans和隐含对象。 共有五种JSP指令和脚本元素。在JSP 1.0版中,大部分JSP被一个以“”结尾的 的标记括在其中。在更新的JSP 1.1规范出台后,就有了与XML兼容的版本。JSP指令和脚本元素Directives Declarations Expressions Code Fragment/Scriptlet Comments 指令 JSP指令是为JSP引擎而设计的。他们并不直接产生任何可见输出,而只是告诉引擎如何处理其余 JSP页面。这些指令始终被括在 “”标记中。两个最重要的指令 是“pagePage”和“Include”。“Ta

10、glib”指令不在讨论之列,但是在用 JSP1.1创建自定义标记可以使 用它。几乎在所有JSP页面顶部都会看到“Page”指令。尽管不是必须的,但它可以让你指定: 到何处查找起支持作用的Java类别:i, 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.nwww.51cho出 ng现 dJiavaan运 .行 n问 et题时,将网上冲浪者引向何处:,还有你是否需要管理用户的会话级信息,这些信息可能来自多个网页(在下面的JavaBeans一节 将对此做进一步讲)述:.“Include”指令可以把你的内容分成更多可管理的元素,比如包括一个普通页面页眉或

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

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

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

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

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

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

17、出可用的隐含对象集合。隐含对象说明request 客户端请求,包括从GET/POST请求传递过来的参数response 网页传回客户端的反应 pageContext 在此管理网页属性 session 与请求关联的会话 application 代码片段的运行环境 out 传送响应的输出流config 代码片段配置对象page JSP网页本身exception 有错的网页中未被捕获的例外这些都是用来做什么的,你又如何来使用它们呢?基本上说,在你的脚本片段里,你可以用它们 进入执行JSP代码的代码片段。用不着深入了解太多的Servlet API细节,我们来看看能用它们来做 到的某些事情:你可以不用表

18、达式,直接进入“Out”隐含对象,将某些内容输出到响应中:。 用不着把一个参数直接送到JavaBean,你可以从请求对象获取参数值:www.51choi. 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.nwww.51cho在 ng你 d用 iJaSnP进 .n行 e开 t发的过程中,进行更多的开发的过 【 程中 誉 ,如 天 果 I创 T建 下 了 载 Jav站 aBe】 ans整 或发 理 现JSP文件 中加入了太多的Java源代码,你就需要创建起支持作用的 Java分类(class)了,它可以协助你重 复利用源代码并减少JSP网页编译时间。当你

19、需要创建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语法派上用场的时候了。我们将创建一个网页,它有一个输入表单,可以 使用户输入一个股票代号以获得出当前股价(有20分钟)。如果输入有误,则显示报错网页。quote.jsp首先,用 这个代码 创建一个quo

20、te.jsp网页并将其保存在JSWDK安装目录下的网页目录中。大多数的网页是标准的HTML,其间散布着JSP代码。第六行是一个网页指示,表示将把所有错误发送 到“errorPage.jsp”文中。第13到15 行是一个脚本片段,主要说明只有提供“ 符号”参数才会显示表 格。“If”代码段在32到34行结束。第17行定义了要用的JavaBean,第18 行从参数加载JavaBean的 符号属性。第27行到29 行显示 Bean的属性。除了“if “代码段,实际上并不涉及其它Java代码。errorPage.jsp 下一步,将下列JSP源代码保存到网页目录中的“errorPage.jsp”文件中。

21、“这是一个错误网页”的提 示为第一行,它将 isErrorPage网页提示属性设置为真。上一页说了明错误网页的位置,本页则说 明这就是错误网页。其它JSP文件中的JSP专用代码只有访问隐含例外对象才用到。网页只显示其 值:Error PageOur Error PageWe got ourselves an exception:Restart。Quotes.javaQuotes JavaBean 利用Yahoo资源来获得股票价格。需要将此 资源保存到JSWDK安装目录下“classescomjguru”目录中的“quotes.java”文件中。请在此用JSDK中的Javac编辑器来编辑它。你的

22、第一个JSP网页。 创建了这两个JSP文件,建立了JavaBean资源文件并编辑了它后,你就可以从/localhost:8080/ quote.jsp加载“quote.jsp”文件以查看结果,假设你没有更改JSWDK安装设置,转而使用别的端 口。这个网页当然能做得更漂亮,但是它已实现了需要实现的功能,并且很好地展示了JSP的功 能。秀客设计: 专业网页设计、平面设计论坛。网页设计public class NameHandlerprivate String username; public NameHandler() username = null;public void setUsername

23、( String name ) username = name; 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.npublic String getUsername() return username;建立HTML 表单 一个HTML 的窗分为三个部分:标签,输入方法,提交按钮发数据到服务器。一般的HTML页面里,是这么写的,在其他的页面里的action属性可能是其他特殊的CGI程序或者其他能处理数据的程序,那么在JSP 里边是怎么用的呢,呵,如果 你想把数据发到Bean里的话那么你可以省略action里边的东里了,直接写 标签或 者其他特定的JS

24、P文件了。接下来的那些表单和普通的HTML差不多了,的方法,然后加 一个提交按钮,可能还有一个Reset按钮,对了,别忘了,还得给每一个input表单加一个名字。 这么写:使用GET和POST 方法 用GET和POST方法可以发数据到服务器,在 JSP程序中GET和POST 方法可以发数据到Bean、servlet、或者其他服务器端的组件。理论上说,GET是从服务器上请求数据,POST 是发送数据到服务器。事实上, GET方法是把数据 参数队列(query string)加到一个 URL上,值和表单是一一对应的。比如说,name=John。在队 列里,值和表单用一个import java.ut

25、il.*;public class NumberGuessBean int answer;boolean success;www.51choSntgrindgihainnt;.net 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.nint numGuesses;www.51chopnugbdliciNaunm.bnereGtuessBean() reset();public void setGuess(String guess) numGuesses+;int g;try g = Integer.parseInt(guess);catch (Num

26、berFormatException e) g = -1;if (g = answer) success = true;else if (g = -1) hint = “a number next time“;else if (g answer) hint = “lower“;public boolean getSuccess() return success;public String getHint() return “ + hint;public int getNumGuesses() return numGuesses;public void reset() answer = Math

27、.abs(new Random().nextInt() % 100)+ 1;success = false;numGuesses = 0;在JSP文件中使用脚本 numguess.jsp是一个非常有趣儿的用脚本写的例子,你看他的结构其实是一个很大的IFELSE 结构,但是很一个从句又都是用HTML写的,看起来象一个大的程序段。 不过你也不一定非得象numguess.jsp那样用HTML和JSP标签一起来写脚本。在标签之 间,你可以写任意多行的脚本代码,在通常情况下,尽量少用脚本来处理程序,而尽可能的使用 servlets或者Beans,这样你的程序看起来会非常的清析,明了。话又说回来,怎么写

28、JSP还得根 据你的习惯和爱好,我不强迫非得使用任何一种方法,SUN的JSP 详细说明书不规定脚本的长 度。用标签组合脚本 使用HTML和JSP标签来写脚本的时候,注意前后的标签不要忘记,一定要“封”好。说的不明白, 举个例子吧:www.51cho.ng这 d时 ia候 n用 .JnSeP标 t签 w吧 ww www.51chon.开始的时候这种做法看起来可能有一点奇怪,但它以确保你JSP文件编译的时候脚本的成功转换。那么,脚本什么时候执行呢? 一个JSP原文件的处理分为两个阶段:一个是HTTP的编译时候,一个是请求的处理时间。HTTP编译的时候,当用户第一次读JSP页面的时候,JSP的原代

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

30、我现在给出的都是在UNIX风格下的路径,如果你用 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秀客设计: 专业网页设计、平面设计论坛。网页设计“ 结尾(Scriptlet有同样的规则,但是 表达式就不同了 ).你可以直接使用在中被包含进来的已经声

31、明的变量和方法,不需要对它们重新进 行声明.一个声明仅在一个页面中有效。如果你想每个页面都用到一些声明,最好把它们写成一个单独的 文件,然后用或元素包含进来。秀客设计: 专业网页设计、平面设计论坛。网页设计jsp:useBean的主体仅仅只有在示例Bean时才会被执行,如果 这个Bean已经存在,能够定位它,那么主体中的内容将不会起作用属性以及用法id=“beanInstanceName“在你所定义的范围中确认Bean的变量,你能在后面的程序中使用此变量名来分辨不同的Bean这个变量名对大小写敏感,必须符合你所使用的脚本语言的规定,在Java Programming Language中,这个规

32、定在 Java Language 规范已经写明。如果这个Bean已经在别的中创建,那么这个id的值必须与原来的那个id值一致.scope=“page | request | session | application“ Bean存在的范围以及id变量名的有效范围。缺省值是page,以下是详细说明:page - 你能在包含元素的JSP文件以及此文件中的所有静态包含文件中使用Bean, 5天1cIhTo下ng载di站an】.n整etww誉.5天1cIhTo下ng载di站an】.n直到页面执行完毕向客户端发回响应或转到另一个文件为止。www.51chornegqudeista-n你 .在 ne任 t

33、何执行相同请求的Jsp 文件中使用B e【 an,誉 直到 天 页 I面 T执 下 行 载 完毕 站 向 】 客户 整 端发 理 回响应或转到另一个文件为止。你能够使用Request对象访问Bean,比如request.getAttribute(beanInstanceName)session - 从创建Bean开始,你就能在任何使用相同session 的Jsp文件中使用Bean. 这个Bean存在于整个Session 生存周期内,任何在分享此 Session的Jsp 文件都能使用同一Bean.注意在你创建Bean的Jsp文件中指令中必须指定session=trueapplication -

34、从创建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指

35、定type ,Bean将不会被示例.package和class的名字,区分 大小写.beanName=“package.class | “ type=“package.class“ 使用java.beans.Beans.instantiate方法来从一个class或连续模版中示例一个Bean,同时指定Bean的 类型。beanName可以是package 和class 也可以是表达式,它的值会传给Beans.instantiate.tupe的值可以 和Bean相同。package 和 class 名字区分大小写.秀客设计: 专业网页设计、平面设计论坛。网页设计&平面设计初学者最受欢迎的论坛!2005-11-12 08:47 #12 Pages: ( 2 total )快速发帖 顶端标题: 查看帖子长度

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

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报