JAVA编程:JSP由浅进深(11)标志库
他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。js JSP1.1提出了一种扩大的JSP标记的办法,这类办法定名为“标记库”。这些库同意别的的一些相似于jsp:include大概jsp:forward的标记,可是它们不是以jsp:为前缀的而且还附件一些特征。为了先容标记库,在本教程中我们利用Blazix标记库作为例子。这个标记库只能用在Blazix服务器中,这个服务器你能够收费下载。
每个标记库都有它本人的标记库特别的文档。为了利用标记库,你可使用"taglib"directive来指出标记库“description”处在甚么中央。关于Blazix标记库而言,directive以下:
<%@taglibprefix="blx"uri="/blx.tld"%>
下面者句中“uri”就是指出了标记库形貌地点的中央。标记库的前缀是分歧的。这个指令的意义是说我们可使用blx:来利用库中的标记。Blazix标记库供应了一个blx:getProperty标记。这个标记能够同意用户编纂表双数据。如今,在GetName.jsp文件中,我们增添一个jsp:useBean而且将表单安排在blx:getProperty中:
<%@taglibprefix="blx"uri="/blx.tld"%>
<jsp:useBeanid="user"class="UserData"scope="session"/>
<HTML>
<BODY>
<blx:getPropertyname="user"property="*">
<FORMMETHOD=POSTACTION="SaveName.jsp">
Whatsyourname?<INPUTTYPE=TEXTNAME=usernameSIZE=20><BR>
Whatsyoure-mailaddress?<INPUTTYPE=TEXTNAME=emailSIZE=20><BR>
Whatsyourage?<INPUTTYPE=TEXTNAME=ageSIZE=4>
<P><INPUTTYPE=SUBMIT>
</FORM>
</blx:getProperty>
</BODY>
</HTML>
从下面的代码中我们能够发明blx:getProperty不是以/>开头的,而是用来开头。这条语句将一切的表单输出地区输出到blx:getProperty中,如许它们就能够被标记库准确地修正。
接着创建一个从GetName.jsp到NextPage.jsp的毗连,你将发明bean的数据主动显现在输出地区中。以是如今用户能够编纂数据了。
至此,我们另有一些成绩还没有廓清。起首,用户不克不及扫除名字地区;并且假如用户在“age”地区键进一个不合错误的内容(不是一个效果的整型数值),Java非常毛病就会产生。
如今,我们将利用Blazix标记库中的别的标记来办理这个成绩。Blazie供应了一个blx:setProperty标记来办理这个成绩。Blx:setProperty同意我们界说一个非常毛病处置办法。假如有非常毛病产生,我们能够为用户搜集一个毛病信息而且持续处置。
上面是我们修正后的SaveName.jsp,它能够处置任何毛病。它不但能够显现GetName.jsp而且在其上能够键进准确的数据,并且主动地毗连到NextPage.jsp:
<%@taglibprefix="blx"uri="/blx.tld"%>
<%!
booleanhaveError;
StringBuffererrors;
publicvoiderrorHandler(Stringfield,
Stringvalue,
Exceptionex)
{
haveError=true;
if(errors==null)
errors=newStringBuffer();
else
errors.append("<P>");
errors.append("<P>Valueforfield""+
field+""isinvalid.");
if(exinstanceofjava.lang.NumberFormatException)
errors.append("Thevaluemustbeanumber.");
}
%>
<%
//Variablesmustbeinitializedoutsidedeclaration!
haveError=false;
errors=null;
%>
---------------
<BODY>
<jsp:useBeanid="user"class="UserData"scope="session"/>
<blx:setPropertyname="user"
property="*"
onError="errorHandler"/>
<%
if(haveError){
out.println(errors.toString());
pageContext.include("GetName.jsp");
}else
pageContext.forward("NextPage.jsp");
%>
</BODY>
</HTML>
这里要注重haveError和errors必需每次都从头初始化,由于它们在声明的内部被初始化。
如今,假如一个毛病产生在blx:setProperty处置的历程,我们就显现这个毛病并再次回到GetName.jsp以利用户能够校订这个毛病。假如没有毛病产生,我们就主动让用户毗连到NextPage.jsp。
假如你仔细点你还能够发明表单仍有一个成绩,即“age”入手下手显现空而不是0。这个成绩我们能够经由过程增添“emptyInt=0”到blx:getProperty和blx:setProperty标记中,如许bean地区就被初始化为0了。假如键进的岁数不是一个无效的数值,那末我们就利用0来标记空字符。
别的一个小的成绩是假如有毛病呈现而且我们旧书包括“GetName.jsp”的时分,就失掉两个"<HTML>"标记。关于这个成绩一个完善的办理办法是往失落out.println,并按以下传送毛病:
<%
if(haveError){
request.setAttribute("errors",
errors.toString());
pageContext.forward("GetName.jsp");
}else
pageContext.forward("NextPage.jsp");
%>
那末我们能够在GetName.jsp实行“request.getAttribute”,而且假如前往数值为非空,就显现毛病。这个就留着作为本节教程的实习吧。
最初,再说说本节的实习吧,起首方才说的内容。还要浏览标记库文档中的SQL标记,然后创立一个数据库表格;再编写一个JSP文件,其上有一个FORM和表单上有一个选择框;接着利用SQL标记来依据数据库表格制造选择框
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 是一种为 Internet发展的计算机语言 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种语言,用以产生「小应用程序(Applet(s)) 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
页:
[1]