仓酷云

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

[学习教程] JAVA网页设计利用JavaBean高效处置JSP(3)

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊jsform处置、静态内容和bean通讯

  列表4展现了一个详细的JSPJavaBean--LoginJSPBean,用来完成特定的页面处置

  列表4。LoginJSPBean


packagelbm.examples;

importlbm.jsputil.*;
importjava.util.*;

publicclassLoginJSPBeanextendsAbstractJSPBean{

publicstaticfinalStringPAGE_CODE="login";

privateString_voterId;
privateString_password;
privateVoter_voter=null;

publicLoginJSPBean(){
}

publicvoidsetVoterId(StringnewVoterId){
_voterId=newVoterId;
}

publicStringgetVoterId(){
if(_voterId==null)return"";
elsereturn_voterId;
}

publicvoidsetPassword(StringnewPassword){
_password=newPassword;
}

publicStringgetPassword(){
if(_password==null)return"";
elsereturn_password;
}

publicVotergetVoter(){
return_voter;
}

protectedvoidbeanProcess()throwsjava.io.IOException{
if(_voterId==null||_voterId.equals("")){
addErrorMsg("Votermustbeentered");
}

if(_password==null||_password.equals("")){
addErrorMsg("Passwordmustbeentered");
}

if(getState()!=ERR){
file://Ifallthefieldsareentered,trytologinthevoter
Votervoter=VoteDB.login(_voterId,_password);
if(voter==null){
addErrorMsg("UnabletoauthenticatetheVoter.Pleasetryagain.");
}
else{
_voter=voter;

if(_voter.getVotedForCandidate()!=null){
//ifthevoterhasalreadyvoted,sendthevotertothelastpage
redirect("confirmation.jsp");
}
else{
//gototheVotepage
redirect("vote.jsp");
}
}
}
}

protectedvoidbeanFirstPassProcess()throwsjava.io.IOException{
}

protectedvoidbeanFooterProcess()throwsjava.io.IOException{
}

protectedStringgetJSPCode(){
returnPAGE_CODE;
}
}



  察看LoginJSPBean类中的set和get办法。就象下面说起的,它们用作静态的婚配,而且用来在form字段(request参数)和bean属性间传送值。

  列表4中的beanProcess()办法,展现了form处置的一些基础点。这个办法产生在页面输入前,在第二和全体厥后的页面挪用时代实行。这意味着它将仅在用户按下登录按钮而且提交form后实行。

  你起首要考证voteId和password的输出,发生的毛病将经由过程addErrorMsg办法纪录上去。这个办法设置AbstractJSPBean类的errorMsg属性。该属性可被JSP用来显现用户的毛病:

   <jsp:getPropertyname="_loginJSPBean"property="errorMsg"/>

  假如数据的输出乐成经由过程,beanProcess()办法将会挪用数据库来考证用户。最初,它经由过程挪用AbstractJSPBean类中完成的redirect()办法,将哀求重定向到响应的页面。

  以下我们将会商VoteJSPBean类中的一些办法。它们将能够注释该架构的一些别的方面,比方JSPJavaBean之间的通讯和使用的流程把持。

  列表5。VoteJSPBean类中的beanFirstPassProcess()


protectedvoidbeanFirstPassProcess()throwsjava.io.IOException{
//gettheVoterfromLoginpage
_voter=null;

LoginJSPBeanloginJSPBean=
(LoginJSPBean)getSharedSessionBean().getJSPBean(LoginJSPBean.PAGE_CODE);

if(loginJSPBean!=null){
_voter=loginJSPBean.getVoter();
}

if(_voter==null){
//voterisnotloggedinyet.SendittoLoginpage
setState(NEW);
redirect("login.jsp");
}
}



以上的办法利用了AbstractJSPBean类中_sharedSessionBean对象。SharedSessionBean类经由过程利用一个复杂的办法,让一切的JSPJavaBean对象在一个HTTPsession中举行通讯。它保留有一个session内的全体JSPJavaBean中的一个Map。Map是JavaCollections框架的一个接口,它是Java1.2推出的。对熟习Java1.1的人来讲,它与Hashtable十分相似。一个JSPJavaBean的主键是它的PAGE_CODE,它作为一个常数存储在每一个JSPJavaBean类中。

  在这个例子中,beanFirstPassProcess()办法起首定位到LoginJSPBean对象。接着,它由LoginJSPBean对象中失掉Voter对象,而且存储一个到它的援用,以便今后利用。假如Voter为null,这意味着用户没有起首登录就进进Voter页面,因而它重定向到登录页面。这是一个使用流程把持的复杂例子。你能够计划更庞大的办法,比方利用一个智能的调剂程序,不外这些会商已超越了本文的局限。

  列表6。VoteJSPBean类的getCandidateList()办法


publicStringgetCandidateList(){
StringBuffercandidateList=newStringBuffer();
Candidatecandidate;

Iteratorcandidates=VoteDB.getCandidates();
while(candidates.hasNext()){
candidate=(Candidate)candidates.next();

candidateList.append("<inputtype=radioname="candidateName"value="");
candidateList.append(candidate.getName());
candidateList.append("">");
candidateList.append(candidate.getName());
candidateList.append("<br>
");
}

returncandidateList.toString();
}



  以上的getCandidateList()办法被vote.jsp挪用,经由过程以下的办法:

   <jsp:getPropertyname="_voteJSPBean"property="candidateList"/>

  依据由数据库失掉的内容分歧,该办法供应分歧的静态HTML内容输入。它必要开辟JavaBean的Java编程者明白一些HTML常识。

  你也能够利用一个使用HTML的自力库来格局化HTML,它能够承受一个预界说的输出。比方Iterator,然后以预界说的格局发生HTML输入。另外一个办法是利用标签库。

对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。
不帅 该用户已被删除
沙发
发表于 2015-1-20 21:00:59 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
再见西城 该用户已被删除
板凳
发表于 2015-1-24 15:45:56 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-31 23:40:06 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-5 12:09:23 | 只看该作者
是一种为 Internet发展的计算机语言
若天明 该用户已被删除
6#
发表于 2015-2-6 15:46:09 | 只看该作者
是一种突破用户端机器环境和CPU
分手快乐 该用户已被删除
7#
发表于 2015-2-9 22:37:20 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
第二个灵魂 该用户已被删除
8#
发表于 2015-2-25 15:00:43 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-7 22:20:33 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
简单生活 该用户已被删除
10#
发表于 2015-3-10 22:09:45 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
小魔女 该用户已被删除
11#
发表于 2015-3-11 04:41:25 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
只想知道 该用户已被删除
12#
发表于 2015-3-17 20:41:03 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
飘灵儿 该用户已被删除
13#
发表于 2015-3-25 00:29:08 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 09:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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