快捷搜索:

JSP入门教程

JavaServer Pages (JSP)是基于Java的技巧,用于创建可支持跨平台及跨Web办事器的动态网页。;

JSP可与微软的Active Server Pages (ASP)相媲美,但JSP应用的是类似于HTML的标记和Java 代码片段而不是用VBScript。当你应用不供给ASP本地支持的Web办事器(例如 Apache或Netscape办事器)时,你就可以斟酌应用JSP了。你虽然也可以为这些办事器弄一个ASP附加软件模块,然则太昂贵了。现在Sun公司并不会因你应用JSP向你收费(虽然将来可能要收),况且用于Solaris、 Linux以及Windows系统的组件都很轻易得到。;

不要把JSP与办事器真个javascript说话搞混了。Web办事器自动将经由过程JSP天生的Java代码片段转换成Java 片段(servlets)。 JSP也可自动节制许多功能,如以前用Perl脚本编写功能法度榜样或像ASP这样的办事器专用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和Fasttrack Server、微软的Internet Information Server(IIS)和Personal Web Server(PWS)、Apache以及其他办事器充当Web办事器附件。你也可以应用Apache办事器的Java版,此中包孕最新的JSWDK。;

下载并安装所需的软件;

今朝,版本号为1.2.2-001的J2SDK可下载版以可安装的归档文件形式呈现。这个大年夜约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办事器的β版。你把JSWDK放在什么地方是无关紧要的,只要你今后能找到它就行。平日,将其放在顶层目录中,这样你在调换JSWDK或JSDK时无需删除另一个软件。安装好这个文件后,筹备事情已经就绪,你可以开始JSP开拓事情了。;

精确地安装JSWDK后,请运行“startserver脚本法度榜样,以启动Web办事器,使其按照默认环境监听8080端口。你要在启动办事器之后查看您是否已精确地安装了此对象,请加载一个JSP样本文件(http://locahost:8080/examples/jsp/)。假如你能成功地运行这些样本文件,阐明你已经精确地安装了这个软件。假如你在用来启动办事器的节制台窗口中看到报错信息,你就必要做些改动。最常常发生的问题是没有设置或不精确地设置了JAVA_HOME情况变量。要看到当前情况变量设置环境,要请在DOS提示符下键入“set设置。;

开始;

在解释 JSP语法前,创建一个快捷网页,显示目当前的日期和光阴,并然后将之其保存为sample.jsp:;

;

;

;

Today is:;

;

;

;

.;

把这个文件以及你所有的HTML 和 JSP 页面放在JSWDK安装目录下的网页目录里。你可以从http://localhost:8080/sample.jsp加载此网页。该网页首次被造访时,Web办事器会把JSP编译成Java代码片段,这样你就能够看到当前的日期和光阴了。;

你已经下载、安装并设置设置设备摆设摆设好了开拓情况,你可以开始进修JSP语法并创建自己的基于JSP的办理规划了。

JSP基础语法;

讲完安装问题后,现在进入来评论争论JSP语法。一个谋利取巧的法子是下载语法卡片。假如你不认识Java编程,大概你想看一下Sun的指南 。然而网页创建者并不必要进行太多的Java开拓。除了一些措施调用,在你的JSP网页里应尽可能少用Java代码。;

记着以上提示,我们首先来看一看JSP指令和脚本元素,之后我们会解释JavaBeans和隐含工具。共有五种JSP指令和脚本元素。在JSP 1.0版中,大年夜部分JSP被一个以“结尾的的标记括在此中。在更新的JSP 1.1规范出台后,就有了与XML兼容的版本。;

JSP指令和脚本元素;

Directives ;

Declarations ;

Expressions ;

Code Fragment/Scriptlet ;

Comments ;

指令;

JSP指令是为JSP引擎而设计的。他们并不直接孕育发生任何可见输出,而只是奉告引擎若何处置惩罚另外JSP页面。这些指令始终被括在 “标记中。两个最紧张的指令是“pagePage和“Include。“Taglib指令不在评论争论之列,然则在用JSP1.1创建自定义标记可以应用它。;

险些在所有JSP页面顶部都邑看到“Page指令。只管不是必须的,但它可以让你指定:;

到何处查找起支持感化的Java种别:;

,;

呈现Java运行问题时,将网上冲浪者引向何处:;

,;

还有你是否必要治理用户的会话级信息,这些信息可能来自多个网页(鄙人面的JavaBeans一节将对此做进一步讲)述:;

.;

“Include指令可以把你的内容分成更多可治理的元素,比如包括一个通俗页面页眉或页脚的元素。包孕的网页可所以一个固定的HTML 页面或更多的JSP内容:;

;

声明;

JSP声明用来让你定义页面级变量,以保存信息或定义JSP页面的另外部分可能必要的支持措施。假如你发今世码太多,平日最好把它们写成一个自力的Java种别。声明一样平常都在“标记中。必然要以分号(;)停止变量声明,由于任何内容都必须是有效的Java语句:;

。;

表达式;

有了JSP表达式,表达式评估结果会被转换成一个字符串,并且被直接包括在输出页面之内。JSP 表达式包孕在“ 标记中,没有分号,除非在加引号的字符串部分应用分号。;

;

.

代码片段/脚本片段;

代码片段/脚本片段(Scriptlets) JSP代码片段或脚本片段是嵌在“标记中的。这种Java代码在Web办事器相应哀求时就会运行。在脚本片段周围可能是原始的HTML或XML语句,在这些地方,代码片段可以使你创建前提履行代码,或要用到别的一段代码的代码。例如,以下的代码组合应用表达式和代码片段,显示H1、H2、H3和H4标记中的字符串“Hello。代码片段并不局限于一行源代码:;

;

>Hello>;

.;

注释;

着末一个主要的JSP元素是嵌入式注释。只管你始终可以在文件中加入HTML注释,但用户在查看页面源代码时会看到这些注释。假如你不想让用户看到它,你就应该将其嵌入“ 标记中:;

.;

带JavaBean 的JSP;

虽然你可以把大年夜段的代码放在脚本片段(scriptlet)内,然则绝大年夜多半的Java代码属于可重复应用的名为JavaBea的组件。JavaBean类似于ActiveX控件:他们都能供给常用功能并且可以重复应用。;

JavaBean的值是经由过程一些属性得到的,你可经由过程这些属性造访JavaBean设置。以一小我来打比方,这小我便是一个JavaBean,这小我的名字、身份证号码以及住址便是其属性。在JSP网站,你基础上便是经由过程玩“Connect the beans)来使你的网站动态化。;

