最近分析 confluence 的漏洞,发现是基于 Struts 框架的,其中有很多相关知识点并不了解,因此专门来学习一下 Struts 2。...之类的疑问,事实上这个框架也确实是过时了,现在Java Web 开发早已是 Spring 全家桶一统江山的局面。但我们也不能不承认曾经 Struts 的地位。...Struts2 + Spring + Hibernate 三大框架在当年组合号称 SSH,对 Java Web 应用生态产生了深远的影响,以至于现在有许多知名应用中还有 Struts 的影子。...有趣的是它不像 Spring 等其他 Web 框架将功能插入到 Servlet 中(DispatchServlet),而是插入到 Filter 中,如下所示: <?...confluence 由 Atlassian 开发是一个知识库管理服务,支持本地部署,其 Web 框架主要基于 Struts 2。
在 Struts2中,访问 Servlet API有3种方法,具体如下: 1.1 通过ActionContext访问 Struts2框架提供了 Action Context类来访问 Servlet...框架还提供了 ServletActionContext类,该类包含了几个常用的静态方法,具体如下: ● static HttpServletRequest getRequest ( ) :获取Web...框架提供了ActionContext类来访问Servlet API,虽然这种方法可以访问Servlet API,但是无法直接获得 Servlet API 实例。...中,当框架调用 Action对请求进行处理后,就要向用户呈现一个结果视图。...到这我们已经了解了 Struts2的结果页面的配置了,也知道如何接收数据了,但是接收过来的数据,往往需要进行封装才会向业务层进行传递,那么作为一个框架,如果连这点功能都没有,那就太不像是一个“框架”了。
application) 设置Application的上下文 void setSesstion(Map session) 设置一个Map类型的Session值 这种方式是 struts2...相比这种原始的封装方式,struts2 提供了把表单数据封装到对象中更简单的方法。 3.1 属性封装 直接把表单提交的数据封装到 Action 类的属性中。
OGNL 是被集成到 struts2中的,并不是 struts2 项目的一部分,struts2 用 OGNL 来取代原始 java web 项目中的 EL 表达式。...1.3 OGNL 的简单使用 OGNL 在 struts2 中,要结合 struts2 的标签一起使用,首先要 导入 OGNL 的 jar 包,在jsp页面中我们就可以直接使用 OGNL 表达式完成之前需要使用...牛刀小试: 记得在 web.xml 文件中配置 struts2 的拦截器。...值栈英文是 ValueStack,它其实是 struts2 的一个接口,而 OgnlValueStack 是 ValueStack 的实现类,浏览器访问 一个 action 请求时,struts2 架构会创建一个...1.4.2 % 的使用 struts2 中还定义了表单输入标签,如果在 struts2 的表单标签中使用 OGNL 表达式是不能识别的,需要 %{OGNL表达式} 才能识别。
struts.jpg 1.struts2 框架介绍 ---- struts2 框架在 struts1 和 WebWork的技术上合并而来的,全新的struts2 框架是以 WebWork 框架为核心,采用拦截器的机制来处理用户请求...,是一个基于 MVC 设计模式的 Web 框架,本质上相当于一个 servlet,struts2 作为控制器来建立模型和视图之间的数据交互。...---- 2.搭建 struts2 框架 ---- 2.1 准备 struts2 包 struts2 也是 Apache 基金会下的一个开源项目,可以直接去官网下载 struts2 的 zip 压缩包,...2.2 导入 struts2 的 jar 包 不同与一般的 java 项目,使用 hibernate 时,可以自己建立用户库,在项目中加入构建路径即可,使用 struts2 框架不能使用用户库这种方式,...---- 4.1 struts2 框架设计思想 前面提到 struts2 是一个 MVC 的 Web 框架,Web 层的框架都是基于前端控制器的模式,如下图所示,传统的方式,页面上的每个请求,是交给一个的
一、Struts2框架的概述 Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中。...在介绍 Struts2之前,先来认识一下 Struts1。Struts1是最早的基于MVC模式的轻量级Web框架,它能够合理的划分代码结构,并包含验证框架、国际化框架等多种实用工具框架。...为了符合更加灵活、高效的开发需求,Struts2框架应运而生。 ...那么除了 Struts2之外,还有那些优秀的WEB层框架呢?...● src:该文件夹用于存放该版本 Struts2框架对应的源代码 有了 Struts2的开发环境,接下来我们亻可以进行 Struts2的开发了。
1.2 拦截器概述 struts2 框架的许多功能都是基于拦截器的,struts2 中有很多拦截器,默认的拦截器每次都执行。...说到拦截器,还有一个种重要的概念——拦截器链(在 struts2 中称为是拦截器栈)。...1.3 struts2 拦截器原理 struts2 的拦截是通过 xml文件的配置实现的,默认的拦截器在 struts2-core-*.jar 包中的 struts-default.xml 文件,可以查看源代码...在实际的开发中,如果想使用是 struts2 中没有的拦截器功能,这时就要自己写自定义的拦截器。...中对应的表单标签(知道即可) 注意要在 jsp 中引入 struts2 的标签库。
前面已经介绍过了MVC思想,Struts2是一个优秀的MVC框架,大大降低了各个层之间的耦合度,具有很好的扩展性。...从本篇开始我们学习Struts2的基本用法,本篇主要包括以下内容: Struts2的下载安装 理解整个框架的运行流程 自定义实现Action 自定义配置处理结果 一、下载和安装Struts2 ...二、理解Struts2的运行流程 下面演示一个完整的使用Struts2的实例,目的不是具体的代码,重点在于理解整个框架的运作流程。...这就是一个简单的Struts2框架的请求和响应过程,可以看到整个框架的核心是主拦截器和各种控制器Action,下面我们具体看看控制器的相关知识。...那我们在Action控制器中没法直接操作Servlet的一些对象,例如:request,response等,但是Struts2框架提供了一个工具类,可以为我们提供这些对象。
上篇 Struts2框架的基本使用(二)介绍了Action和result的相关配置操作,本篇接着介绍剩下的异常处理机制和Convention插件的使用。...下篇文章介绍的是Struts2框架中标签库的使用情况。 一、Struts的异常处理机制 每一个优秀的MVC框架都有一套完善的异常处理机制。...在Struts框架中默认是定义了一个异常拦截器,用于捕获Action抛出的异常,它有点像我们的核心拦截器。...*,org.hibernate.*"/> 我们看到该常量指定了四个包,正是我们之前强调的action ,actions ,struts,struts2。...到目前为止,有关Struts2的基本使用就简单的介绍完了,下篇介绍struts2的标签库技术。总结的不好,望大家不吝赐教!
上一篇 Struts2框架的基本使用 我们限于篇幅,最后简单介绍了Action的配置问题,本篇接着介绍有关框架的一些其他基本用法,主要内容如下: Action的基本配置 result的基本配置...我们在Struts.xml中指定了默认调用的方法是myMethod,从结果图中我们可以看出来,框架执行了我们的myMethod方法而不是默认的execute方法。 ...在配置action元素的时候,Struts框架允许我们在name属性字段使用通配符。即使用 * 代表一个或多个字符,然后我们可以在class属性或者子元素中使用{n}来获取 * 所代表的内容。...在Struts框架中loginABC原URL优先级最高,后面两种优先级相同,具体选择按照先后顺序。...虽然我们没有配置error结果对应的物理视图,但是通过查找全局的结果,框架还是找到error.jsp并forward结果返回。
在确定了IDE和Server之后,就要选择一个web框架了。我选择的是struts2,因为它的使用率很高,网上也很多资源,遇到问题好查。...struts2网上的最新版是2.2.1。 创建项目 打开MyEclipse,新建一个Google Web Application: ? 创建完成后的文件结构如下: ?...点击“添加jar…”,在弹出的对话框里选择lib下的那几个struts2的jar,如下图: ? 完成之后,项目结构中会多出一个“引用的库”,如下图: ?...javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> struts2...输入用户名gae,密码struts2,成功跳到了home。 最后,把它发布到Google app engine上去,也是可以成功运行的: ? ?
1:Spring框架和Struts2框架如何整合??? ...Spring 负责对象创建 Struts2 用Action处理请求 2:Spring与Struts2框架整合的关键点: 让struts2框架action对象的创建,交给Spring完成 3:Spring...框架和Struts2框架开发步骤: (1):引入Struts2框架的相关jar包 (2):引入Spring框架的相关jar包 (3):引入spring-web支持的jar包 spring-web...-3.2.5.RELEASE.jar 【去spring的lib里面找即可】 struts2-spring-plugin-2.3.4.1.jar 【去struts2的lib里面找即可】...-- struts2配置 --> 15 16 struts2 17 <!
ognl-3.0.jar struts2-core-2.2.1.jar xwork-core-2.2.1.jar注意2.1以前是没有commons-fileupload-1.2.1.jar, 2、如果struts2...配置过滤器的时候应该是这样: indexstruts2 org.apache.struts2.dispatcher.FilterDispatcher struts2.../*如果struts2 版本是2.1以上web.xml配置 index.jspstruts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2
目录 1、系统设计 2、数据库设计 3、系统管理 4、用户管理 5、名片管理 ---- 本篇博文将分享一款基于Struts2框架的名片管理系统,JSP引擎为Tomcat9.0,数据库采用的是MySQL5.5
本文链接:https://blog.csdn.net/zhao1299002788/article/details/100826692 1.2 知识点 1.2.1 Struts2的Servlet的...原来的Servlet是单例存在,多次请求,请求都是同一个Servlet的实例.Struts2中Action是多实例的.有异常请求就会有一个Action的实例....大部分我们会优先使用模型驱动的方式,因为Struts2内部有很多结果是围绕模型驱动设计的。但如果页面向多个对象中封装,那么就需要使用属性驱动的方式二了。...这些都是像某个对象中封装数据, 1.2.3 Struts2的数据封装 : 1.2.3.1 Struts2中的数据封装-属性驱动 : 提供对应属性的set方法的方式 : 页面...3 struts2对页面数据封装的方式: 4种 ps:action多实例的,每访问一次就创建一个action对象,所以它成员位置的属性不存在线程危机 1 属性驱动---set方式 条件:
OGNL : 对象导航语言,是一门功能强大的表达式语言(功能比EL强大很多倍).Struts2将OGNL引入到自身,作为Struts2的表达式语言....struts2的默认表达式语言就是 : ognl 1.3.1.2 OGNL的作用 : 1 : 获取对象的方法; 2 : 获取类的静态属性; 3 : 获取类的静态方法;...value); } } 4 : 通过它获取值栈中的数据; 1.3.3.1 值栈内容 : 后进先出 值栈 : ValueStack 是struts2...拦截器和filter类似,区别 : 1 : filter可以拦截所有的资源,是javaweb的内容.. 2 : Interceptor只能拦截action,是struts2的组成部分....在struts2中,拦截器它就是对我们的动作方法进行增强.
本文链接:https://blog.csdn.net/zhao1299002788/article/details/100826655 1.2 Struts2的概述 : Struts2是一个基于MVC...设计模式的WEB层的框架. 1.2.1 常见web层框架 Struts1,Struts2,WebWork,SpringMVC Struts本质上相当于一个servlet,在MVC设计模式中...,Struts2作为控制器(Controller)来建立模型与视图的数据交互....其全新的Struts2的体系结构与Struts1的体系结构差别巨大.Struts2是以WebWork为核心,采用拦截器的机制来处理用户的请求,所以Struts2可以理解为 WebWork的更新产品....Web层的框架都有一个特点 : 遵循前端控制模型.不同的web层框架实现的前端控制器模型的技术是不一样的.
2、搭建Struts2的开发环境 2.1、添加Struts2框架的核心jar包 由于我们是使用Maven管理项目中的jar包的,所以我们需要在pom.xml文件中添加Struts2框架的核心jar包的描述...编辑pom.xml文件,添加添加Struts2框架的核心jar包的描述,如 1 22 2.5、测试Struts2框架是否搭建成功 编写一个TestAction类,用于测试 1 package...框架的开发环境的相关介绍,使用了Maven之后,大大提高了框架开发环境的搭建速度,起码我们不再需要关心Struts2框架的开发环境需要哪些jar包,我们只需要引入Struts2的核心jar包struts2
今天的内容全都是重点 一、Struts2中的拦截器(特别重要) 1、拦截器的重要性 Struts2中的很多功能都是由拦截器完成的。...Struts2框架使用OGNL作为默认的表达式语言。...2、OGNL的功能 前提:OGNL是struts2整合的一个开源项目,所以在struts2中,要想使用OGNL表达式,必须使用Struts2标签库 2.1、支持普通方法的调用 ? ?...框架为我们存数据。 1.1、利用ActionContext存数据 ? 1.2、利用ValueStack存数据 a、如何获取ValueStack: ?...2、取数据:用Struts2的标签(OGNL表达式)在JSP上(用的最多) 使用OGNL表达式来去,struts2的OGNL表达式必须写在struts2标签中。
一、OGNL配合通用标签的其他使用 1、iterator标签(很重要) 2、OGNL投影(了解) 2.1、使用过滤条件投影 2.2、投影指定属性 3、Struts2中#,$,%符号的使用(重要) 3.1...@encode(filename,"UTF-8")} 3.3、% 在struts2中,有些标签的value属性取值就是一个OGNL表达式,例如<s:property value="OGNL Expression...4、其他标签 4.1、set标签 4.2、action标签 4.3、if标签,elseif标签 else标签 4.4、url和a标签(很有用) 二、<em>Struts2</em>的UI标签和主题 1、<em>Struts2</em>中UI...2.1、UI标签的通用属性 2.2、关于checkboxlist的使用: 2.3、UI标签的小案例以及模型驱动的分析 3、UI标签的模板(主题) 3.1、<em>struts2</em>中默认主题 默认主题的名称是XHTML...三、防止表单重复提交(拦截器) 1、回顾之前的解决办法: 2、<em>Struts2</em>中的解决办法: 2.1、使用重定向 遗留的问题:防不住后退,再提交。
领取专属 10元无门槛券
手把手带您无忧上云