您当前的位置: AG亚游集团 > 网站编程 > JSP教程 > servlet+bean+jsp综合实例

servlet+bean+jsp综合实例

作者:guanchaofeng 来源:本站整理 发布时间: 2009-11-12 21:54 点击: 次
本文讨论JavaServlet和JavaServerPage这两种技术,它们可以用于隔离用户界面与业务逻辑,实现多层次的Web应用程序。我们用一个简单的应用来演示如何实现这种隔离,以及如何实现快速的部署和改变Web应用程序。 说明本文说明如何隔离表现层与业务逻辑,实现多层

AG亚游集团,从外观看,前保险杆、尾翼和车底分流器加装了碳纤维处理,车门黑边窗附件也采用碳纤维材质打造,而车尾分流器与扰流板均使用聚氨酯材料,前轮规格245/35 R20,后轮规格275/30 R20。

另外,行政案件的审判,一定要在法定的审限内结案,严格杜绝随意拖延审理,久拖不决。行政案件的审理期限往往过长,有些案子在延长审理期限后,仍然不能按时结案。随着行政诉讼数量明显增加,案多人少的矛盾在行政案件中表现得尤为明显。法院尤其基层法院应保障行政案件在合理的审限内,及时审结;同时要强化行政诉讼案件首长出庭应诉制度,慎用行政案件中的调解制度。尤其在拆迁案件中,要防止个别行政机关滥用调解,避免违法成本很低的现象发生。两万元投资然而,无论国民党现在是三箭齐发还是乱箭打鸟,对民进党当局而言,民意是最严峻的考验。“一例一休”地雷刚扫除,现在还有核灾食品未爆弹。事实上,国际上并未对日本核灾食品全面解禁,虽然不以县为全面限制进口的对象,却仍限制某些品项不得进口。大陆、韩国等仍有严格的进口限制,美国对福岛、岩手、宫城、茨城、栃木的部分农水产品仍然禁止进口,台湾当然也可以对日本说不。

