struts2_core NOTE

落叶隐喻的前端生命系统:用Canvas实现数字产品的生物节律 在Web前端开发中,'生命周期管理'不仅是后端概念,更可转化为用户可感知的交互范式。本文围绕'生物节律映射'与'前端状态自治'两大核心,解析如何将植物生理学中的落叶-再生机制,建模为纯前端可执行的环境感知系统。通过Canvas粒子引擎、localStorage加密协议与天文历法计算,实现无需服务器的数据代谢、跨会话意图识别与地理时序同步。该方案为用户留存设计提供非侵入式唤醒新路径,也为轻量级交互项目树立了科学隐喻驱动的工程实践标杆。 阅读详情

1.过去的开发模式是:一,创建表,二,创建实体类(pojo),三,建立DAO,四,JSP/Servlet,但是有了struts2框架后就使用MVC模式,model层包括entity实体bean,dao和service,view层只是简单地不含逻辑代码的jsp页面,controler层即控制层有actionservlet、action以及struts2的核心控制器filterdispatcher,控制层是连接model层和view层之间的桥梁。

2.Struts2的MVC框架工作流程是:当请求到达时,请求会交给前端的控制器actionservlet,actionservlet维护了一个配置文件,即struts.xml,该文件指明了不同的请求对应的不同的action,然后根据不同的请求分发给不同的action,action再调用业务层的dao,dao到数据库去查找相应的数据后将数据与request绑定,再将绑定后的数据发送到客户端页面(显示层jsp),即response回去。

3.为什么要用struts2?

  因为struts2已经将MVC思想封装好了。

4.ognl表达式访问对象的格式是:Ognl.getValue(“ognl表达式”,“root对象”),“root对象”为要操作的目标对象,标准的ognl涉及三个概念:ognl引擎、root对象、context对象,当给一个ognl引擎字符串时,实际上这个字符串就是ognl表达式,ognl引擎就会用这个字符串(ognl表达式)对root对象(即要操作的目标对象)去取值或者设值,context对象其实就是一个map,上下文对象context这个map中存储的是和整个系统相关的公共数据信息,在访问root对象时(即目标对象)有些数据每次都要用到,这些数据就会被存放到context对象中。

5.Valuestack值栈的核心概念:当请求到达时,会先创建一个valuestack,并将当前的action对象放置栈顶,struts2会把valuestack放到request中(struts.valuestack),所以标签库可以访问到valuestack中的内容,栈顶的内容即为要显示的内容。

6.Struts2中的action与struts1中的action不同的是struts2中的action不是单例模式,当请求到达时会为请求创建一个action,并且会为每一个请求创建一个action,所以不用考虑线程安全问题,并且此时的action对象会被置于栈顶,action的业务方法(默认是execute())会根据输入给出相应的输出。

7.Action访问session和application的方法一:

 Actioncontext ctx=ActionContext.getContext();

 Map session=ctx.getSession();

 Map application=ctx.getApplication();

 Session和application将存在valuestack值栈中的context中,若是将其从值栈中取出可以是:<s: property  value="#session" />  <s:property value="#application" />

方法二:通过实现SessionAware接口访问session(更好):

首先是创建BaseAction implements SessionAware,然后是session的XXXAction extends BaseAction,类似的还有ServletRequestAware、ServletResponseAware、ServletContextAware。

8.配置文件中(struts.xml)多个action的class属性可以指向同一个action,只要这个action有多个方法就可以,多个方法可以决定具体可以返回哪些界面,这样做同时也节约了action的数量。

9.在配置文件中可以使用parameter标签指定pojo中的属性的值,这样的话struts2一启动pojo类中的成员变量(属性)就有值了。

10.配置文件(struts.xml)中的result标签主要是负责生成视图(jsp、json、freemaker、报表等),其实result本身也是一个类,从struts-default.xml文件中可以查到result结果类型有10种,但result的type属性如果不进行设定的话默认就是dispatcher(对应ServletDispatcherResult),result的常用类型是:dispatcher、redirect、redirectAction、stream、json,这五个。

