第1讲 搭建Struts2环境与简单应用开发.doc
《第1讲 搭建Struts2环境与简单应用开发.doc》由会员分享,可在线阅读,更多相关《第1讲 搭建Struts2环境与简单应用开发.doc(45页珍藏版)》请在三一办公上搜索。
1、第1讲 搭建Struts2环境与简单应用开发1. Struts2框架l Struts2由传统的Struts1和WebWork两个经典MVC框架发展而来l Struts2是一个非常优秀的MVC框架2. MVC思想概述MVC思想将应用中各组件按功能进行分类,不同的组件使用不同技术充当,甚至推荐了严格分层,不同组件被严格限制在其所在层内,各层之间以松耦合的方式组织在一起,从而提供良好的封装。Model1(JSP+JavaBean):JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。JSP页面身兼View和Controller两种角色,
2、将控制逻辑和表现逻辑混杂在一起,从而导致代码的重用性低,增加了应用的扩展和维护的难度。Model2(JSP+Servlet+JavaBean):属于MVC架构的设计模式。MVC思想将一个应用分为三个基本部分:Model(模型)、View(视图)、Controller(控制器),这三个部分以最少的耦合协同工作,从而提高应用的可扩展性和维护性。MVC有如下特点:l 多个视图对于一个模型,一旦模型发生变化,易于维护;l 模型返回的数据与显示逻辑分离;l 应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性;l 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起,完成不同的请求。因
3、此,控制层可以说是包含了用户权限的概念;l 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.ja
4、r:对象图导航语言(Object Graph Navigation Language),一种功能强大的表达式语言,主要用于读写对象的属性;(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
5、的配置文件Struts2默认的配置文件为struts.xml,该文件需要存放在WEB-INF/classes下在web.xml中加入Struts2框架的启动配置struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*Struts2框架是通过Filter启动的,在Web.xml中配置。在StrutsPrepareAndExecuteFilter的init()方法中将会读取类路径下默认的配置文件struts.xml完成初始化操作。注意:Struts2读取到struts.xml的内容后,
6、以javabean的形式存放在内存中,以后Struts2对用户的每次请求处理将使用内存中的数据,而不是每次都读取struts.xml文件。4. Strus2简单应用开发4.1 HelloWorld目标:点击超链接,发出请求,在请求中存数据,在另一个页面中显示存入的数据。l JSP+Servlet实现l Struts实现总结:l Package用来管理Action,主要用于管理一组业务功能相关的Action。l name属性:必须有并要求name属性值唯一,它不对应java的类包。l namespace属性:定义包的命名空间,命名空间是访问该包下Action的路径一部分。l 只有当包都继承了st
7、ruts-default包,才可以使用struts2的核心功能。l abstract=true表示该包为抽象包,不能包含Actionl Struts2中Action的默认后缀为.action目标:Struts如何实现简单转发 - Action配置的各项默认值。l 如果没有为action指定class,默认是ActionSupport;l 如果没有为action指定method,默认执行action中的execute()方法;l 如果没有指定result的name属性,默认值是success4.2 登录目标:输入用户名、密码,成功跳转到成功页面,失败返回登录页面。l JSP+Servlet实现l
8、 表单+Actionl Struts标签+Actionl 国际化总结:l 添加国际化配置l 添加国际化文件mess.properties、mess_zh_CN.properties、mess_en_US.propertiesl 修改Internet选项第2讲 Struts2处理流程与常规配置1.Struts2应用开发步骤(1). 在web.xml文件中定义核心Filter来拦截用户请求。(2). 如果需要以post方法提交请求,则定义包含表单数据的JSP页面。如果仅仅只是以get方式发送请求,则无须此步骤。(3). 定义处理用户请求的Action类。(4). 配置Action。(5). 配置处
9、理结果和物理视图资源之间的对应关系。(6). 编写视图资源。如果Action需要把数据传给视图资源,则可以借助于OGNL表达式。2.Struts2的处理流程l 控制器包括核心控制器和业务控制器l 业务控制器与物理视图解耦:若需要将某个视图名映射到不同视图资源,无须修改XxxAction的代码,只需修改配置文件。3.Struts常量配置l struts.i18n.encoding:指定Web应用的默认编码集,相当于request.setCharacterEncoding()。l struts.custom.i18n.resources:指定国际化资源文件的baseNamel struts.act
10、ion.extension:需要Struts处理的请求后缀,默认值为action,可以指定多个l struts.server.static.browserCache:设置浏览器是否缓存静态内容,默认值为true,开发时应设为falsel struts.configuration.xml.reload:当Struts的配置文件修改后,系统是否自动重新加载该文件,开发时应设为truel struts.devMode:设置Struts2应用是否为开发模式,打印出更详细的信息备注:l 哪些常量是有效的?在struts2-core2.2.1.jar压缩文件的orgapachestruts路径下的defa
11、ult.properties文件中定义。l Struts2默认会加载struts.xml、struts-default.xml、struts-plugin.xml三个配置文件n struts.xml是开发者定义的默认配置文件n struts-default.xml是Struts框架自带的配置文件n struts-plugin.xml是Struts插件的默认配置文件n 加载顺序为struts-default.xml、struts-plugin.xml、struts.xmll Struts2常量配置有三种方式n 通过struts.xml配置文件n 通过struts.properties文件n 通过
12、web.xml文件l Struts2的所有配置文件(包括用户自定义配置文件)都可以用来配置常量,推荐struts.xmll Struts2搜索常量的顺序为struts-default.xml、struts-plugin.xml、struts.xml、struts.properties、web.xml,如果在多个文件中配置了同一个Struts2常量,则后一个会覆盖前一个4.包含其他配置文件l 为了避免struts.xml文件过于庞大,提高struts.xml文件的可读性,可以将一个struts.xml文件分解成多个配置文件,在struts.xml中包含其他配置文件l 第3讲 实现和配置Actio
13、n1.Action接口和ActionSupport类l Action类里的属性,不仅可用于封装请求参数,还可用于封装处理结果l 为了让用户开发的Action类更规范,Struts2提供了一个Action接口l ActionSupport类是Action接口的实现类,如果开发者的Action继承了ActionSupport类,则会大大简化Action的开发l ActionSupport类是Action的默认处理类2.Action访问Servlet APIl Action访问Servlet API是必要的l Web应用中经常访问的Servlet API有HttpServletRequest、Htt
14、pServletSession和HttpServletContext,对应于JSP内置对象request、session、applicationl Struts2提供了一个ActionContext类,用于Action访问Servlet APIn Object get(Object key):request.getAttribute(String name)n Map getApplication():返回一个Map对象,该对象模拟了ServletContext实例n Map getSession():返回一个Map对象,该对象模拟了HttpSession实例n static ActionCo
15、ntext getContext():获取系统的ActionContext实例l 实例:测试Action访问Servlet APIn 实现登录功能,返回success或errorn 用application实现简单计数器n 用session保存用户名n 用request保存提示信息(tip)l Action既可以彻底与Servlet API分离,也可以用简单的方式操作request、session、application范围的属性3.Action直接访问Servlet APIl 为了在Action中直接访问Servlet API,Struts2提供了如下接口:n ServletContextA
16、ware:实现接口的Action可以直接访问ServletConext实例n ServletRequestAware:实现接口的Action可以直接访问HttpServletRequest实例n ServletResponseAware:实现接口的Action可以直接访问HttpServletResponse实例l 实例:通过HttpServletResponse为系统添加Cookie对象,实现自动登录l 即使获得HttpServletResponse对象,也不要尝试直接在Action中对客户端生成响应4.使用ServletActionContext访问Servlet API5. 配置Acti
17、onl 包和命名空间n Struts2使用包来组织Action,Action是Struts2的基本“程序单位”n 配置元素时必须指定name属性,该属性是引用该包的唯一标识n extends属性值必须是另一个包的name属性n 因为Struts2的配置文件是从上到下处理的,所以父包应该在子包前面定义n 命名空间主要是为了处理同一个Web应用中包含同名Action的情形。同一个命名空间里不能有同名的Action,不同命名空间里可以有同名的Actionn Struts搜索命名空间的顺序u 命名空间只有一个级别。如果请求的URL是/bookservice/search/get.action,系统将先
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1讲 搭建Struts2环境与简单应用开发 搭建 Struts2 环境 简单 应用 开发
链接地址:https://www.31ppt.com/p-2387594.html