第一章 Struts2 概览

SPRING 2.5 + STRUTS2 配置文件 注释备忘 最近接受了一个项目,SPRING 2.5 + STRUTS2 的。之前的项目只有接触过SPRING 1.X 和 STRUTS 1.X 的。 还是先熟悉一下配置文件的好。 SPRING 2.5 的配置果然比 SPRING 1.X / SPRING 2.0 简洁多了。 第一部分:WEB.XML<web-app version="2.4" xmlns="http:// 阅读详情
Struts 是什么?

Struts 2 是一个雅致的,可扩展的,用来建立企业级Java Web应用程序的框架。
Struts 2 不但注重程序的开发过程,更注重部署和后期维护。
Struts 2 来源于WebWork 2。
Struts 2 融合了Struts 和 WebWork的社区力量,是这两个社区努力的结果。
Struts 2 非常容易使用。
Struts 2 最大可能的保留了和Strut 1.x的相似行。

Struts2 的特性有那些?

上面提到,Struts 2 关注开发,部署和后期维护三个方面。我们就从这三个方面说明Struts 2 的新特性。

构建
    上手非常容易,可以使用起步教程,模板工程或者Maven原型建立Struts 2工程。(起步简单)
       Struts 2 的官方站点上有很多关于Struts 2入门的资料,
       Struts 2 的下载目录中包含空白的模板工程(struts2-blank-2.x.war)和示例工程(struts2-showcase-2.x.war)可以参考。
       Maven 2 中有Struts 2 的项目模板,可以使用Maven 2 直接建立Struts 2 工程

    更好的设计,Struts 2 中不想要要在在处理和HTTP相关的操作,自需要使用框架的接口即可。
       在Strut 2 中不再会涉及到诸如 HttpServletRequest, HttpServletResponse, HttpSession等Http相关的Servlet接口类,取而代之的是Struts 2 的接口,例如RequestAware,SessionAware等。

    强大的标签库,Struts 2 的标签基于 CSS,标签可以提供自己需要的HTML支持。
        Struts 2 的标签利用了CSS和模板,使用起来会非常方便,在Struts 1.x中我们需要使用Table来组织表单,但是在Struts 2中所有的标签自带了Table内容,可以方便的处理格式。例如<s:textfield> 标签自动添加了 <tr> <td> 等标签。

    有状态的Checkbox,可以以一种统一的方式记录checkbox状态的变化。
       在Struts 2中即使没有被选中的checkbox其内容仍然存在于Struts 2 框架中,不必像在Struts 1.x中那样需要做特殊的存在性判断。

    灵活的取消按钮,在取消按钮点击的时候可以指向一个不同的action。
       @TODO
       可以在制定Form的action的同时,制定cancel按钮的action,当点击submit和cancel的时候出现完全按不同的功能。

    第一等级的AJAX的支持,在普通struts 标签的基础上,使用AJAX增加了交互性和灵活性。
       Struts 2 的标签内置了Ajax的支持。Struts 2 的标签使用了Dojotoolkit Ajax框架,不但能够使用Ajax特性,而且能够使用非常丰富和强大的浏览器小控件,例如日期选择控件

    见到那集成Spring框架,非常简单的使用Spring框架提供的依赖注入功能。
       可以方便的使用Spring管理Struts 2 的action的创建,通过使用Spring可以充分的利用Spring的依赖诸如功能,并且能够很好的集成其他的框架,例如Hibernate,iBatis等。

    更多的返回形式,除了JSP还支持,JasperReports,JFreeChart, Action链,文件下载等。
       除了支持JSP的表现形式,还支持JasperResports报表, JFreechart图标,Action链,文件下载等。

    POJO表单,不再需要ActionForms,使用Javabean获得客户的收入或者将属性表示出来,
    完全消除了ActionForm组建,可以使用任意合适的类型来接受页面传来的数据或者将数据表现出来。ActionFrom可以使用POJO的 JavaBean来替代,JavaBean中的属性可以使用String,也可以使用具体的类型,例如Date,Int等。

    POJO Action,使用任意的类作为Action类,甚至可以使用接口。
       任何类都可以作为Action类,只要接口满足一些简单的定义,不需要在使用Action类似的基类,你可以完全自由的发挥。

部署
    插件结构,使用jar文件扩展框架功能,不需要在做手动的配置,内置了JavaServer Faces, JasperResports, JFreeChart, Tiles等插件。
       扩展一个功能只需要添加一个插件,插件甚至可以热插拔,在你的应用不停止的情况下追加新的功能。

    集成了分析功能,可以方便的找到程序性能的问题点。
       可以不借助外力发现程序的热点,找到问题的所在,

    准确的报告错误,可以非常准确的指出程序的问题点。
       准确的报告运行时的错误,方便解决问题。