11.Struts2封装MVC的具体体现是:model层包括entity(实体bean,如action,pojo),dao(数据访问对象,主要提供对数据库中数据的增删改查方法),service(业务层,主要由spring负责);view层主要由jsp页面负责收集、展现数据;control控制层主要由actionservlet(以及控制器)和action(二级控制器)来负责。

12.用struts2来开发项目的步骤习惯是:先写struts.xml配置文件,再写action类,最后写jsp显示页面,在编程过程中也是要一层一层的写,先构建和定义好方法,最后再实现这些方法,比如Dao可以放到最后来实现,在写项目前最好将定义的属性的名字和含义都记住,这样在项目中可以快速、避免一些问题。如果有些方法定义好了,若担心以后忘记了就可以增加 // TODO xxx的注释,并且可以通过windows--show view--tasks来跟踪这些只定义没有实现的方法,双击这些“TODO”就可以定位到没有定义的方法处。

13.Struts2的标签有通用标签、控制标签、UI标签、AJAX标签,UI标签有8个:form(封装元素)、textfield(普通文本标签)、password(密码框)、submit(提交)、textarea(文本域)、checkbox(多选)、radio(单选)、select(下拉菜单);

 <s:from></s:form>属性有theme(主题),namespace(命名空间),action,method;<s:textfield>和<s:password>属性有maxlength,size,readonly;<s:textarea>有rows,cols;<s:checkbox>属性有name(name相同即为一组)和fieldValue;<s:radio>属性有name,label,list(OGNL需要迭代的集合);listValue(作用于每个选项的提示);listKey(作用于每个要提交的值);<s:select>属性有listValue对应每一个option的文本,listKey对应每一个option提交的值,headerValue提示头的文字,headKey提示头对应的提交值。

14.在default.xml配置文件中可以看到,basicStack中包含了8个拦截器,是struts2的核心拦截器。

15.Struts2的控制流程:

   ①请求到来

   ②创建valueStack,并将当前action放置栈顶,进行初始化

   ③调用拦截器,在拦截器中是可以访问valueStack的

   ④调用action,执行业务方法,默认是execute()

   ⑤调用result,result分组生成界面展示数据给用户

   ⑥最后到页面,通过标签库取出数据

16.struts2共有五大组件:值栈valueStack,OGNL,拦截器,action,result,另外还有资源国际化。

 

AI工程周刊:面向生产环境的可执行技术决策指南 AI技术资讯泛滥时代,真正驱动开发落地的核心不是信息新鲜度,而是可验证性、可操作性与领域适配性。本文聚焦‘工程师晨会级’信息筛选范式,围绕API变更、开源库breaking change、框架隐性升级等高频实操场景,提炼出时效临界点、行动转化率、领域适配度三大判断标准。结合vLLM Kubernetes Operator、AWS Bedrock权限升级、Transformers FlashAttention-2强制启用等真实案例,详解如何将Newsletter转化为命令可执行、环境可验证、决策可闭环的技术雷 阅读详情

相关推荐

2026年AI编程工具选型:聚焦上下文理解深度的脆弱性适配

AI编程工具已从语法补全迈入上下文理解新阶段,其核心价值不再取决于支持语言数量或功能广度,而是对代码语义、业务逻辑与系统约束的深度建模能力。在Python/Java/TypeScript主流语言补全准确率普遍超92%的今天,真正决定开发效能与系统稳定性的,是工具能否理解SPI驱动中的硬件时序、COBOL遗留系统的多源冻结策略,或AWS SDK调用背后的权限契约——即‘上下文理解深度’。这一能力直接关联代码脆弱性地图中的语义脆弱性与架构脆弱性,成为金融、嵌入式、云原生等高保障场景的关键技术指标。本文基于十款主

