第1讲 搭建Struts2环境与简单应用开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1讲搭建Struts2环境与简单应用开发1.Struts2框架Struts2由传统的Struts1和WebWork两个经典MVC框架发展而来Struts2是一个非常优秀的MVC框架2.MVC思想概述MVC思想将应用中各组件按功能进行分类,不同的组件使用不同技术充当,甚至推荐了严格分层,不同组件被严格限制在其所在层内,各层之间以松耦合的方式组织在一起,从而提供良好的封装。Model1(JSP+JavaBean):JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。JSP页面身兼View和Controller两种角色,将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性低,增加了应用的扩展和维护的难度。Model2(JSP+Servlet+JavaBean):属于MVC架构的设计模式。MVC思想将一个应用分为三个基本部分:Model(模型)、View(视图)、Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性和维护性。MVC有如下特点:多个视图对于一个模型,一旦模型发生变化,易于维护;模型返回的数据与显示逻辑分离;应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性;控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户权限的概念;MVC更符合软件工程化管理的精神。3.Struts2的下载和安装下载并搭建Struts2环境:(1).下载Struts2.2.1;(2).找到开发Struts2应用需要使用到的jar文件;(3).编写Struts2的配置文件;(4).在web.xml中加入Struts2框架的启动配置。开发Struts2最少需要的jar文件:(1).struts2-core-2.2.1.1.jar:Struts2框架的核心类库;(2).xwork-core-2.2.1.1.jar:XWork类库,Struts2在其上构建;(3).ognl-3.0.jar:对象图导航语言(ObjectGraphNavigationLanguage),一种功能强大的表达式语言,主要用于读写对象的属性;(4).freemarker-2.3.16.jar:Struts2UI标签的模板使用FreeMarker编写;(5).commons-fileupload-1.2.1.jar:文件上传组件,2.1.6以后版本必须加入此文件;(6).commons-io-1.3.2.jar:IO输入输出流组件,主要完成文件的读写功能;(7).javassist-3.7.ga.jar:Javassist是一个开源的分析、编辑和创建Java字节码的类库。编写Struts2的配置文件Struts2默认的配置文件为struts.xml,该文件需要存放在WEB-INF/classes下在web.xml中加入Struts2框架的启动配置filterfilter-namestruts2/filter-namefilter-classorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter/filter-class/filterfilter-mappingfilter-namestruts2/filter-nameurl-pattern/*/url-pattern/filter-mappingStruts2框架是通过Filter启动的,在Web.xml中配置。在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作。注意:Struts2读取到struts.xml的内容后,以javabean的形式存放在内存中,以后Struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件。4.Strus2简单应用开发4.1HelloWorld目标:点击超链接,发出请求,在请求中存数据,在另一个页面中显示存入的数据。JSP+Servlet实现Struts实现总结:Package用来管理Action,主要用于管理一组业务功能相关的Action。name属性:必须有并要求name属性值唯一,它不对应java的类包。namespace属性:定义包的命名空间,命名空间是访问该包下Action的路径一部分。只有当包都继承了struts-default包,才可以使用struts2的核心功能。abstract=true表示该包为抽象包,不能包含ActionStruts2中Action的默认后缀为.action目标:Struts如何实现简单转发--Action配置的各项默认值。如果没有为action指定class,默认是ActionSupport;如果没有为action指定method,默认执行action中的execute()方法;如果没有指定result的name属性,默认值是success4.2登录目标:输入用户名、密码,成功跳转到成功页面,失败返回登录页面。JSP+Servlet实现表单+ActionStruts标签+Action国际化总结:添加国际化配置constantname=struts.custom.i18n.resourcesvalue=mess/添加国际化文件mess.properties、mess_zh_CN.properties、mess_en_US.properties修改Internet选项第2讲Struts2处理流程与常规配置1.Struts2应用开发步骤(1).在web.xml文件中定义核心Filter来拦截用户请求。(2).如果需要以post方法提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以get方式发送请求,则无须此步骤。(3).定义处理用户请求的Action类。(4).配置Action。(5).配置处理结果和物理视图资源之间的对应关系。(6).编写视图资源。如果Action需要把数据传给视图资源,则可以借助于OGNL表达式。2.Struts2的处理流程StrutsPrepareAndExecuteFilterXxxActionModel组件JSP视图页面浏览器1.发送请求2.执行execute()3.调用业务逻辑4.返回业务结果5.返回逻辑视图名6.forward到物理视图7.产生相应内容8.响应输出Controller控制器包括核心控制器和业务控制器业务控制器与物理视图解耦:若需要将某个视图名映射到不同视图资源,无须修改XxxAction的代码,只需修改配置文件。3.Struts常量配置struts.i18n.encoding:指定Web应用的默认编码集,相当于request.setCharacterEncoding()。struts.custom.i18n.resources:指定国际化资源文件的baseNamestruts.action.extension:需要Struts处理的请求后缀,默认值为action,可以指定多个struts.server.static.browserCache:设置浏览器是否缓存静态内容,默认值为true,开发时应设为falsestruts.configuration.xml.reload:当Struts的配置文件修改后,系统是否自动重新加载该文件,开发时应设为truestruts.devMode:设置Struts2应用是否为开发模式,打印出更详细的信息备注:哪些常量是有效的?在struts2-core2.2.1.jar压缩文件的org\apache\struts路径下的default.properties文件中定义。Struts2默认会加载struts.xml、struts-default.xml、struts-plugin.xml三个配置文件struts.xml是开发者定义的默认配置文件struts-default.xml是Struts框架自带的配置文件struts-plugin.xml是Struts插件的默认配置文件加载顺序为struts-default.xml、struts-plugin.xml、struts.xmlStruts2常量配置有三种方式通过struts.xml配置文件通过struts.properties文件通过web.xml文件Struts2的所有配置文件(包括用户自定义配置文件)都可以用来配置常量,推荐struts.xmlStruts2搜索常量的顺序为struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml,如果在多个文件中配置了同一个Struts2常量,则后一个会覆盖前一个4.包含其他配置文件为了避免struts.xml文件过于庞大,提高struts.xml文件的可读性,可以将一个struts.xml文件分解成多个配置文件,在struts.xml中包含其他配置文件includefile=”struts-part1.xml”/第3讲实现和配置Action1.Action接口和ActionSupport类Action类里的属性,不仅可用于封装请求参数,还可用于封装处理结果为了让用户开发的Action类更规范,Struts2提供了一个Action接口ActionSupport类是Action接口的实现类,如果开发者的Action继承了ActionSupport类,则会大大简化Action的开发ActionSupport类是Action的默认处理类2.Action访问ServletAPIAction访问ServletAPI是必要的Web应用中经常访问的ServletAPI有HttpServletRequest、HttpServletSession和HttpServletContext,对应于JSP内置对象request、session、applicationStruts2提供了一个ActionContext类,用于Action访问ServletAPIObjectget(Objectkey):request.getAttribute(Stringname)MapgetApplication():返回一个Map对象,该对象模拟了ServletContext实例MapgetSession():返回一个Map对象,该对象模拟了HttpSession实例staticActionContextgetContext():获取系统的ActionContext实例实例:测试Action访问ServletAPI实现登录功能,返回success或error用application实现简单计数器用session保存用户名用request保存提示信息(tip)Action既可以彻底与ServletAPI分离,也可以用简单的方式操作request、session、application范围的属性3.Action直接访问ServletAPI为了在Action中直接访问ServletAPI,Struts2提供了如下接口:ServletContextAware:实现接口的Action可以直接访问ServletConext实例ServletRequestAware:实现接口的Action可以直接访问HttpServletRequest实例ServletResponseAware:实现接口的Action可以直接访问HttpServletResponse实例实例:通过HttpServletResponse为系统添加Cookie对象,实现自动登录即使获得HttpServletResponse对

1 / 45
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功