假设JavaBean先于网站被创建出来,你必要做的第一件事便是奉告JSP页面它将要用到一个“Bean。你可以用“标记来做到这一点:;

。;

“标记要求你用“id属性来识鉴别Bean。这里你供给一个名字来JSP页面另外部分的Bean。除了“id属性,你还须奉告网页面从何处查找Bean,或者它的Java类又名是什么。这各种别属性供给确 认Bean的功能,其他一些措施也可以做到这一点。着末一个必需的元素是“scope属性。有了“scope属性的赞助,你就能奉告Bean为单一页面(默认环境)[scope="page"]、为[scope="request"]哀求为会话[scope="session"],或者为全部利用法度榜样[scope="application"]维持留信息。有了会话范围,你就能异常轻易地在JSP网页面上掩护购物车等项目。;

一旦你声名了一个JavaBean,你就可以造访它的属性来定制它。要得到属性值,请用“标记。有了这个标记,你就能指定将要用到的Bean名称(从useBean的"id"字段获得)以及你想获得其值的属性。实际的值被放在输出中:;

。;

要改变JavaBean属性,你必须应用“标记。对这个标记,你必要再次识别Bean和属性,以改动并额外供给新值。假如命名精确,这些值可以从一个已提交的表中直接得到:参数得到:;

;;

可以从一个参数得到,但你必须直接命名属性和参数:;

;

或者直接用一个名字称和值来设置:/>.;

关于JavaBean 的着末一件事: 为了Web办事器能找到JavaBean,你必要将其种别文件放在一个特殊位置。用JSWDK,最 方便的位置是安装目录下的种别目录,如jswdk-1.0.1classes。;

JSP隐含工具;

与JSP语法相关的着末的元素是一些叫做“隐含工具的器械。在JSP代码片段中,你可以使用这些隐含工具与JSP页面的代码片段履行情况孕育发生互动。应只管即便少造访这些内置隐含工具。然则,在一某些环境下,造访隐含工具是可被吸收的。若要充分使用隐含工具,就需懂得最新的Java Servlet API。;

下表列出可用的隐含工具聚拢。;

隐含工具阐明;

request 客户端哀求,包括从GET/POST哀求通报过来的参数;

