《项目开发入门框架与模式》由会员分享,可在线阅读,更多相关《项目开发入门框架与模式(92页珍藏版)》请在金锄头文库上搜索。
1、2.1Struts 2让网页与控制分离2.22.3Hibernate把数据持久化MVC框架开发模式Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.2.1.1 Struts 2框架 1Mod
2、el2模式 Model2模式的工作原理如图2.1所示,其工作流程是按如下5个步骤进行的 : Servlet接收浏览器发出的请求。 Servlet根据不同的请求调用相应的JavaBean。 JavaBean按自己的业务逻辑操作数据库。 Servlet将结果传递给JSP视图。 JSP将后台处理的结果呈现给浏览器。Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Pr
3、ofile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.2Servlet Filter技术 图 2.2 中显示了正常请求、加过滤器请求和加过滤器链请求的处理过程。 过滤器可以对Request对象和Response对象进行处理。Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NE
4、T 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.(1)init(FilterConfig)。这是过滤器的初始化方法,Servlet容器创建过滤器实例后将调用这个方法。在这个方法中可以通过FilterConfig参数读取web.xml文件中过滤器的初始化参数。(2)doFilter(ServletRequest,ServletResponse,FilterChain)。这个方法完成实际的过滤操作,当用户请求与过滤器关联的URL时,Servlet容
5、器将先调用过滤器的doFilter方法,在返回响应之前也会调用此方法。FilterChain参数用于访问过滤器链上的下一个过滤器。Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.(3)de
6、stroy()。 Servlet容器在销毁过滤器实例前调用该方法,这个方法可以释放过滤器占用 的资源。 过滤器编写完成后,要在web.xml进行配置,格式如下:过滤器名称过滤器对应的类参数名称参数值Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyri
7、ght 2004-2011 Aspose Pty Ltd.下面举例说明在web.xml中配置过滤器与URL关联的方法。 (1)与一个URL资源关联:过滤器名xxx.jsp(2)与一个URL目录下的所有资源关联:过滤器名/*(3)与一个Servlet关联:过滤器名Servlet名称Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
8、Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.3Struts 2工作机制 Struts 2的设计思想:用Servlet Filter技术将Servlet API隐藏于框架之内,一 个请求在Struts 2框架内被处理,大致分为以下几个步骤,如图2.3所示。Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides fo
9、r .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.1加载Struts 2包 登录http:/struts.apache.org/,下载Struts 2完整版,本书使用的是Struts 2.3.4.1。将下载的文件struts-2.3.4.1-all.zip解压缩,得到文件夹包含的目录结构 如图2.4所示 Evaluation only.Evaluation only. Created with Aspose.Slides for .NE
10、T 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.开发Struts 2程序只需用到lib下的9个jar包,包括: (1)传统Struts 2的5个基本类库。 struts2-core-2.3.4.1.jar xwork-core-2.3.4.1.jar ognl-3.0.5.jar commons-logging-1.1.
11、1.jar freemarker-2.3.19.jar (2)附加的4个库。 commons-io-2.0.1.jar commons-lang3-3.1.jar javassist-3.11.0.GA.jar commons-fileupload-1.2.2.jar (3)数据库驱动。 mysql-connector-java-5.1.22-bin.jarEvaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slid
12、es for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.在项目目录树中,右击项目名,选择菜单【Build Path】【Configure Build Path】,出现如图2.5所示的窗口。Evaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides f
13、or .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.2配置Struts 2 修改web.xml文件:struts2org.apache.struts2.dispatcher.FilterDispatcherstruts2/*login.jspEvaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Cre
14、ated with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.3创建JavaBean 在项目src文件夹下建立包org.easybooks.bookstore.jdbc,在包里创建 MySQLConnBean类,其代码与“入门实践一”的程序完全一样。 4创建login.jsp 在项目WebRoot下创建登录首页的JSP文件login.jsp,代码如下:登录页面用户登录姓名:密码:Evaluatio
15、n only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.5实现控制器Action 在项目src文件夹下建立包org.easybooks.bookstore.action,在包里创建 LoginAction类,代码所
16、示。 6配置Action 在编写好Action(控制器)的代码之后,还需要进行配置才能让Struts 2识 别这个Action,在src下创建文件struts.xml(注意文件位置和大小写),输入如 下的配置代码:/welcome.jsp/error.jspEvaluation only.Evaluation only. Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0. Copyright 2004-2011 Aspose Pty Ltd.Copyright 2004-2011 Aspose Pty Ltd.7创建其余的JSP文件 在项目WebRoot下创建两个JSP文件。 (1)welcome.jsp的代码如下:成功页面,您好!欢迎光临叮当书店。(2)error.jsp的代码与“入门实践一”的相同,在此省略。 8部署运行 部署项目