维护
    Action容易测试,直接测试Struts 2的Action,不需要使用Mock Http对象来测试。
       Action是普通的类,不需要特殊的环境,所以Struts 2 的Action 特别容易测试。

    聪明的默认值,不需要配置不必要的配置,大部分的框架配置元素的都有非常合适的默认值,基本上你不需要在做任何配置。
       Struts 2 有很多的配置项,但是每一个都有默认值,基本额上不需要更改默认的选项即可保证最佳

    容易定制的控制器,可以定制每一个Action的处理过程。
       可以使用Intercepter来过滤每一个Action,在Action执行前后追加自定义的操作。

    集成了Debugging,可以使用内容之的debugging工具找到问题。
      
     灵活的标签库,可以通过修改FreeMarker模板来定制标签的输出,不需要在操作像天书异样的JSP Taglib API,模板语言支持,Freemarker和Velocity     
       可以自定义模板库,或者修改已有模板的内容来定制页面的显示。

Struts 2 中使用的模式
Command
Chain of responsibility

Struts2 处理流程概要

上图来源于Struts2官方站点,是Struts 2 的整体结构。
一个请求在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
 
在上述过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。

Struts2框架核心JAR包组件解析 在Web开发的世界里,框架作为提高开发效率和保障项目质量的重要工具,始终扮演着关键角色。Struts2作为其中之一,是在众多项目中广泛使用的成熟框架。本章节旨在为读者提供Struts2框架的基础知识概览,帮助理解其在Web开发中的地位和作用。在Struts2框架中,拦截器是可插拔的组件,可以根据需要进行自定义和扩展。自定义拦截器需要实现接口,或者继承类。以下是一个简单的自定义拦截器的实现示例:@Override// 在执行Action之前执行的逻辑// 调用下一个拦截器或Action。 阅读详情

相关推荐

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

Struts2简介

Struts2是一个web应用框架。它不是一个Struts的新的发布版本,而是一个全新的框架。Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架。 Struts2是java企业级web应用的可扩展性的框架。 它是WebWork和Struts社区合并后的产物。Struts2没有继承struts 1的血统,而是继承了webwork 的血统。S

on the road 308

AI系统架构设计实战:AI应用架构师的深度指南

核心概念:AI系统架构是指设计和组织人工智能系统各个组件(包括数据、算法、计算资源、集成接口等)的结构框架,以及这些组件之间的交互方式和原则。它为AI应用提供了技术蓝图,决定了系统的性能、可扩展性、可维护性和可靠性。数据的本质:数据是对客观事物的符号表示,是可识别的、抽象的符号。在AI系统中,数据不仅是输入,也是系统学习和改进的基础。数据就像AI系统的"燃料",其质量和数量直接决定了AI系统的能力边界。

AI天才研究院 1198

struts2简介

1、简介       Struts2 是一个web应用框架。它不是一个Struts的新的发布版本,而是一个全新的框架。Struts2 是第二代基于Model-View-Controller (MVC)模型的web应用框架。 Struts2是java企业级web应用的可扩展性的框架。 它是WebWork和Struts社区合并后的产物。 这一版本的Struts2声称,Struts2会接近于原先版本S

taozpwater的专栏 899

ccproxy 6.61 注册机(纯绿/傻瓜/真正去除线程限制)

导读:   软件介绍   1、 CCPROXY 6.61 注册机(纯绿/傻瓜/真正去除线程限制)   ***前言,这次的升级官方改动不大,据说只是为了不被某些软件当病毒***   附件包中解压即免安装版,CcREGTOOLFF.exe为注册机。   本人继续向大家隆重推出《CCPROXY6.61哎呀……破解版》   还是那个提示:   在此之前,本人还是那句老话想提示大家,CCPROXY是

i53nd的专栏 1万+

Windows游戏玩家必看:用Process Lasso优化CPU优先级和核心绑定,告别卡顿

本文为Windows游戏玩家详细介绍了如何使用Process Lasso优化系统性能。通过设置CPU优先级和核心绑定,可以智能管理进程资源,确保游戏获得最高调度权限,有效减少因后台程序干扰或Windows调度机制不完善导致的卡顿与帧数波动,从而提升游戏流畅度与稳定性。

weixin_29299807的博客 2217

Struts2——用来开发 MVC 应用程序的框架,可用于创建企业级Java web应用程序

Struts2教程https://www.w3cschool.cn/struts_2/ Apache Struts 2最初被称为WebWork 2,它是一个简洁的、可扩展的框架,可用于创建企业级Java web应用程序。设计这个框架是为了从构建、部署、到应用程序维护方面来简化整个开发周期。 Struts2 是一个用来开发 MVC 应用程序的框架. 它提供了 Web 应用程序开发过程...

weixin_30448685的博客 381

从零开始:如何用STM32和MAX30100打造你的第一台智能心率监测设备

本文详细介绍了如何使用STM32微控制器和MAX30100传感器从零开始构建智能心率监测设备。涵盖硬件选择、电路设计、软件开发到心率算法实现的全过程,特别适合嵌入式开发新手和创客。通过OLED显示和蓝牙串口传输数据,打造低成本、高精度的心率检测仪,为健康监测项目提供实用解决方案。

7z8x2c4v6b9的博客 191

Struts2框架

一、基本概念与使用 1.Struts 2的起源和背景: Struts 2以WebWork优秀的设计思想为核心,吸收了Struts 1的部分优点,建立了一个兼容WebWork和Struts 1的MVC框架,Struts 2的目标是希望可以让原来使用Struts 1、WebWork的开发人员,都可以平稳过渡到使用Struts 2框架 2.Struts2是什么: Struts 2 是一个雅致的,可扩展的,用来建立企业级Java Web应用程序的框架。 Struts 2 不但注重程序的开发过程,更注重部署和

TimeMoments的博客 369

31、车载通信中的可见光通信(VLC)技术解析

本文详细解析了车载通信中可见光通信(VLC)技术的应用背景、优势及发展前景。对比传统RF通信技术(如DSRC),VLC利用LED照明设备实现高效、安全的车辆与车辆、车辆与基础设施之间的通信,具有频谱资源丰富、安全性高、无电磁干扰等优势。文章还探讨了VLC在交叉口交通控制、高速公路通信、自动驾驶等场景的应用潜力,展望了其在未来智能交通系统中的重要作用。

hill8的博客 318

Scrapy爬虫之热门网站数据爬取--------第2关

第2关:小说网站玄幻分类第一页小说爬取 任务描述 本关任务:爬目标网页的3本小说保存到本地MySQL数据库,目标网页为全书网玄幻分类首页。 注:考虑到单机(非分布式)爬虫的爬取时间和测试平台的压力,我们不爬更多页数的小说了,可以作为课下作业自己完善。 xpath匹配:循环获取相同标签下的内容 通过网页分析,我们在获取小说的章节名时,发现他们都在标签<DIV class="clearfix dirconone">下的li的a中: 这时,我们可以先把其中所有的li标签先获取到: titles = r

weixin_44949187的博客 2836

Struts2漏洞复现合集

1. Struts2简介 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务

weixin_42345596的博客 4926

Trae 保姆级使用指南,零基础小白也能实现编程。

Trae 使用指南 Trae AI 使用 零基础编程 满血版 DeepSeek-R1&V3 AI IDE 深度理解中文开发场景 傻瓜式编程 编程入门 开发入门

Mr.L-OAM的博客 5815

Struts2概览

最近学习了Struts2的一些知识,这里先谈一下对Struts2的一些认识和感触,在后续的博客中再贴出一些具体的代码。     先谈一下Struts2对于Struts1的一些进步: Struts2取代了Struts1的Servlet和Action。Struts1继承Action,不少参数多需要Request来传递参数,Struts2继承ActionSupport,只要实现execute

李黎敏 ——为优秀j2ee架构师而努力 1612

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

研磨Struts2 第一章 Struts2概述-2

1.2  Struts2基础 1.2.1  Struts1时代               随着时间的推移,Servlet+JSP+JavaBean模型暴露出了它的缺点: Ø        流程凌乱:Servlet在完成对用户请求的处理后,下一个页面是谁?如何跳转过去?这些都是在Servlet里面直接写代码来完成的。导致Servlet既要处理请求,还要负责页面的流程,使得Servlet功能

sjms2010的专栏 1065

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java struts2教程_Struts2教程--第一章 搭建Struts2开发环境

第一章 搭建Struts2开发环境Struts2概述在Struts的官方网站上,写着下面两段话:Apache Struts 2 is an elegant, extensible framework for creatingenterprise-ready Java web applications. The framework is designed to streamlinethe full ...

weixin_30204677的博客 486

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

struts2总结

struts2了解 1.到Apache下载Struts 2.0包  http://people.apache.org/builds/struts/2.0.10/ 2.将Struts 2.0 lib下的jar文件加到工程的构建路径(/WEB-INF/lib)--commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,str

mike_caoyong的专栏 3021

Struts2 详解

  (一)自己实现struts2框架        Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。最初的struts1.x很快在企业开发中流行了起来,与此同时,当时还有一个非常的优秀的web开发框架诞生,那就是webwork,但webwork...

qq_41889810的博客 2882

[java][struts2]Struts2框架按照如下顺序加载struts2配置

为了避免struts.xml文件过于庞大、臃肿,提高struts.xml文件的可读性,我们可以将一个struts.xml配置文件分解成多个配置文件,该属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即所有匹配*.action的请求都由Struts2处理。四、在大部分应用里,随着应用规模的增加,系统中Action的数量也会大量增加,导致struts.xml配置文件变得非常臃肿。如果多个文件配置了同一个struts2 常量,则后一个文件中配置的常量值会覆盖前面文件配置的常量值。

一名不太专业的程序员 3364

Struts2的学习第一章

在此记录我学习Struts2的课程,也算是作为课堂笔记。 1.首先:学习框架的好处{ ①可重用代码 ②可重用设计 ③分布式组件管理,便于组件的复用和分离 ④结构统一 ⑤降低开发成本 } 2.Struts2框架相较于Struts1的优势{ ①与JSP/Servlet低耦合 ②业务模型不需要考虑线程安全 ③业务模型为POJO类 ④表单模型的简化 ⑤丰富的视图技术支持 ⑥AO

ming51802的博客 305

Struts2学习笔记——Struts2概览

Struts2

楼上的风景 568
下一篇: 第二章 一个简单的Login 应用程序
struts2
博客等级 码龄19年 885粉丝 103原创
评论 32
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值