servlet+bean+jsp综合实例

  本文讨论JavaServlet和JavaServerPage这两种技术,它们可以用于隔离用户界面与业务逻辑,实现多层次的Web应用程序。我们用一个简单的应用来演示如何实现这种隔离,以及如何实现快速的部署和改变Web应用程序。
  
  说明本文说明如何隔离表现层与业务逻辑,实现多层次的Web应用程序
  
  正文适用操作系统:
  
  跨平台
  
  隔离表现层与业务逻辑,实现多层次的Web应用程序
  
  引言
  
  在建立服务器端Web应用程序时,将表现层与业务逻辑分离可以更容易的创建动态的Web页面,同时也可以让没有应用开发经验的Web页面设计人员能非常容易的改变Web站点的外观。对于一个内容需要频繁更新的Web站点,这就意味着更新周期更短,可以以最快的速度带给本站点的访问者以最新的内容。
  
  早期的Web应用程序结构都很简单,通常用户界面与业务逻辑都混合在一起。修改这种应用的任何一方,都将使维护整个应用程序变得十分困难。将用户界面与业务逻辑隔离就简化了应用程序的维护,从而可以更快更容易的改变应用程序。本文讨论JavaServlet和JavaServerPage这两种技术,它们可以用于隔离用户界面与业务逻辑。我们用一个简单的应用来演示如何实现这种隔离,以及如何实现快速的部署和改变应用程序。
  
  首先,我们简介一下JavaServlet和JSP及它们如何在一个Web应用中协调工作。
  
  什么是Servlet?
  
  Servlet是平台独立的Java服务器端组件。它以多种方式来扩展服务器端的功能,同时将维护和支持的开销也降到最小。Servlet不同于CGI脚本,它被编译成Java的字节码(bytecode),所以它没有引入任何与平台有关的因素,从而实现了真正的“WriteOnce,RunAnywhere”。
  
  什么是JavaServerPage(JSP)?
  
  JSP是建立含有动态内容的Web应用程序的Java技术。一个JSP页面是一个文本文档,包含了静态的HTML内容和动态的动作标记。这些动作描述了如何处理返回给客户的响应。在应用开发阶段,JSP与Servlet差异很大,然而在运行时,它被编译成Servlet,在JSP引擎中执行。JSP引擎存在于任何一种Web应用服务器中,如WebSphereV3.x。
  
  Servlet和JSP协同工作
  
  从理论上讲,用户可以只使用Servlet来接收从Web浏览器发来的HTTP请求,Servlet动态的处理请求(可能是查询后端系统来完成请求),然后在Servlet中直接发送HTML或XML文档的响应给浏览器。
  
  上述方法在原理上是可行的,但它把Web页面的产生也交由JavaServlet来做。如果Web页面的设计人员要改变页面的外观就必须编辑、重新编译Servlet。这将要求动态Web页面的设计人员需要有应用程序开发经验。显然,我们需要将Web页面的显示与Servlet处理请求相隔离。
  
  满足上述需求的方法是采纳Model-View-Controller(MVC)模型来建立Web应用程序。在MVC模型中,后端系统是我们的Model,用来创建用户响应界面的模板是View,而把这两者联系起来的纽带是Controller。JSP完美的对应于MVC模式中的View,Servlet包含了管理如何处理请求的逻辑,实际上就成为了Controller,而系统已有的业务规则就是Model。
  
  我们来看一个例子,它使用了MVC模式实现表现层和业务逻辑的隔离,该例实现了从浏览器访问3270后端系统的一个应用。
  
  示例程序的体系结构如图1所示。浏览器使用HTML和JSP实现了View,一组在应用服务器中的JavaServlet提供了Controller,后端的CICS等应用提供了业务规则或称作Model。Servlet、HTML、JSP页面调用的流程如图2所示,并附有详细的文字叙述。
  
  示例应用流程详解
  
  发起请求
  
  用户用浏览器载入初始HTML页面,该页面是由Web使能的应用服务器提供的。应用服务器以与WebServer相同的方式来进行Web文件服务。这个页面是整个Web应用的入口点。它使用了HTMLFORMaction标记来访问Servlet。在我们的例子中,这个Servlet是LoginServlet。同样附加的参数也随着FORM的动作发给Servlet。
  
  下面是一段例子:
  
  <FORMaction="/localhost:8080/servlet/LoginServlet"method="POST">
  
  <inputtype="text"size="30"name="firstname">
  
  <inputtype="text"size="30"name="surname">
  
  .
  
  .
  
  <inputtype=hiddenname=hostvalue="localhost">
  
  <inputtype=hiddenname=portvalue="9876">
  
  <inputtype=submitvalue="Submit">
  
  </FORM>
  
  请求一般是以HTTP或HTTPS来发起,然后由Servlet来处理。它使用HttpServletRequest.getParameter()方法来访问FORM表单提供的参数。
  
  Servlet然后测试用户是否有Session。Session用来将从远程客户端来的一系列请求关联起来,这对于无状态保持功能的HTTP协议是必须的。
  
  Session可用如下方法来创建:
  
  HttpSessionsession=req.getSession(true)
  
  ;
  
  对象可以被加入到Session中去:
  
  session.putValue(“host”,hostToConnectTo);
  
  session.putValue(“port”,tmpPort);
  
  Controller
  
  Servlet负责调用处理用户请求的JavaBean。它也负责创建对用户的响应。在我们建议的应用结构中,响应将被传递到JSP。因此,Servlet被叫做Controller。
  
  回到我们的例子。下面的代码实例化一个类型CICSEmulator的新类叫newEmulator。这是一个由第三方厂商提供的3270终端仿真类,它提供了一组对仿真终端直接操纵的方法(类似的类也可以用IBMVisualAgeforJava企业版中的EnterpriseAccessBuilder来生成)。newEmulator可以从Session中传递变量,此例中变量为远程主机和端口。
  
  CICSEmulatornewEmulator=newCICSEmulator();
  
  newEmulator.setTN3270Port(portToConnectTo);
  
  newEmulator.setTN3270Host(hostToConnectTo);
  
  第二个实例化的类是一个JavaBean叫做AcctDetails。它是一个数据访问Bean,它将向后端的系统查找和获取数据。AcctDetails将newEmulator来作为它的3270终端,然后传递变量(姓和名)给它的set方法。
  
  AcctDetailsgetAccountDetails=newAcctDetails();
  
  getAccountDetails.set3270Emulator(newEmulator);
  
  getAccountDetails.setSurname(inputsurname);
  
  getAccountDetails.setFirstName(inputfirstname);
  
  数据访问Bean执行请求
  
  Bean实例getAccountDetails的方法performWork(),它连接后端3270系统,并基于用户提供的姓名来获取用户帐户的细节。
  
  try{
  
  getAccountDetails.performWork();
  
  session.putValue("resultsBean",getAccountDetails);
  
  }
  
  catch(IllegalStateExceptione){
  
  /handletheerror
  
  }
  
  如果执行成功,Servlet把getAccountDetailsBean放入用户的session中。这个Bean的标识符为resultsBean,它包含了用户查询的结果,这些结果可以用Bean的get方法来访问。
  
  控制权传给JSP
  
  我们已经提到,MVC模式的重点就在于它隔离了表现层与业务逻辑。Servlet负责处理请求,它会去调用数据访问Bean,数据访问BeangetAccountDetails包含了从后端系统访问和获取数据的服务器端逻辑。后端系统(Model)包含了业务规则。而对用户的响应(View)是由JSP创建出来的。
  
  Servlet将request和response对象传递给JSP时遵循如下的语法:
  
  getServletContext().getRequestDispatcher(“/jspDemo/login.jsp”).forward(req,res);
  
  Forward方法允许Servlet将响应的处理传给第三方。它的参数request和response必须就是调用servlet的service方法时传递的对象。它使用getRequestDispatcher对象来得到requestDispatcher,从而确定了到目的JSP的路径。以“/”开始的JSP路径名被解释成相对于当前应用上下文环境的根路径。
  
  访问ResultsBean
  
  JSP负责创建对用户的响应,它可以访问getAccountDetailsBean的数据(使用标识符resultsBean来引用)。这些在HTML中用如下语法来完成:
  
  <HTML>
  
  <BODY>
  
  .
  
  .
  
  <jsp:useBeanid="resultsBean"scope="session"class="acct.AcctDetails"/>
  
  <jsp:getPropertyname="resultsBean"property="*"/>
  
  其中<JSP:useBean>是去查找已存在的对象(本例中是resultsBean)。本例中我们把getAccountDetailsbean放入session中并命名为resultsBean。于是上述JSP语句就从session中得到了resultsBean,然后就可以通过访问resultsBean的get方法来得到它的数据。
  
  也可以通过如下JSP语句来实现:
  
  <%=resultsBean.getDetails_Title()%>
  
  <%=resultsBean.getDetails_Initial()%>
  
  上述语句也是JSP表达式的一个例子。在<%=和%>之间所有的内容被放入JSP引擎中处理,结果被作为输出送给JSP文件。上述的两个表达式将执行resultsBean的get方法来显示用户的title和Middle_Initial。同任何一种脚本语言(如Javascript)一样,JSP代码可以在HTML页面中任意嵌入。JSP的语法也非常简单,这意味着JSP可以由Web页面设计人员来维护而不是应用开发人员。开发人员负责的是servlet和数据访问Bean。在JSP中的任何改变不会影响到servlet,反之亦然。
  
  响应
  
  JSP在请求时被动态翻译成JavaServlet,并在应用服务器中缓存。后续JSP请求的响应将明显加速。用户收到的最终响应都是HTML页面(以.jsp为扩展名),这些页面包含了动态产生的内容。
  
  总结:
  
  在本文示例的应用结构中,客户端浏览器发起的请求直接到了servlet,然后用数据访问Bean来处理请求,从后端系统获取数据。Servlet将结果包装进resultsBean,把它放入session中,然后调用JSP来处理这个响应。Servlet是初始请求到产生响应的总体控制者。
  
  JSP决定产生给用户响应的内容。JSP只应当包含如何格式化表现层的逻辑。这种隔离的优点在于它创建了在应用中可重用的、可移植的、平台独立的组件,这些组件可以作为将来更大的应用的一部分。
  
  隔离Servlet开发与JSP显示为应用开发人员和Web页面设计人员彼此独立的工作带来了极大的方便。同样,这种方法也完美的符合了本文所介绍的MVC设计模型。

