基于SSH架构模式的应用开发.ppt





《基于SSH架构模式的应用开发.ppt》由会员分享,可在线阅读,更多相关《基于SSH架构模式的应用开发.ppt(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于基于SSHSSH架构模式的应用开发架构模式的应用开发郑州大学信息工程学院1.MVC架构模式的简单介绍。2.Struts工作原理及实例开发。3.Spring实例开发。4.Hibernate数据库持久层技术。主要内容主要内容MVC是Model-View-Controller的缩写,中文翻译为“模式-视图-控制器”。MVC是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,让视图层更富于变化。MVC的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是
2、Model和View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图用于显示,同时它也可以解释用户的输入并将他们映射为模型层可执行的操作。1.MVC1.MVC架构模式的简单介绍架构模式的简单介绍图1.1 MVC的工作原理MVCMVC的工作原理如图的工作原理如图1.11.1所示:所示:View(视图)Controller(控制)Model(模型)低耦合性。高重用性和可适用性。较低的生命周期成本。快速的部署。可维护性。有利于软件工程化管理。MVC的缺点:由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划由于它的内部原理比较复杂,所以需要花费一些时间去思考。MVCMV
3、C的优点:的优点:Jsp+Servlet+JavaBean。Jsp+Struts+JavaBean。SSH(Struts+Spring+Hibernate)。Jsp+JavaBean(Controller)+JavaBean(Model)。JavaJava开发开发Web ApplicationWeb Application常用的常用的MVCMVC设计设计模式:模式:Struts是Jakarta项目组的一个Open Source项目,它采用MVC模式,能够很好的帮助Java开发者利用J2EE开发Web应用。Struts框架的核心是一个弹性控制层,基于如Java Servlets、JavaBean
4、、ResourceBundles和XML等标准技术,以及Jakarta Commons的一些类库。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据库访问技术相结合。在视图层,Struts能够与JSP(包括JSTL和JSF)、Velocity模板、XSLT及其他表示层技术完美结合。2.Struts2.Struts工作原理及实例开发工作原理及实例开发Struts的体系结构包括模型(Model),视图(Views)和控制器(Controller)三部分。如图2.1所示:图2.1 St
5、ruts的体系结构2.1 Struts2.1 Struts的体系结构的体系结构客户浏览器控制器Servlet视图JSP业务逻辑动作模型模型应用程序状态事件HTTP响应调度获取转向更新HTTP响应模型(Model)在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变的状态的事务逻辑。内部状态通常由一组ActionForm Bean表示。这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据。建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。视图(View)视图主要由JSP建立,Struts包含扩展自定义标记库,可以简化创建完全国际化用户界
6、面的过程。目前的标记库包括Bean Tags、HTML tags、Logic Tags、Nested Tags以及Template Tags等。控制器(Controller)在Struts中,基本的控制器组件是ActionServlet类的实例servlet,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping与ActionForward这几个组件协调来完成,其中Action扮演真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的
7、运行方向。从从MVCMVC角度看角度看StrutsStruts的框架:的框架:整个Struts大约由15个包,近200个类所组成,而且数量还在不断的扩展。目前Struts API中几个基本的组件包包括action、actions、config、util、taglib、validator等。表2.1 Struts API中几个基本的组件包2.2 Struts2.2 Struts的基本组件包的基本组件包包名包名说明说明org.apache.struts.action基本控制整个Struts的运行的核心类、组件都在这个包中,如ActionServlet,以及Action,ActionForm,Act
8、ionMapping等。org.apache.struts.actions提供用户HTTP请求和业务逻辑处理之间的特定适配器转换功能。org.apache.struts.config提供配置文件structs-config.xml元素的映射。org.apache.struts.util提供一些常用服务的支持,如Connection Pool和Message Source。org.apache.struts.taglib这不是一个包,而是一个用户标记类的集合,包括Bean Tags、Html Tags、Logic Tags、Nested Tags、Template Tags。org.apache
9、.struts.validator用于动态的配置form表单的验证。Struts的优点有:Struts与Tomcat、Turbine等诸多Apache项目一样,是开源的软件,这是它的一大优点,使开发者能更深入地了解其内部的实现机制。Taglib和页面导航。其中Taglib是Struts的标记库,灵活使用能大大提高开发的效率。关于页面导航,将是今后的一个发展方向,使系统的脉络更加清晰。Struts的缺点有:增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图、控制器分离,降低运行效率。视图与控制器间的过于紧密的连接。视图与控制器应试相互分离的,某些过于紧密的连接妨碍了它们的
10、独立重用。视图对模型的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够显示的数据。对未变化数据的不必要的频繁访问,也将损害操作性能。2.3 Struts2.3 Struts的优缺点的优缺点使用Struts实现一个完整的用户登录系统的实例。登录程序组件的介绍:本例主要用MyEclipse8.5插件的Struts Designer(Struts图形化开发环境)来开发用户登录程序。实例主要由3个JSP文件、2个Java类和2个配置文件组成。userLogin.jsp:用户登录页面,填写成功登录后显示的页面。userLoginSuccess.jsp:用户成功登录后显示的页面。use
11、rLoginFailure.jsp:用户登录失败后显示的页面。LoginForm.java类:这是Struts中一个ActionForm类,用来接收客户输入的数据,并进行初步的数据合理性验证。UserLoginAction.java类:这是Struts中的一个Action类,用户进行用户身份验证,根据结果返回ActionForward类。struts-conf.xml:这是struts中的配置文件,是任何一个struts程序中必不可少的文件。web.xml:Tomcat的应用配置文件。2.4 Struts2.4 Struts实例实例1.在MyEclipse8.5中选择File-New-Proj
12、ect菜单命令,在弹出的New Project对话框中新建一个J2EE的Web Project项目。2.单击Next按钮,在Project name文本框中输入项目名“LoginDemo”,其余保持默认,单击Finish按钮。3.添加支持的Struts功能组件。选择MyEclipse-Add Struts Capabilities命令,Struts specification为版本号,这里选择“Struts1.2”;对URL pattern我们选择“*.do”;对Base package for new classes设置为“”;Default application resources中为默
13、认的资源文件。单击Finish按钮。详细步骤:详细步骤:1.双击打开struts-config.xml文件,默认情况下进入的是可视化设计界面。单击窗口左侧Palette栏中的JSP按钮,然后再设计窗口中单击,将弹出Create a new JSP page对话框,这里我们新建一个JSP文件。在File Name中输入“userLoginSuccess.jsp”,单击Finish按钮。2.用同样的方法,再新建一个JSP文件,命名为userLoginFailure.jsp,作为用户登录失败后所显示的页面。3.在struts-config.xml的Design模式中,单击鼠标右键,选择New-For
14、m,Action and JSP菜单命令,Use case为userLogin,在Form Properties选项卡中单击Add按钮,来添加相关值,添加两个属性:userName和password。在添加password时,要将type设置为“password”。选中JSP选项卡,选中“Create JSP form”,然后选择Method选项卡,将Methods的第1个和第2个方法选中,分别创建错误处理方法和重置方法,单击Next按钮,进入Action选项界面。将Option Details栏下Form选项卡中的“Validate Form”取消选择,然后在Forwards选项卡单击Add
15、按钮,分别添加成功和失败时返回的页面。设计设计struts-config.xml:struts-config.xml:4.单击Finish按钮,在struts-config.xml的Design中,可以看到如图2.2所示的关联图。MyEclipse已经建立好了JSP、ActionForm和Action之间的关系。图2.2 struts-config.xml的Design中的关联图在Package Explorer窗口中的form文件夹中双击打开userLogin.jsp。修改所有以开头的语句修改后的内容如下:在WEB-INF目录下生成一个web.xml文件,打开web.xml文件,为其添加St
16、ruts标记库。UserLoginAction.java类用来对用户名和密码进行验证,并且进行响应操作,对类中的execute方法进行完善如下:关键代码:关键代码:public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)UserLoginForm userLoginForm=(UserLoginForm)form;/TODO Auto-generated method stub/判断用户名是否为admin,
17、密码是否为123456if(userLoginForm.getUserName().equals(admin)&userLoginForm.getPassword().equals(123456)/通过验证,则设置userName属性,在userLoginSuccess.jsp中使用request.setAttribute(userName,userLoginForm.getUserName();/跳转成功页面return mapping.findForward(success);/跳转错误界面return mapping.findForward(failure);部署并运行Struts程序:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SSH 架构 模式 应用 开发

限制150内