[size=large]
什么是struts2?
struts2是一个基于MVC架构的,用于Java web开发的一个框架. struts2的内核是基于webwork框架, 和struts1不同.
为什么要使用struts2?
使用struts2可以提高开发效率, 因为struts2框架替使用者完成了绝大部分的参数传递工作, 提供了一套强大的struts标签,等等,极大的简化了开发过程.
使用struts2还可以提高程序的可维护性和拓展性. 在后期的维护过程中, 给程序添加新的功能会因为使用了struts2而变得十分方便: 只需要添加新的action组件并配置, 而不需要修改原来的代码. 若只使用servlet, 则需要修改servlet类的代码.
struts2的工作流程
1.浏览器向服务器发送请求, 由struts2的控制器处理;
2.控制器创建值栈, 初始化context;
3.控制器根据struts.xml文件中的信息创建相应的interceptor和action对象,并将action对象放入值栈栈顶.
4.控制器依次调用interceptor,action,results组件完成请求处理;
5.解析jsp页面中的标签,生成静态页面
6.执行拦截器的后续操作
7.将响应页面输出给客户端.
基本使用方法:
1.在web.xml文件中添加过滤器:
<filter>
<filter-name>struts_filter</filter-name>
<filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts_filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.在src下创建struts.xml文件
3.编写action类处理请求
4.在struts.xml文件中配置action
5.若有拦截器, 添加拦截器类并在struts.xml中配置
6.调试.
使用框架时都有一个不可避免的工作-----配置文件.相比于hibernate, struts2配置文件的结构较为简单(但hibernate的配置文件大部分可以自动生成,只有很小的一部分需要自己写).
下面详细介绍struts.xml文件的基本配置.
<struts>
<package name="" extends="" namespace="">
<action name="" class="">
<result name="" type=""></result>
</action>
<action name="" class="">
<result name="" type=""></result>
</action>
</package>
</struts>
一个package 包含一组action. name属性指定它的包名. namespace指定它的命名空间, 默认为"/", 即整个应用程序. 当明确指定namespace后, 在访问该包下的action时, 必须在url中的action名字前加上namespace. 比如,一个action的名字为regist, 它所在包的命名空间为"/user", 则访问这个action的url为:域名/应用名/user/regist.action. extends属性指定package继承的xml, 一般为struts-default, 但若需要使用json类型的result,则应继承于json-default. (json-default也继承于struts-default).name和extends为必写属性.
action的name和class属性分别对应于action的名字和类.控制器根据action的name找到它对应的类, 并创建实例.它还有一个method属性, 指定调用action类的哪个方法, 默认为execute()方法.
result的name默认为"success", type指定result的类型, struts2框架提供了十种现成的类型, 有redirect, redirectAction, dispatcher, stream,chain等, 默认为dispatcher,即转发. 标签的值为目的页面,可以是一个JSP页面, 也可以为另一个action. 假如一个action中有一个这样的result组件
<result name="success">/WEB-INF/list.jsp</result>
当action的execute方法(或其它指定的业务处理方法)返回值为"success"时, action 中的属性值就能通过转发的方式到达 /WEB-INF/list.js p页面.
在web应用中一般会把JSP文件放在web-inf目录下, 而这个目录下的文件不能通过URL直接访问,比如路径app/WEB-INF/jsp/regist.jsp, 通过域名/app//WEB-INF/jsp/regist.jsp 访问regist.jsp会报404错误(找不到页面). 若要直接访问此JSP页面,必须在struts.xml文件中为其定义一个简化版的action.
<action name="regist">
<result>/WEB-INF/jsp/regist.jsp</result>
</action>
这个action元素没有class属性, result的name默认为"success". 此时regist.jsp 页面的访问方式为: ...../app/regist.action.
当然,也可以费力不讨好地为它单独写一个类, execute方法里只需写一句:
return "success" ;
[/size]
分享到:
相关推荐
### Struts2学习小结 #### 一、Struts2简介及环境搭建 **Struts2** 是一款基于 **MVC**(Model-View-Controller)设计模式的开源框架,用于简化 Java Web 应用程序的开发过程。通过将业务逻辑、用户界面以及控制...
struts2学习总结
在"Struts2学习总结"中,我们可能涵盖了以下几个关键知识点: 1. **MVC架构**:理解MVC模式是学习Struts2的基础。模型负责处理数据,视图负责展示结果,控制器协调两者之间的交互。Struts2框架通过Action类作为控制...
struts2学习总结文档,帮助快速入门
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
Struts2是一个强大的Java Web应用程序开发框架,基于Model-View-Controller(MVC)设计模式,为开发者提供了...然而,随着Spring Boot等现代框架的兴起,Struts2的使用逐渐减少,但其设计理念和技术仍值得学习和借鉴。
本篇文章将对Struts2的基础知识进行深入的探讨和总结。 一、Struts2框架概述 Struts2是Apache软件基金会的一个项目,它继承了Struts1的优点并解决了其存在的问题,提供了更强大的功能和更高的灵活性。Struts2的核心...
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...
Struts2是一个强大的Java web开发框架,它基于MVC(Model-View-...然而,随着Spring Boot和其他现代框架的发展,Struts2的使用逐渐减少,但在理解MVC模式和企业级应用开发方面,Struts2仍然具有重要的学习价值。
Struts2是一个基于MVC设计模式的Java web框架,它极大地简化了企业级应用的开发。以下是关于Struts2的一些核心知识点的详细说明: 1. **环境搭建**:要搭建Struts2的开发环境,首先需要配置Tomcat服务器和JDK。接着...
Struts2学习心得 本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-...
- **问题汇总**:针对Struts2开发过程中常见的问题进行总结和解答。 以上是基于文档提供的信息整理出来的Struts2学习笔记的关键知识点概览。这些内容不仅涵盖了Struts2的基本使用方法,还涉及到了一些高级特性和...