分享到:
本文"servlet+bean+jsp综合实例"由远航站长收集整理而来,仅供大家学习与参考使用。更多AG亚游集团尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 广告合作 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(AG亚游集团). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类AG亚游集团.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4
川航航班飞着飞着驾驶舱玻璃没了 紧急着陆创奇迹 马闻早报丨世界马术运动会将创造4亿美元收益 社科院研究员:GDP注水有体制原因 挤水分将继续 不打不相识!小科比自曝曾讨厌威少 因啥变了? 特朗普:习主席和我永远是朋友 中美都有美好未来! 中国国防部长魏凤和将于年内访问印度 周强:努力让群众在每一个司法案件中感受公平正义 白宫新经济顾问炮轰美联储 未来恐影响加息节奏? 耀才证券植耀辉:科技股反弹 港股假前续拉锯 巴勒斯坦总统阿巴斯高烧住院 不久前接受耳部手术 并购狂人卸任菲亚特CEO不到一周因病过世 享年66岁 蓝翔电竞队员ID走心:汽修、美发、挖掘机齐上阵
心疼!骑士输球还瞬间倒下俩人 咋整下场打湖人 脸书允许印度证监会访问用户数据 追踪内幕交易者 瑞安航空CEO表示油价上涨将使一些航空公司无法过冬 澳媒:旅行住院摩纳哥最贵 一晚平均花2.3万元 大陆几亿网民反“独”声高涨 蔡英文遭劝:别轻视 ofo抵押车辆获阿里17.7亿元投资?回应:不予置评 李春江:赢在气势拼劲 失误比山东少10个很关键 “北斗”发力 动态厘米级定位来了 詹姆斯想超乔丹唯一路径在这!铁猪队立牌招募 后C罗时代按兵不动 皇马是要放弃巨星策略了? 感人!李章洙赛后动情落泪 被球员们高高抛起|GIF 我国原初引力波探测站正建设 预计五年内出成果
前方|重回奥古斯塔 伍兹:回来就是最大的改变 网约车乱象调查:几百元注册马甲车 暴露乘客隐私 普伊格罗马赛拉伤臀部肌肉 无奈退出法网休息治疗 [新浪彩票]24日竞彩异常指数:巴塞尔难赢球 浙江绿城欲关窗前再签新援 为印度联赛中场开高价 人大回应红十字会信任危机:设独立第三方机构审计 沪媒:足协杯战乙级队 申花上港被迫0外援胜算几成? 无奈!中超已告别菜地 可中甲球员还得在沙滩上踢球 美国空军或采购新造F15战机 可挂载28枚SDB炸弹 冬天摆地摊卖什么最好 在家挣钱的活 在农村养殖什么赚钱 养20头牛一年赚多少钱 AG亚游集团