response 网页传回客户真个反映;

pageContext 在此治理网页属性;

session 与哀求关联的会话;

application 代码片段的运行情况;

out 传送相应的输出流;

config 代码片段设置设置设备摆设摆设工具;

page JSP网页本身;

exception 有错的网页中未被捕获的例外;

这些都是用来做什么的,你又若何来应用它们呢?基础上说,在你的脚本片段里,你可以用它们进入履行JSP代码的代码片段。用不着深入懂得太多的Servlet API细节,我们来看看能用它们来做到的某些工作:;

你可以不用表达式,直接进入“Out隐含工具,将某些内容输出到相应中:;

。;

用不着把一个参数直接送到JavaBean,你可以从哀求工具获取参数值:;

.

在你用JSP进行开拓的历程中,进行更多的开拓的历程中,假如创建了JavaBeans或发明JSP文件中加入了太多的Java源代码,你就必要创建起支持感化的Java分类(class)了,它可以帮忙你重复使用源代码并削减JSP网页编译光阴。当你必要创建Java分类文件时,你必须:;

将JDSWK installationin目录添加到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;

首先,用 这个代码 创建一个quote.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文件中。“这是一个差错网页的提示为第一行,它将isErrorPage网页提示属性设置为真。上一页说了明差错网页的位置,本页则阐明这便是差错网页。其它JSP文件中的JSP专用代码只有造访隐含例外工具才用到。网页只显示其值:;

;

;

;

;

Our Error Page;

;

We got ourselves an exception:;

;

Restart;

;

。;

Quotes.java;

Quotes JavaBean 使用Yahoo资本来得到股票价格。必要将此 资本保存到JSWDK安装目录下“classescomjguru目录中的“quotes.java文件中。请在此用JSDK中的Javac编辑器来编辑它。;

你的第一个JSP网页。;

创建了这两个JSP文件,建立了JavaBean资本文件并编辑了它后,你就可以从http://localhost:8080/quote.jsp加载“quote.jsp文件以查当作果,假设你没有变动JSWDK安装设置,转而应用其余端口。这个网页当然能做得更漂亮,然则它已实现了必要实现的功能,并且很好地展示了JSP的功能。

迎接应用JavaServer Pages(以下简称JSP)技巧—制作动态内容网页的措施。;

假如你盼望进修这篇教程的话,我想你必然是这项技巧的新手。你可能想成为一名使用JSP技巧开拓收集利用法度榜样的法度榜样员或者网页设计师。本教程中包孕了一系列JSP的技术和一些简单的代码的写法,每一步都举了一组例子来讲述道理。;

我建议你在进修本教程之前先去看一看FAQ,懂得假如设置设置设备摆设摆设你的办事器好让他能支持并运行JSP。那样你就可以跳过前边的内容直接看你感兴趣的内容了。;

OK,费话少说,Let’s go!

第一课:真正的开始;

现在开始做我们的第一个JSP页面。图1-1展示了一个最简单的JSP页面,接下来是两段代码。;

[dukebanner.html];

;

;

;

;

;

;

;

;

};

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.abs(new Random().nextInt() % 100);

+ 1;;

success = false;;

numGuesses = 0;;

};

};

在JSP文件中应用脚本;

numguess.jsp是一个异常有趣儿的用脚本写的例子,你看他的布局着实是一个很大年夜的IF……ELSE布局,然则很一个从句又都是用HTML写的,看起来象一个大年夜的法度榜样段。;

不过你也不必然非得象numguess.jsp那样用HTML和JSP标签一路来写脚本。在标签之间,你可以写随意率性多行的脚本代码,在平日环境下,只管即便少用脚原先处置惩罚法度榜样,而尽可能的应用servlets或者Beans,这样你的法度榜样看起来会异常的清析,清楚明了。话又说回来,怎么写JSP还得根据你的习气和喜欢,我不逼迫非得应用任何一种措施,SUN的JSP具体阐明书不规定脚本的长度。;

用标签组合脚本;

应用HTML和JSP标签来写脚本的时刻,留意前后的标签不要忘怀,必然要“封好。说的不明白,举个例子吧:;

;

... 这时刻用JSP标签吧 ...;

;

开始的时刻这种做法看起来可能有一点稀罕,但它以确保你JSP文件编译的时刻脚本的成功转换。;

那么,脚本什么时刻履行呢?;

一个JSP原文件的处置惩罚分为两个阶段:一个是HTTP的编译时刻,一个是哀求的处置惩罚光阴。;

