struts2详解
### Struts2详解 #### 一、Struts2概述与工作原理 Struts2是一个用于构建企业级Java Web应用的强大框架。它继承了Struts1的一些特性,并在此基础上进行了改进和扩展,支持更加灵活和强大的功能。Struts2基于MVC(Model-View-Controller)模式,将业务逻辑和展示层分离,使开发更加清晰和高效。 **工作流程简述**: 1. **用户请求**:用户通过浏览器向服务器发送请求。 2. **过滤器处理**:Struts2的过滤器捕获用户的请求并将其转发给Struts2的Action容器。 3. **Action容器处理**:Action容器解析请求,并根据配置文件(struts.xml)找到相应的Action类。 4. **Action执行**:调用Action类中的方法(通常是execute方法),处理业务逻辑。 5. **返回结果**:Action处理完成后返回一个结果,该结果指定页面跳转的路径。 6. **视图显示**:根据返回的结果显示相应的页面给用户。 #### 二、Struts2工程开发步骤 以登录系统为例,开发步骤如下: 1. **加载Struts2的支持jar包**:需要包含Struts2的核心库以及其他相关的第三方库,如Spring、Hibernate等。 2. **配置web.xml**:配置Struts2的过滤器,使得所有的HTTP请求都经过Struts2框架的处理。示例如下: ```xml <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 3. **编写Action操作类**:Action类是处理业务逻辑的核心,负责数据的处理及与数据库的交互。示例如下: ```java public class LoginAction extends ActionSupport { private String username; private String userpass; private String msg; public String execute() throws Exception { if ("chao".equals(username) && "123".equals(userpass)) { return SUCCESS; } this.setMsg("用户名或密码错误!"); return INPUT; } } ``` 4. **配置struts.xml文件**:这是Struts2框架的核心配置文件,用来配置Action映射、拦截器等信息。示例如下: ```xml <struts> <package name="test" namespace="/chao" extends="struts-default"> <action name="login" class="com.action.LoginAction"> <result name="success">/main.jsp</result> <result name="input">/login.jsp</result> </action> </package> </struts> ``` #### 三、Struts2的核心配置 1. **struts-default.xml**:位于Struts2-core-2.1.6.jar文件下,是Struts2的默认配置文件,包含了框架的基础配置。 2. **Bean配置**:通过Bean的配置实现Struts2组件的依赖注入(DI)。示例如下: ```xml <bean type="org.apache.struts2.dispatcher.multipart.MultiPartRequest" name="struts" class="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest" scope="default"/> ``` - `.class`:Bean实例的实现类 - `.type`:Struts2定义的规范接口 - `.name`:Bean实例的名称 - `.scope`:Bean的作用域 3. **常量配置**:可以在以下三个位置进行配置: - `struts.xml` - `struts.properties` - `web.xml` 例如配置资源文件常量: ```xml <!-- 在struts.xml中 --> <constant name="struts.custom.i18n.resource" value="MessageResource" /> ``` 或者更改提交的后缀名: ```xml <!-- 在struts.xml中 --> <constant name="struts.action.extension" value="do" /> ``` 4. **包配置**:Struts2使用包来管理Action和拦截器。包的属性包括`name`、`extends`、`namespace`等。例如: ```xml <package name="test" namespace="/chao" extends="struts-default"> ... </package> ``` - `name`:包的名称 - `namespace`:命名空间 - `extends`:继承的包 以上是对Struts2框架的详细介绍,包括了其工作原理、开发步骤以及核心配置等方面的内容。通过这些内容的学习,可以更好地理解和掌握Struts2框架的应用。
剩余15页未读,继续阅读
- 暗夜枭熊2013-04-16谢谢分享,word文件格式,讲解了sturts的基本开发步骤,业务逻辑处理,拦截器,类型转换,OGNL表达式,文件上传下载,国际化等相关内容,应该是自己总结的,很精辟
- sdfxdf2012-03-29谢谢分享 word格式文件, 讲解了struts2的开发步骤,核心配置, 业务逻辑处理,拦截器,类型转换,OGNL,文件上传下载,国际化等内容. 看出来应该是自己应用的积累,很好
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip