Struts2框架知识分享

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【6月更文挑战第7天】Struts2框架知识分享

Struts2 是 Apache 软件组织推出的一个相当强大的 Java Web 开源框架,本质上相当于一个 servlet。Struts2 基于 MVC 架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级 Java web 应用程序

     Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

Struts2是一个基于MVC设计模式的Web应用框架,大家可以看看之前分享过的一篇介绍什么是MVC:https://developer.aliyun.com/article/1549674?spm=a2c6h.26396819.creator-center.6.744d3e18e6rdqI


Struts2框架概述

Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会维护,目的是简化Web应用的开发过程。Struts2的核心组件包括模型(负责数据和业务逻辑)、视图(负责用户界面展示)和控制器(处理用户输入并调用模型和视图)。

Struts2框架的特点

  • MVC架构:Struts2采用MVC架构,将应用程序分成模型、视图和控制器三个部分,有助于代码的解耦和模块化开发。
  • 轻量级:Struts2作为一个轻量级框架,不会给应用带来过多负担。
  • 灵活性:Struts2提供了丰富的配置选项,允许开发者根据具体需求调整框架。
  • 社区支持:Struts2拥有庞大的社区,提供丰富的文档和资源支持。

Struts2框架的应用场景

Struts2广泛应用于电子政务、电子商务、内容管理系统等多种Web应用程序中。

Struts2框架的执行流程

  1. 请求拦截:用户发起请求后被Struts2的核心过滤器(如StrutsPrepareAndExecuteFilter)拦截。
  2. Action映射:根据struts.xml配置文件中的映射关系,将请求映射到相应的Action类。
  3. Action处理:调用Action类中的execute方法处理请求,该方法通常返回一个结果视图。
  4. 结果呈现:根据Action返回的结果类型,如JSP页面或FreeMarker模板,呈现给用户。

Struts2框架的优势

  • 易于维护:MVC设计模式使得代码结构清晰,易于维护。
  • 丰富的标签库:Struts2提供丰富的标签库,简化JSP页面开发。
  • 强大的拦截器:拦截器提供了数据校验、日志记录等功能。
  • 灵活的扩展性:Struts2支持通过插件扩展功能。

Struts2框架的未来趋势

  • 人工智能集成:预计Struts2将与AI技术集成,增强数据分析能力。
  • 移动端优化:Struts2将加强移动端支持,提升用户体验。
  • 云计算应用:Struts2将探索云计算应用,优化资源利用。

Struts2框架的实际应用案例

在实际开发中,Struts2框架常用于处理用户注册、登录、信息发布等业务逻辑。例如,用户提交注册信息后,Struts2框架会拦截请求,根据配置文件找到对应的Action类处理请求,并返回成功或失败的视图。

结论

Struts2框架因其轻量级、灵活性和强大的社区支持,在Java Web开发中占据了重要地位。它不仅简化了开发过程,还提供了丰富的功能和易于维护的代码结构。随着技术的发展,Struts2将继续集成新技术,优化现有功能,以适应不断变化的Web开发需求。

Struts2详细工作流程?

    a.浏览器发出welcome.action请求

    b.请求到达Struts的Filter控制器(由于web.xml配置)

c.Struts控制器判断请求类型,如果是/welcome.action或/welcome格式请求,将调用struts.xml配置,寻找对应的Action组件

    d.调用Action组件的execute方法处理请求,最后返回一个String视图标识

    e.Struts控制器根据视图标识寻找相应的JSP(struts.xml中result配置)

    f.调用JSP视图生成响应界面给浏览器显示。

Struts2控制流程?

        1)请求到来

        2)创建ValueStack(Action放栈顶),进行初始化

        3)调用拦截器Interceptor,在拦截器中是可以访问ValueStack的

        4)调用Action,执行execute()方法

        5)调用Result,Result负责把数据显示给用户

        6)最后到页面,通过标记库(Taglib)取出数据

     

Struts2中常用的集中Result组件?

   1)JSP响应

        dispatcher :采用请求转发方式调用JSP组件响应。

        redirect:采用请求重定向方式调用JSP组件响应。(在重定向后,原request和action都被销毁掉,因此在JSP获取不到值)

   2)Action响应

        redirectAction:采用重定向方式发出一个*.action请求

        chain:采用转发方式发出一个*.action请求

   3)流响应

         典型功能:验证码和下载。

         stream:可以将Action中的一个InputStream类型属性以流方式响应输出。

   4)JSON响应

          负责对Ajax请求进行数据响应。

         json:可以将Action中的一个属性或多个属性以json格式响应输出

       (注意:使用前需要引入struts-json-plugin.jar,然后将<package>元素的extends设置成"json-default")


目录
相关文章
|
1月前
|
XML 前端开发 Java
外文翻译:Struts框架介绍
外文翻译:Struts框架介绍
|
前端开发 Java 网络安全
《SSH框架》Struts2
Struts(金属支架),在程序中表示起支撑作用的通用程序代码,Struts2是在Struts1框架的基础上融合了WebWork优秀框架升级得到的。
|
前端开发 Java
|
XML 安全 Java
day25_day27_Struts2_学习回顾
day25_01_学习回顾    1、Struts2框架在三层架构中哪部分进行的再优化?    答:         表现层、MVC模式。2、Struts1和Struts2的一个显著区别是什么?    答:         Struts1的核心控制器是一个servlet。
1450 0
|
XML Java 数据格式
Struts2框架的搭建
搭建一个struts2的框架,在之前已经搭建过struts的框架了,这里的流程基本上差不多,详见 struts1的搭建 首先到官网上下载jar包,这里附一个git的链接struts2jar包下载 新建工程,将下载的jar解压至工程中,项目结构如下: 项目结构 接下来编写struts.
947 0
|
前端开发 Java 开发者
|
前端开发 Java 容器
|
Java 前端开发 Spring
|
Java
Struts2框架基础篇
首先,要了解Struts2框架中参数传递的大体流程: 服务器端的Web容器收到用户的请求(URL)——Struts2的核心控制器FilterDispatcher接受用户发起的请求,然后判断这个请求是交给action还是交给web组件来处理;如果请求的action或web组件不存在,就会报错404。在整个处理过程中,需要一个辅助对象: ActionMapper ,它会确定调用哪个Actio
1622 0
|
Java 数据格式 容器
Spring框架+Struts2框架第一次整合
1:Spring框架和Struts2框架如何整合???   Spring 负责对象创建   Struts2 用Action处理请求 2:Spring与Struts2框架整合的关键点:   让struts2框架action对象的创建,交给Spring完成 3:Spring框架和Struts2...
810 0