其实struts2 教程的问题并不复杂,但是又很多的朋友都不太了解struts2的基本流程,因此呢,今天小编就来为大家分享struts2 教程的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
随着互联网的快速发展,Java Web开发已经成为当今最热门的技术之一。而Struts2作为Java Web开发框架中的佼佼者,凭借其易用性、灵活性和稳定性,受到了广大开发者的喜爱。本文将为大家带来一份全面的Struts2教程,从入门到精通,助你轻松掌握企业级Java Web开发。
一、Struts2 简介
Struts2是一个开源的MVC(Model-View-Controller)框架,用于构建企业级Java Web应用程序。它由Apache软件基金会维护,是Struts框架的升级版。Struts2具有以下特点:
* MVC架构:将业务逻辑、数据表示和用户界面分离,提高代码的可维护性和可扩展性。
* 易用性:丰富的标签库和插件,简化开发过程。
* 灵活性:支持多种数据绑定、文件上传、国际化等功能。
* 稳定性:经过多年的实践和优化,具有很高的稳定性。
二、Struts2 入门
1. 环境搭建
我们需要搭建Struts2的开发环境。以下是所需的软件和工具:
| 软件/工具 | 版本 | 下载地址 |
|---|---|---|
| JDK | 1.8及以上 | https://www.oracle.com/java/technologies/javase-downloads.html |
| Eclipse | 4.13及以上 | https://www.eclipse.org/downloads/ |
| Struts2 | 2.5及以上 | https://struts.apache.org/download.html |
2. 创建项目
在Eclipse中创建一个Maven项目,并添加以下依赖:
“`xml
“`
3. 配置web.xml
在项目的web.xml文件中配置Struts2过滤器:
“`xml
“`
4. 创建Action
创建一个名为`HelloAction`的Action类:
“`java
public class HelloAction extends ActionSupport {
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
“`
5. 创建JSP页面
创建一个名为`hello.jsp`的JSP页面:
“`jsp
<%@ page contentType="
struts2的主要工作流程,处理方式
给LZ说一下struts2的主要工作流程吧,你可以下载一下他的流程图,首先我们有个请求request进入,会首先走ActionContextClearup清空值栈等,但是会留下我们的session和setgetAttribute等,然后会走一下OtherFilter,其他的一些过滤器什么的,然后就会走到我们的filterDispathcer总控,会询问ActionMapping是否此请求需要struts2处理,如果需要,走到ActionProxy代理类,其次,根据ConfigurationManger配置管理找到struts配置文件,然后才是走到真正需要做事的地方,ActionInvocation会依次走我们的拦截器,拦截器走的时候回去值栈中取值,就是通过taglib放到页面上去,走action再走对应result,最后生成相应返回回去。
给LZ两个图吧,第一个图是具体的点击新增按钮后的一系列处理,第二个图是详细的struts2的流程
struts2的工作流程
在Struts2框架中的处理大概分为以下几个步骤:
1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2框架中继承的标签。在这个过程中需要涉及ActionMapper。
扩展资料:
应用流程注解
当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。
经过Other filters(SiteMesh,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。
FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager)从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。
ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。
拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。
参考资料:百度百科-Struts 2
Struts2的详细工作原理
Struts2工作流程:
1.客户端(Client)向Action发用一个请求(Request)
2.Container通过web.xml映射请求,并获得控制器(Controller)的名字
3.容器(Container)调用控制器(StrutsPrepareAndExecuteFilter或FilterDispatcher)。在Struts2.1以前调用FilterDispatcher,Struts2.1以后调用StrutsPrepareAndExecuteFilter
4.控制器(Controller)通过ActionMapper获得Action的信息
5.控制器(Controller)调用ActionProxy
6.ActionProxy读取struts.xml文件获取action和interceptor stack的信息。
7.ActionProxy把request请求传递给ActionInvocation
8.ActionInvocation依次调用action和interceptor
9.根据action的配置信息,产生result
10.Result信息返回给ActionInvocation
11.产生一个HttpServletResponse响应
12.产生的响应行为发送给客服端。
关于本次struts2 教程和struts2的基本流程的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。




