开始瞄准B/S模式,基于Internet的Web应用也变得越来越复杂,需要频繁的访问数据库,对数据库的操作要求也越来越高,而且还要和用户进行交互,由此诞生出来了各种服务器端的开发技术【2】’目前应用得较多的WEB开发技术就是ASP、JSP。
传统的WEB应用是直接在页面里,也就是HTML代码里嵌入JAVA代码,HTML标签负责页面显示,JAVA代码负责数据的显示和动态呈现,实现业务逻辑。
为了分离页面的表现层和逻辑层,更加清晰化页面的分层结构,增强代码的可维护性,SUN公司在很早的时候就为JSP南lJ定了2种模型,分别为模型1(Modell)和模型2(Model2).具体区别如下所示:2.1.1模型1 模型1将页面显示代码和逻辑代码分开,利用的是JavaBean和JSP技术。
JSP实现页面的显示,JavaBean对象负责实现业务逻辑。
在模型1中,JSP用来响应请求并将消息返回给服务器端,JavaBean来完成逻辑的处理,JSP实现页面的显示。
通过以上分析,可以明确的看出模型1确实实现了页面的分层和清晰化,不足之处是在JSP页面中仍需要调用JavaBean的方法,当需要处理的业务逻辑非常复杂时,编写代码的难度将会很大很复杂。
在JSP页面中嵌入过多的JAVA代码将使程序变得极难维护,对于前端开发人员来说,大量的嵌入代码将会增大他们开发的力度。
模型1不能满足大型应用得需要,但是对于普通的小型的办公室应用,且不涉及过多的实际因素,可以很好的满足小型应用的需要。
所以如果应用不复杂的话,可以优先考虑模型l2.2.2模型2和MVC 在模型l中,JSP页面嵌入了流程控制代码和部分的逻辑处理代码,我们可以把这层逻辑抽象出来,并单独用个容器来实现它,这个容器就是控制器,而这样的Web架构就是模型2了。
模型2完全遵循了MVC架构标准,MVC即模型.视图.控制器(Model—View-Controller). 在MVC架构中,通常被分为Model,View,Controller三层结构。
模型代表了企业应用的具体数据模型。
当模型内数据发生变化时,它会告诉视图应该怎么来适应这种变化。
同时它也会去告诉控制器去访问哪些数据库的数据。
武汉科技大学 硕士学位论文 第5页 视图用来显示模型的内容。
它负责取出模型数据并显示出来。
当模型存在变化时,视图要保持与数据变化的同步性。
视图同时也会去告诉控制器关于用户的请求。
控制器用来负责流程流转的控制。
它负责接受用户的请求,并根据请求去找具体的显示视图。
这些过程均由控制器来实现。
在模型2中,控制器对应的位置就是Servlet,视图通常对应的是JSP,模型则通
常用JavaBean来实现。
2.2 SSH2架构的介绍2.2.1 Struts2框架 Struts是第一个完全遵循MVC标准的WEB框架,从它的第一个版本发布以来,很多开发人员就喜欢上它了,并将它推上了市场占有率第一的宝座。
然而,随着时间的流逝,Struts不完善的设计终于显示出来。
例如:Struts的Action组件是单例模式的,是不符合线程安全的标准;Struts必须依赖于Web容器,并需要依赖HttpServletRequest和HttpServletResponse绑定来获取请求和相应,这种对Servlet容器的过度依赖,极大的影响了开发效率;对于开发者而言,最不方便的地方就是每建立一层显示视图,都要为它写一个ActionForm,尽管很多时候这个组件并没有起到作用,这严重的影响了开发者的开发速度和效率。
令人欣喜的是Strutsl的开发者认识到了这个问题,并仔细研究和思考了改善它的方法,最终它们选择了WebWork这个框架。
WebWork是在2002年3月发布的,WebWork非常完美的解决了Strutsl的所有依赖问‘题,在WebWork中,可以使用普通的JavaBean对象,即使一个普通的JAVA类都可以用来接收数据。
此外,由于WebWork中的Action没有和Web容器耦合在一起,所以极大的方便了开发和测试。
2006年WebWork与Struts这两个优秀的开发团队走到了一起,决定合作共同开发一个全新的,基于WebWork的框架体系,同时又秉承了Strutsl的优点的框架。
至此Struts2框架诞生。
第6页 武汉科技大学 硕士学位论文 Struts2的体系结构如图2.1所示。
图2.1 Struts2的体系结构 在Web开发中通过配置文件web.xml启动Struts2框架。
所以需要在web.xml文件配置Struts2的各种拦截器信息。
ActionProxy在查找哪个Action被调用以及Actionlnvacation通过result信息查找需要返回