HTTP编译的时刻,当用户第一次读JSP页面的时刻,JSP的原代码被编译成CLASS,平日是servlet。HTML标签和JSP标签在这个时刻同时被处置惩罚了,这之前用户还没有任何的哀求被提交。;

哀求处置惩罚光阴是当用户在JSP页面中提交了一个哀求,这时哀求由客户端被request工具传到了办事器端,JSP引擎根据用户提交的值履行编译过的JSP文件或者servlet。;

当你在JSP页中应用脚本的时刻,你必须知道他们什么时刻被履行。声明在HTTP编译阶段就已经被处置惩罚了,其他脚本,表达式在编译JSP文件的时刻也可用。表达式在HTTP编译的时刻也被履行了。表达式的值被转换成了字符串被插入到JSP文件中一块儿被编译。其其实哀求阶段,脚本也是可以使用的。;

若何运行例子;

我现在给出的都是在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、开浏览器,http://机械名/examples/jsp/num/numguess.jsp;

;

helloworld.jsp;

;

;

;

;

;

;

;

;

Hello, World! ;

;

;

;

;

页面阐明:;

在很多JSP文件中你都要写上这样的阐明。在helloword.jsp中:;

;

傻瓜也看得出来,这句话没什么大年夜用,只是简要的阐明一下这段代码的感化。;

你可以在JSP文件中的任何地方写这种代码,然则好的习气是把他写在最前面,还有,由于他是JSP标签,记着必然要放在前面,呵;

include阐明:;

include用来在主JSP文件中调用本地的一个其他文件,平日是一些版权信息啦,脚本说话啦等其他任何你想在其他文件中重复应用的代码。在这个例子中便是调用了一个图片着实。大年夜家明白这个意思就得了。;

随便说两句:;

在JSP中对写法异常敏感,弗成以有一点差错。举个例子,把写成那样办事器会呈现差错信息。一些如类名,包名,路径名还有其他的敏感的标签等切切不要写错。有一些JSP标签拿不准的话就去查一下JavaServer Pages语法卡片。;

代码写好了,若何试验一下呢?;

我这里写的UNIX下的措施,假如你用Windows,那么换一下路径就可以了;

1、 先建一个目录:../jswdk-1.0/examples/jsp/tutorial/helloworld;

2、 把这些文件拷以前background.gif, duke.waving.gif, dukebanner.html, and helloworld.jsp;

3、 cd ../jswdk-1.0,然后startserver;

4、 开一个浏览器,;

5、 http://yourMachineName:8080/examples/jsp/tutorial/helloworld/helloworld.jsp

第二课:用HTML表单;

大年夜多半环境下,商业的网站都要有一些表单,比如说输入一下破费者的姓名啦,地址啦,或者敲一个词来用搜索引擎来查一下啦,或者市场职员从来访者处网络一些数据供参考什么的。;

那些表单传回的数据怎么处置惩罚的?;

来访者经由过程表单向JSP引擎输入了数据,并保存在了request工具中,那么接下来怎么办?;

图2-1向你展示了数据流是若何在办事器和客户之间通报的(至少在SUN的JSP reference implementation是这么做的,其余JSP引擎事情起来可能会有一点点的不合,着实大年夜同小异,都差不多);

字儿太小了,可能看不大年夜清吧?俺来解释一下了只好。;

首先,JSP引擎把寄放在request工具中的数据发到JSP页面指定的办事器真个组件(JavaBeans组件, servlet,或者enterprise bean),组件收到这些个数据今后,有可能再存这些数据到数据库或者其他的地方寄放起来,同时,返回一个response工具给JSP引擎。JSP引擎再把response工具传给JSP页面,这时的页面包孕了定义好的款式和从办事器端获得的数据。这时JSP引擎和Web办事器再发送一个收拾好的完备的页面给客户,也便是这们在浏览器上看到的结果。客户和办事器间的通信协议可以用HTTP,当然也可以用其他的。;

Request和Response工具在你制作的JSP原代码中起感化。到于request工具到底怎么用,我要在接下来具体的讲给你听。;

;

在页面中应用变量和措施之前必须声明;

声明的范围平日是JSP页,但假如页面中应用INCLUDE指令包孕其他页面,范围应变得扩展到被包孕的页面。;

表达式可以在页面中包孕任何合法的说话表达式,不用分号。;

例:;

;