diaogan4202的博客 387

Struts2-核心组件3

 Result Types从action生成结果,并返回组用户不同的结果值,不都需要相同的类型.结果"success"可以渲染为一JSP页面,但结果"error"可能需要发送一个HTTP头返回给浏览器.结果的类型使用"type"属性在结果节点配置.与"name"属性相似,这个属性也有一个默认值-"dispatcher"-将渲染JSPs.大多数的时间,你将使用所提供的结果类型,但有时也可

面对现实,忠于梦想 1029

Claude Mythos:首个端到端自动化漏洞利用AI模型解析

AI安全模型正从辅助分析工具演进为具备自主攻防闭环能力的智能体。以Claude Mythos为代表的前沿模型,依托大规模代码演化训练、多阶段强化学习与高预算推理机制,首次实现从CVE识别、PoC生成、沙箱验证到RCE落地的全链路自动化。其核心突破在于将传统需人工协同完成的漏洞挖掘、利用开发与防御绕过等环节,封装为可编程、可复现、零人工干预的端到端工作流。该能力已通过SWE-bench Pro、CyberGym及UK AISI企业级攻击模拟等权威基准验证,在真实内核漏洞(如CVE-2026–4747)利用中展

chunchan1381的博客 377

常用框架学习(一)——Struts2

1.1  Struts2概述1.1.1  什么是Struts2Struts2是由Apache社区的Struts1和Opensysmphony的Webwork整合而来,Struts负责对http请求的处理,Webwork负责业务逻辑处理。1.1.2 运行环境搭建1.导入13个jar包(在Struts2自带的demo中可以找到最少所需包)2.需要在web.xml文件中配置StrutsPrepareAn...

不忘初心的博客 3万+

Struts2框架核心库及安全更新详解

本文还有配套的精品资源,点击获取 简介:Struts2是一个基于MVC设计模式的Java Web开发框架,其中Action类是核心,负责请求处理和业务逻辑交互。XWork是Struts2的基础,提供类型转换、拦截器等基础功能。最新版本的"struts2-core-2.3.32"和"xwork-core-2.3.32"修复了安全漏洞,提升了企业级应用的安全性。这两个库提供了强...

weixin_34640289的博客 947

准静态电磁场

叠加法 缺点:对于连续分布的电荷,叠加法的计算比较困难 虚位移法 概念 广义坐标:确实系统中导体形状、尺寸与位置的一组独立几何量。 广义力:企图改变某一广义坐标的力。 功:广义力乘上由它引起的广义坐标的改变量。 公式 ...

qq_35912930的博客 1860

Struts2 简介

1.    Struts2的由来:Struts 1是全世界第一个发布的MVC框架,它由CraigMcClanahan在2001年6月发布,该框架一经推出,就得到了世界上Java Web开发者的拥护,经过长达6年时间的锤炼,Struts1框架更加成熟、稳定,性能也有了很好的保证。因此,到目前为止,Struts 1依然是世界上使用最广泛的MVC框架。目前,基于Web的MVC框架非常多,

走向架构师之路 1383

DroidGuard虚拟机逆向解析:指令集、密钥派生与反调试机制

