struts2 教程(struts2的基本流程)

其实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

org.apache.struts

struts2-core

2.5.16

“`

3. 配置web.xml

在项目的web.xml文件中配置Struts2过滤器:

“`xml

struts2

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

struts2

/*

“`

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的基本流程的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享