;

;

表达式和脚本的一个关键的不合点便是不必要分号。假如你必要在脚本中应用表达式就必须加分号。;

脚本容许你写的任何数量的脚本说话;

例:;

记着在脚本中必须应用分号结尾。;

猜数字游戏;

猜数字游戏异常的有趣,而且从这里你还可以学到很多表达式的用法。;

代码;

显示用的主屏幕(numguess.jsp);

;

;

;

;

;

;

;

;

;

Congratulations! You got it.;

And after just tries.

;

;

Care to try again?;

;

Welcome to the Number Guess game.

;

I'm thinking of a number between 1 and 100.

;

;

What's your guess? ;

;

;

;

Good guess, but nope. Try .;

You have madeguesses.;

I'm thinking of a number between 1 and 100.;

;

What's your guess? ;

;

;

;

;

;

;

操作法度榜样(NumberGuessBean.java);

// Number Guess Game;

// Written by Jason Hunter, CTO, K&A Software;

// jasonh@kasoftware.com, http://www.servlets.com;

// Copyright 1999, K&A Software;

// Distributed by Sun Microsystems with permission;

package num;;

import java.util.*;;

public class NumberGuessBean {;

int answer;;

boolean success;;

String hint;;

int numGuesses;;

public NumberGuessBean() {;

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 (g < answer) {;

hint = "higher";;

Request工具;

用户输入的数据用来寄放在Request工具里,用javax.servlet.HttpServletRequest来履行(你也可以用其他不合的对象来履行,但他们着实都是javax.servlet.HttpServletRequest的子集);

你也可以直接用scriptlet来直接造访Request工具。Scriptlet将鄙人一讲里边具体的评论争论,现在你只必要知道他是用脚本说话写的一段放在 之间的代码就足够了。在JSP 1.0中,你必须用JavaTM法度榜样说话作为你的脚本说话。;

你常常会用到如下措施处置惩罚Request工具:;

措施;

阐明;

履行结果;

getRequest;

Javax.servlet.jsp.PageContext;

返回当前Request工具;

getParameterNames;

javax.servlet.ServletRequest;

返回当前Request工具参数名;

getParameterValues;

javax.servlet.ServletRequest;

返回当前Request工具参数值;

你将会发明其他措施包括ServletRequest,HttpServletRequest或者其他任何ServletRequest的子集。;

JSP引擎常常在scenes之后应用Request工具,纵然你没有明确地在JSP文件中调用。;

从Bean中调数据到JSP页面;

一旦用户的数据被传到Bean,你就想从新获得数据,然后在JSP面页中显示出来。想达到这一步,你就得用到标签。传Bean名和属性名:;

Hello, !;

, , 和 标签必须相配,举个例子:;

hellouser.jsp:;

;

;

response.jsp:;

Hello, !;

在这个例子里,标签被放在两个文件中,然则指定的名字都是相同的,假如不合的话,那么系统会返回一个差错信息。;

若何运行例子;

我用的是UNIX主机,假如你用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;

把文件NameHandler.java和NameHandler.class放进去。;

cd../jswdk-1.0然后startserver;

打开浏览器http://谋略机名:8080/examples/jsp/tutorial/hellouser/hellouser.jsp

应用脚本;

在有些地方,你大年夜概要加一些好的,成熟的法度榜样到你的JSP页里,JSP的标签虽然很强大年夜,然则完成某些事情照样对照辛勤的艰苦的。这时你可以应用脚本说话段来弥补JSP标签。;

应用的JSP引擎是支持脚本说话的,SUN的JSP参考文阐明,必须应用Java法度榜样说话来编写脚本,然则其他第三方的JSP引擎容许应用其他说话来写脚本程。;

若何增添脚本;

首先,你必须懂得一些增添脚本元素到JSP页中的一些基础规则;

1、 在JSP页面里用Page指令定义脚本(默认值是Java,一样平常不必要定义);

2、 声明语法声明变量和措施(函数)。;

3、 表达式语法定义脚本说话表达式;

4、 脚本语法〈%……%>可以操作声明、表达式和其他类型合法的代码段在页脚本说话。;

5、 必然要在结尾加%>标签;

声明、表达式、脚本应用起来有一些相似,但也有一些不合让我们用一些例子来讲述一下相同点和不合点吧。

声明包孕了一个或多个变量和措施,结尾以分号分隔。;

例:;

;

若何创建表单;

用HTML定义一些有代表性的表单做成一个JSP文件,然后用JSP标签在表单和办事器端工具(平日都用Bean)通报数据。一样平常环境下是这么干的:;

1、 写JSP原文件,创建一些HTML的表单并命名。;

2、 在Java文件里写Bean,定义属性,GET或者SET措施来共同已经被你指定好名字的表单。;

3、 回到JSP原文件中,增添标签来创建一个或者调用一个现成的Bean。;

4、 增添标签设置HTML表单中必要SET措施的Bean的属性。;

5、 增添标签设置HTML表单中必要GET措施的Bean的属性。;

6、 假如必要处置惩罚更多的用户数据,用request工具。;

说了半天你可能看不懂,着实看一个例子你就懂了。;

先看一个简单的hello的例子吧:;

这段法度榜样着实照样谋略机法度榜样里那个最经典的“hello,world的法度榜样,只不过呢,我使他挠了一点弯儿,使他看起来对照智能和繁杂。首先你输入你的名字,然后Duke跟你说:“hello!

看看代码吧:;

dukebanner.html;

;

;

;

;

;

;

;

;

;

;

主JSP文件:hellouser.jsp;

;

;

;

;

;

;

;

;

;

;

My name is Duke. What's yours?;

;

;

;

;

;

;

;

;

;

;

;

;

;

回应文件:response.jsp;

;

;

;

;

Hello, !;

;

;

;

;

处置惩罚数据的Bean:(namehandler.java);

package hello;;

public class NameHandler;

{;

private String username;;

public NameHandler() {;

username = null;;

};

public void setUsername( String name ) {;

username = name;;

};

public String getUsername() {;

return username;;

};

};

建立HTML表单;

一个HTML的窗分为三个部分:标签,输入措施,提交按钮发数据到办事器。一样平常的HTML页面里,是这么写的,在其他的页面里的action属性可能是其他特殊的CGI法度榜样或者其他能处置惩罚数据的法度榜样,那么在JSP里边是怎么用的呢,呵,假如你想把数据发到Bean里的话那么你可以省略action里边的东里了,直接写标签或者其他特定的JSP文件了。接下来的那些表单和通俗的HTML差不多了,的措施,然后加一个提交按钮,可能还有一个Reset按钮,对了,别忘了,还得给每一个input表单加一个名字。;

这么写:;

应用GET和POST措施;

用GET和POST措施可以发数据到办事器,在JSP法度榜样中GET和POST措施可以发数据到Bean、servlet、或者其他办事器真个组件。;

理论上说,GET是从办事器上哀求数据,POST是发送数据到办事器。事实上,GET措施是把数据参数行列步队(query string)加到一个URL上,值和表单是逐一对应的。比如说,name=John。在行列步队里,值和表单用一个&符号分开,空格用+号调换,特殊的符号转换成十六进制的代码。由于这一行列步队在URL里边,这样行列步队的参数就能看获得,可以被记录下来,或变动。平日GET措施还限定字符的大年夜小。事实上POST措施可以没有光阴限定的通报数据到办事器,用户在浏览器端是看不到这一历程的,以是POST措施对照得当用于发送一个保密的(比如信用卡号)或者对照大年夜量的数据到办事器。;

写Bean;

假如JSP法度榜样用到了Bean,你就得按照JavaBeans API的阐明设计你的Bean。;

记着下面两个关键部分。;

假如JSP法度榜样里用标签,那你就得在Bean里边共同的GET措施。;

假如JSP法度榜样进而用 标签,那你就得在Bean里边共同的Set措施。;

设置参数到Bean或者从里边取参数将在今后的部分具体先容。;

传数据到Bean;

把HTML表单的数据传到Bean里必要两个事情:;

· 用标签创建或者定位到Bean;

· 在Bean里面用设置属性值;

第一步用标签创建或者定位到Bean必然要用在之前,首先按照你指定的名字查找Bean,假如没找到,会给你指定一个。容许在一个JSP文件中创建一个Bean,然后再另一个文件中调用,这就给了Bean一个很广泛的运行空间。;

第二步在Bean里面用设置属性值。最简单的措施是把值定义成与表单名相共同。举个例子,假如你把表单名定义成“username那么,你就在Bean里定义属性“username然后用措施getUsername和setUsername。;

当然也可以定义成不合的名字,只要你不觉得麻烦。谁让你影象力好呢!;

您可能还会对下面的文章感兴趣: