JAVA网站制作之JSP简明教程:举动标签与实例
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。js|教程在进修怎样用Java编写你的JSP页之前,你必要懂得叫做“举动(actions)”的服务器真个JSP元素,它实行服务器真个义务而不需我们编写Java代码。action标签能够被初级的页面计划者利用,那些大概其实不熟习Java而又想显现存于JavaBeans组件中的值的剧本编写者也能够利用它。正如后面提到的,年夜多半标签都是基于以组件为中央的web开辟模子的。起首,我要形貌一些JSP供应的action标签,然后展现一个仅仅利用标签来从一个JavaBean中显现信息的JSP页的例子DD不必要编写Java代码。载进一个JavaBean
记着,JSP模子离不开JavaBeans,因而多半JSP标签假定你将用到存于bean中的信息。在你用到一个JavaBean之前,你必需挪用标签<jsp:usebean>来声明你将利用它。前面你将学到,此标签是不是会在页面内天生一个新的bean实例(这个实例大概已在后面的会话或使用中天生了),取决于你为这个bean声明的感化域(性命周期)。
<jsp:usebean>标签要包括几个参数,它们分离申明:
该JavaBean所附属的类
该JavaBean实例的称号
该JavaBean的感化域(性命周期)
比方:
<jsp:usebeanID="myBeanInstance"CLASS="com.myPackage.myBeanClass"SCOPE="request">
...body...
</jsp:usebean>
在这里<jsp:usebean>标签后是一段在bean创立后被挪用的主体部分,然后是一个停止标签</jsp:usebean>。假如这个主体是空的,你也能够选择上面这类复杂的情势:
<jsp:usebeanID="myBeanInstance"CLASS="com.myPackage.myBeanClass"SCOPE="request"/>
这个示例程序会天生一个在com.myPackage.myBeanClass类中界说过的bean的实例,在该页中定名为myBeanInstance;它只在其性命周期DD对此JSP页的一个HTTP哀求以内存在。这个bean如今就能够被该页利用了。
初始化一个JavaBean
并非一切的JavaBeans都能够被复杂的创立然后利用,有一些还必要在利用之行进行初始化。在<jsp:useBean>和</jsp:useBean>标签的主体部分中,你能够用<jsp:setProperty>标签初始化bean的属性。你能够把bean的属性设置为指定的值或从HTTP哀求中传送来的值,好比来自一个已提交的表单。
要初始化bean的属性myProperty为一个指定值,你能够用上面的格局:
<jsp:usebeanID="myBeanInstance"CLASS="com.myPackage.myBeanClass"SCOPE="request">
<jsp:setPropertyNAME="myBeanInstance"PROPERTY="myProperty"VALUE="123"/>
</jsp:usebean>
上面的格局用来把一样的bean属性初始化为从HTML表单位素或一个URL查询字串中传送来的值:
<jsp:usebeanID="myBeanInstance"CLASS="com.myPackage.myBeanClass"SCOPE="request">
<jsp:setPropertyNAME="myBeanInstance"PROPERTY="myProperty"
PARAM="myFormElementName"/>
</jsp:usebean>
注重,不克不及在一个<jsp:setProperty>标签中同时利用VALUE和PARAM属性标记。
别的,在<jsp:usebean>举动的主体中利用<jsp:setProperty>时,在页面内你能够独自利用它。在此之前,必须先用<jsp:useBean>标签订义一个有得当感化域的bean。
Bean的感化域
<jsp:useBean>标签的SCOPE属性完成很复杂的功效:它设置相干的bean的感化域,有四个大概的值,以下表(表1)所示。你能够依据情形在你的JSP使用中利用具有感化域的JavaBeans。
表1.JSP中的感化域及响应的保持情形
感化域形貌
Page对象只可被来自它地点页的一个客户机程序存取。
request对象在一个客户哀求的保存工夫内被一个客户机程序存取。
session对象在全部用户会话的保存工夫内被来自该使用程序中任何中央的一个客户机程序存取。
application对象在使用程序的保存工夫内能够被使用程序内来自任何页面的客户机程序存取。
分歧的对象保存周期会影响到<jsp:useBean>标签怎样创立或从头猎取bean实例。当客户哀求停止,输入被送回扫瞄器后,pagebean和requestbean就会被烧毁。以是<jsp:useBean>标签必需为每一个新的哀求创立一个新的实例。只管云云,当你创立一个新的sessionbean,这个bean的实例会保存到会话的保存周期停止,或直到你明白烧毁它为止。因此<jsp:useBean>标签会在以后会话中不存在实例时创立bean的一个新的实例;不然,它就只是复杂地从头获得以后实例。一样的划定规矩也利用于使用程序的JavaBeans,除非它们在使用程序从头载进或服务重视新启动时停止。
假如你是SSJS开辟者,吸取一些SSJS会话办理的类似的地方是很有匡助的。在SSJS中,pagebean与request对象的感化域不异;sessionbean与client对象感化域不异;applicationbean与project对象感化域不异。比方,假如你将数值存储在一个sessionbean中,以后你就能够单用户地从任何一个JSP页存取这个数值,就像在SSJS中把数值存在client对象中的性子一样。但是,JSP供应了比SSJS加倍天真的形态坚持机制,由于你可以界说任何数目的page、request、session和applicationbeans。而在SSJS中,request、client和project对象都是单一的。
注重,在SSJS中没有与requestbean绝对应的对象。这是由于与SSJS分歧,JSP同意在一个客户哀求内实行多个页面。前面将对这一特征作更多会商。
显现静态内容
一旦创立了一个bean,你就能够用它在JSP页中天生静态内容。JSP界说了一个<jsp:getProperty>标签用来显现bean的属性,这个bean能够是在页面内用<jsp:useBean>标签订义的,也能够是先前在使用程序中被界说的sessionbean或applicationbean。<jsp:getProperty>标签有两个参数:NAME和PROPERTY。NAME指明先前在<jsp:useBean>标签中界说的源对象,PROPERTY暗示要显现的该对象的属性值。比方:
<jsp:usebeanID="myBeanInstance"CLASS="com.myPackage.myBeanClass"SCOPE="request"/>
<H2>myProp=<jsp:getPropertyNAME="myBeanInstance"PROPERTY="myProp"></H2>
正如你看到的,你能够把HTML标签与JSP标签夹杂利用来静态地发生和布置HTML内容。
重定向到一个内部页面
JSP界说了一个标签<jsp:request>,你可使用它来重定向到一个内部页面,有两种办法可供选择:指定FORWARD参数或指定INCLUDE参数。
利用FORWARD参数,能够重定向到一个无效的URL。这类办法能够无效地在重定向产生处中断以后页的处置历程,但在这之前的处置还要举行。这一点与CGI、SSJS、ASP和JavaScript中利用的典范的重定向非常类似。
利用INCLUDE参数,你不但能够重定向到另外一网页,并且当完成了被挪用页内的处置后还能从头前往挪用页。举个例子,你挪用另外一个可静态天生HTML的JSP页,让它天生HTML代码,而当前往时,这些HTML会被拔出挪用页中的<jsp:request>标签处。实践上,被挪用页其实不晓得它正被另外一JSP页挪用,它只是看到一个HTTP哀求,然后前往一些HTML文本作为呼应。
请记着,你可使用INCLUDE办法来会见静态的HTML页、JSP页、JavaServlets、SSJS页和ASP页等任何呼应HTTP哀求的资本,以天生一个你想要包括于你的网页中的呼应。可是注重,假如你所会见的资本前往一个完全的HTML页,包括有<HTML>和<BODY>标签,那末你极可能得不到你想要的了局。
一个复杂的例子
在例1及第了一个范例为jsp.beans.samples.SuperSimpleBean的bean的例子,定名为ssb。因为已将其感化域设定为session,以是它关于其他的usersession是可用的。换句话说,在它创立后,我能够在使用程序的任何一个页顶用称号来会见它。我还将它的属性初始化为counter。然后就能够用<jsp:getProperty>标签在HTML页中显现counter的值了。在给定一些特定的bean属性称号后,上面的代码关于HTML计划者来讲是很简单编写的。
例1
<HTML>
<HEAD>
<METANAME="GENERATOR"Content="NetObjectsScriptBuilder2.01">
<TITLE>CounterPage</TITLE>
</HEAD>
<BODY>
<jsp:useBeanID="ssb"SCOPE="session"CLASS="jsp.beans.samples.SuperSimpleBean"/>
<jsp:setPropertyNAME="ssb"PROPERTY="counter"VALUE="2"/>
<h2>Counter:<jsp:getPropertyNAME="ssb"PROPERTY="counter"/></h2>
</BODY>
</HTML>
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢? 是一种使用者不需花费很多时间学习的语言 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 是一种语言,用以产生「小应用程序(Applet(s))
页:
[1]