DroidGuard是Google在Android生态中部署的轻量级定制虚拟机,用于设备完整性校验。其核心原理是通过自解释字节码、多层混淆指令集与动态密钥派生机制,在ART运行时构建静默安全沙箱。技术价值在于规避传统API检测盲区,实现高鲁棒性环境感知;典型应用场景包括金融SDK风控、Play Services可信启动及合规性审计。本文深入拆解其4字节指令编码规则、基于设备指纹的三阶段密钥派生(SHA256→Feistel→AES)、以及五层反调试体系(ptrace快照、时间差分、内存页探测、指令流校验、服

weixin_32736961的博客 586

Struts2核心技术 (一)

struts2struts2发展历史      经过很多年发展,Struts1已经成为了高度成熟的框架,但随着时间的发展,Struts1的局限性和缺点不断的暴露出来。      现在Struts已经分化成了两个框架      -第一个是在Struts1的基础上,融合了另一个web框架Webwork的Struts2.Struts2实质上是以Web

春水上行的博客 2万+

视频教程-SAP S4 HANA FICO COPA 获利能力分析-ERP

SAP S4 HANA FICO COPA 获利能力分析 从业超过8年的SA...

weixin_33456805的博客 1442

【开源训练数据集2】10个最适合机器学习的股票市场数据集

​随着加密货币在世界各地的兴起,人们现在有比以往更多的投资方式。然而,这并不像低买高卖那么简单。如果你能准确预测股市,你就会成为地球上最富有的人之一。因此,之前已经有关于如何利用情绪分析来预测股市的研究。对于那些希望构建类似预测模型的人,本文将介绍 10 个用于机器学习的股票市场和加密货币数据集。

u010542847的博客 2139

struts2.3.3配置以及所需的jar包

转载自http://blog.youkuaiyun.com/pg_guo/article/details/8967384 strtuts2 下开发前的部署步骤 1 导入jar包 strtuts2.3 除了基本jar包 commons-fileupload-1.2.2.jar commons-logging-1.1.1.jar freemarker-2.3.19.jar ogn

liu93的专栏 619

晶圆测试(Wafer Sort)的核心技术与良率提升策略

晶圆测试(Wafer Sort)是芯片制造中的关键“入学考试”,通过探针台与自动测试设备(ATE)对晶圆上的芯片进行功能与参数测试,筛选不合格芯片以控制成本。本文深入解析了其核心技术,包括自动化视觉系统对准、测试流程优化策略,并探讨如何利用测试数据驱动良率提升,展望了DFT与AI智能测试的未来趋势。

e4f5g6h的博客 515

Struts2的一些常量和含义的应用

首先,当我们学习一个框架的时,一般可以参考框架自带的示例项目。例如struts2,刚入门的时候,可以参考其自带的blank项目。当部署完这个项目后,开启tomcat服务,在地址栏里输入请求的action路径时,可以发现,虽然没有给该action定义扩展名,但是地址里输入的action路径没有扩展名或者扩展名为action时都可以通过。为什么呢?这是由struts2的默认配置属性决定的。 ...

web开发 285

mapbox进阶,dem数据转为等高面,加载转换后的等高面到地图

本文详细介绍如何基于mapbox-gl v3.*.* 版本,使用dem数据转为等高面,加载转换后的等高面到地图,亲测可用。希望能帮助到您。一起学习,加油!加油!

我哎GIS博客 407

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

2026年全国青少年信息素养大赛复赛真题(算法应用主题赛C++初中组:带解析)(7月4日试卷一)【文末附答案和解析】

王老师青少年编程 1736

Struts2 template加载 默认是ftl的道理

Struts2 template加载 默认是ftl的道理一般情况下,如果我们需要修改struts标签的表现,方法就是: 指定使用的theme 将struts-core.jar中的theme拷贝出来,解压到classpath下目录名应该为template/${theme} 修改theme中对应的ftl文件 为什么默认使用的是ftl,在何处定义的或者配置的呢? Alternative Templ

sutonline的博客 768

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

struts2的配置和一个简单的例子

简介 这篇文章主要讲如何在eclipse中使用struts2,文章使用的struts2的版本是2.5.14.1,  会与其他的版本有一小点的差别,文章里已经说明。例子的完整源码在文末,亲测没有任何错误。 struts2下载 官网下载地址 USTC镜像站下载地址  最新版是2.5.14.1,这个版本的一些jar包与旧版本不太一样,不过变化不大。  具体的变化建议阅读2

萧曳丶 224

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Struts 2 + Spring 2 + JPA + AJAX

On this tutorial we will demonstrate how to setup Struts 2 in Eclipse, and make it work with Spring, Java Persistence API (using Hibernate) and Struts 2 Ajax tags. NOTE: Following this tutorial ver...

小白编程 100

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Obsidian知识库与AI智能体记忆系统集成实战指南

知识图谱作为组织和管理复杂信息的重要技术,通过实体关系网络实现知识的语义化表示。其核心原理是将非结构化数据转化为结构化的图结构,利用图算法进行高效检索和推理。在AI智能体领域,知识图谱为长期记忆系统提供了技术基础,使智能体能够理解概念间的关联性并保持上下文一致性。Obsidian作为本地优先的知识管理工具,其双向链接特性天然适合构建个人知识图谱。结合AI Research OS框架,可以将Obsidian笔记转化为智能体的动态记忆系统,实现基于向量检索的语义理解和上下文感知。这种集成方案特别适合研究场景,能

weixin_33912246的博客 318

HaE插件集成漏洞数据库:自动化关联CVE信息,提升渗透测试效率

在网络安全领域,漏洞管理是渗透测试与安全审计的核心环节。其基本原理是通过识别软件或系统中的安全缺陷,评估其潜在风险。这项技术的核心价值在于,能够将海量的原始告警信息与结构化的漏洞知识库(如CVE、CVSS)进行关联,从而快速理解漏洞的原理、影响和修复方案。在实际应用场景中,安全工程师常需手动查询NVD、CNVD等数据库,过程繁琐且易中断测试流程。本文聚焦于如何为BurpSuite的HaE插件集成自动漏洞查询能力,通过规则匹配触发API调用,实现从识别“SSL/TLS协议信息泄露漏洞”等特征到一键获取CVE-

weixin_34101784的博客 397

AI Agent在交易日历查询中的实测对比与生产级选型指南

在金融系统开发中,交易日历是计算持仓利息、执行回测等核心功能的基础组件,其准确性直接关系到交易决策与风险控制。传统上,开发者依赖本地文件或第三方API来获取日历数据,但面临维护成本高、更新不及时等挑战。随着大型语言模型(LLM)和AI Agent技术的发展,出现了通过自然语言理解直接查询交易日历的新方案。这些方案利用LLM的知识推理能力或结合检索增强生成(RAG)技术,旨在提供更智能的交互体验。然而,其技术价值必须建立在准确性、一致性和时效性之上,尤其是在处理不同市场的节假日、调休等复杂规则时。本文通过实测

weixin_34198453的博客 407

拆解Web渗透底层逻辑:从溯源发展史到实战核心全维度指南

Web渗透测试是一套标准化、流程化、逻辑化、合规化的完整技术体系,绝非零散工具的堆砌。1. 信息收集是渗透的基石,决定测试深度与成功率,核心在于精细化、绕过防护挖掘隐性信息;2. 高危漏洞探测与利用是核心突破,需吃透漏洞原理,规避工具误报、WAF拦截等问题;3. 权限提升与内网渗透是进阶核心,是区分入门与资深渗透工程师的关键;4. 日志清理与复盘是职业化核心,适配企业合规测试场景。从发展趋势来看,Web安全攻防对抗会持续升级,自动化渗透、AI漏洞挖掘、云原生安全、API安全将成为未来主流方向。

2501_92125808的博客 589

struts2升级报错struts2-core-2.5,30.jarl/struts-default.xml:152:154

struts2升级报错struts2-core-2.5,30.jarl/struts-default.xml:152:154升级报错如下进入对应位置查看源码:再查看这个类所在位置,发现它位于中的包下,而低版本升级为高版本的struts2,是独立引入xwork-core这个包的,加载时将xwork-core这个包的加载了,导致项目启动失败。

凌康的博客 924
上一篇: spring归纳总结(理论)
下一篇: 使用SSH集成框架开发项目步骤
communicate_
博客等级 码龄14年 65粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值