仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 437|回复: 12
打印 上一主题 下一主题

[学习教程] JAVA编程:JSP由浅进深(11)标志库

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
他们对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的企业模块,专门针对企业数据库服务器的连接维护。
不帅 该用户已被删除
沙发
发表于 2015-1-21 08:37:23 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
莫相离 该用户已被删除
板凳
发表于 2015-1-27 21:46:57 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
地板
发表于 2015-2-5 09:41:37 | 只看该作者
是一种为 Internet发展的计算机语言
若相依 该用户已被删除
5#
发表于 2015-2-7 12:37:41 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
山那边是海 该用户已被删除
6#
发表于 2015-2-9 22:42:14 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
透明 该用户已被删除
7#
发表于 2015-2-13 02:37:48 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
再现理想 该用户已被删除
8#
发表于 2015-2-14 05:31:18 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
冷月葬花魂 该用户已被删除
9#
发表于 2015-3-1 15:22:34 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
admin 该用户已被删除
10#
发表于 2015-3-10 19:35:46 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
精灵巫婆 该用户已被删除
11#
发表于 2015-3-11 04:14:35 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
飘灵儿 该用户已被删除
12#
发表于 2015-3-17 20:10:17 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
活着的死人 该用户已被删除
13#
发表于 2015-3-24 23:38:29 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-21 05:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表