### Struts2框架知识点 #### Struts2框架概述 Struts2是一个开源的Web应用程序框架,基于MVC(Model-View-Controller)架构模式。它为Java Web开发者提供了一个强大的平台来构建高度可扩展的应用程序。Struts2的核心组件包括Action、Interceptor、Result等。 #### Struts2入门案例 入门案例通常涉及到简单的请求处理流程,从创建项目结构到配置web.xml文件,并定义struts.xml中的业务逻辑。以下是对入门案例中几个关键部分的详细介绍: 1. **web.xml配置**: 在Struts2应用中,web.xml文件主要用于配置过滤器(Filter),该过滤器负责拦截所有进入应用程序的HTTP请求,并将它们传递给Struts2框架进行处理。此外,还需要配置监听器(Listener)来加载Struts2的配置文件。 - **配置示例**: ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 2. **struts.xml文件**: 此文件是Struts2的主要配置文件,用于定义应用程序的业务逻辑,如Action映射、拦截器栈等。 - **配置示例**: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devMode" value="true"/> <package name="default" namespace="/" extends="struts-default"> <action name="helloWorld" class="com.example.HelloWorldAction"> <result name="success">/WEB-INF/content/hello.jsp</result> </action> </package> </struts> ``` #### 标签详解 1. **`<package>`标签**: 定义一组相关的Action,类似于代码中的包,用于组织和管理Action。 - **name属性**: 包名,同一配置文件中的包名不能重复。 - **extends属性**: 继承自预定义的包(通常是`struts-default`),继承后Action类将具备默认的行为特性。 - **namespace属性**: 命名空间,与Action标签中的name属性共同构成Action的完整路径。 2. **`<action>`标签**: 用于配置Action的访问路径及执行逻辑。 - **name属性**: Action的名字,与命名空间共同组成Action的完整路径。 - **class属性**: 指定Action类的全限定名。 - **method属性**: 指定Action类中要执行的方法名称,默认为`execute`。 3. **`<result>`标签**: 用于指定Action执行后返回的结果页面或下一个Action。 - **name属性**: 对应Action返回值的名称。 - **type属性**: 指定结果类型,如`dispatcher`(转发)或`redirect`(重定向)等。 #### Struts2常量配置 Struts2框架提供了大量的常量供开发者配置,这些常量可以控制框架的各个方面,例如: - **struts.devMode**: 开发模式开关,开启后会提供更多调试信息。 - **struts.action.extension**: 指定Action URL的扩展名。 #### Struts2执行过程 1. **过滤器初始化**: 当服务器启动时,Struts2的过滤器会被创建并调用其`init`方法,该方法主要负责加载Struts2的配置文件。 2. **请求处理**: 当客户端发送请求时,过滤器拦截请求并将其转发给Struts2的内核进行处理。 3. **Action执行**: Struts2内核解析请求并定位到相应的Action类进行执行。 4. **结果处理**: 执行完成后,根据Action的返回值选择相应的`<result>`配置来确定下一步动作。 #### Struts2分模块开发 为了更好地组织和管理大型项目的逻辑,Struts2支持分模块开发。可以通过设置`<package>`标签的`namespace`属性来实现不同模块之间的隔离。 #### Action编写方式 1. **普通类**: 不继承任何类也不实现任何接口,通过直接定义方法处理请求。 2. **实现Action接口**: 需要实现`com.opensymphony.xwork2.Action`接口,该接口提供了一个`execute`方法作为默认处理方法。 3. **继承ActionSupport类**: 继承`com.opensymphony.xwork2.ActionSupport`类,该类提供了更多的实用功能,如国际化支持等。 #### 访问Action中的方法 1. **使用`<action>`标签的`method`属性**: 可以指定执行的具体方法。 2. **使用通配符**: 通过在`name`属性中使用通配符`*`来匹配多个方法。 3. **动态方法调用**: 通过动态调用的方式访问Action中的方法。 #### 结果页面配置 1. **全局结果页面**: 通过在`<package>`标签下添加`<global-results>`标签来配置,适用于多个Action共享相同的视图场景。 2. **局部结果页面**: 即在每个`<action>`标签中单独配置`<result>`标签,优先级高于全局配置。 #### Action获取表单提交数据 1. **使用ActionContext类**: 可以通过`ActionContext.getContext().getParameters()`获取表单数据。 2. **使用servletActionContext类**: 提供了一种更简单的方法来访问HttpServletRequest对象。 3. **实现ServletRequestAware接口**: 实现该接口的Action类可以直接访问HttpServletRequest对象。 以上就是关于Struts2框架的一些核心知识点介绍,对于理解和使用Struts2非常有帮助。













剩余24页未读,继续阅读


- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2023年自考发展与教育心理学网络课堂答案.doc
- 计算机思维在STEM教育中的实践与应用(1).docx
- 华中师范大学2021年9月《人工智能》作业考核试题及答案参考7.docx
- 数据库实验(1).doc
- AdobePremiereProCS6教学公开课获奖课件.pptx
- P捷联惯导系统姿态算法矩阵.pptx
- MCS单片机指令系统复习课程.ppt
- View桌面虚拟化解决方案.ppt
- 中小快递企业信息化建设问题的研究.doc
- 2023年干部学习新干线第八届全国残疾人运动会相关知识网络竞赛.doc
- C语言程序设计项目式教程课件全书电子教案教材课件.ppt
- 建设营销型网站时要注意的问题.doc
- 2023年嵌入式硬件助理工程师认证考试试题题库.doc
- 嵌入式计算机系统在智能家电中的应用研究的开题报告.docx
- Excel2010技巧大全:让Excel出现错误数据提示【会计实务操作教程】.pptx
- Excel表格通用模板:车辆保险续保登记表格.xlsx


