Struts2这个框架每年都会出现那么几个漏洞,不得不引起斗哥学习的兴趣。本期将从Struts2的一个罪魁祸首ONGL表达式开始介绍到S2-001漏洞的分析。Struts2系列的漏洞涉及Java Web等相关内容,后续会持续更新漏洞分析以及相关知识背景介绍等。
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说JSTL、EL、ONGL、Struts标签的区别与使用「建议收藏」,希望能够帮助大家进步!!!
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
Struts2_通用标签 ---- property 标签 property 标签用来输出一个值栈属性的值 default [String] 可选 默认:,如果value值为null或没有给定,将显示该属性值 escape [Boolean] 属性 类型 默认值 说明 default String 可选,如果value值为null或没有给定,将显示该属性值 escape Boolean true 可选,是否要对HTML特殊字符进行转义 value String <来自栈顶对象> 将要显示的值 示例:
OGNL,全称是 Object-Graph Navigation Language(对象导航语言),是一种功能强大的开源表达式语言,通过简单的表达式语法就可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。OGNL 是被集成到 struts2中的,并不是 struts2 项目的一部分,struts2 用 OGNL 来取代原始 java web 项目中的 EL 表达式。
AOP 是 Aspect Objected Prograing(面向切面编程)的缩写。struts2 中的拦截器就是这种编程策略的一种实现,AOP 思想是在基本功能上,不通过修改源代码就可以扩展功能,提高代码的重用性。
访问到http://127.0.0.1/hello.action时,则就映射到HelloWorldAction.execute方法里面,而这里的方法返回SUCCESS,struts2这样进行了配置
根据文章内容总结的摘要
前言 前面已经把struts2讲内容说了一半了,我写的很详细,希望对博友们有帮助。 一、OGNL表达式语言概述 1.1、OGNL表达式简介 百度上是这样说: OGNL是Object-Gra
今天开始第五章啦,本章主要内容:Struts 2拦截器、Struts 2文件操作、Struts 2国际化。
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式。 Struts2框架使用OGNL作为默认的表达式语言。 为什么我们学习OGNL 在学习JSP的时候,我们已经学习过了EL表达式。EL表达式用起来也十分简单…我们在Struts2框架中也是可以使用EL表达式的…那么OGNL表达式好在哪里呢?? 支持对象方法调用,如xxx.doSomeSpecial() 支持类静态的方法调用和值访问,表达式的格式【例如:"@@floor(10.9)
要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:<%@ taglib prefix=”s” uri=”/struts-tags”%>
struts技术的logic标签-- - 开源项目最好的是可以让我们从项目的源码本身角度看项目,通过对源码的了解更多的是对设计思想融会贯通达提升整体能力的目的。blog也是一个好的项目,可以让不从事网页制作人们也可以通过简单的配置实现在网上发布文章的目的。先前也用struts做过两个项目,现在只是想从另一个角度来理解它。每天看了一点儿struts的源码,记录下自已的理解。 一、定义标签文件(web.xml) /tags/struts-logic /WEB-INF/struts-logic.tld 二、引用标
虽然目前Struts MVC框架不怎么用了,但它确是个能帮助大家很好地入门Web MVC框架,而且,一些历史项目可能还用Struts,反正技多不压身,大家如果能在面试中通过项目证明自己Struts这块也很熟,这也是个非常好的加分项。 这里我们就从搭建Struts基本框架入手,再深入讲解些面试中常会靠到的Struts知识点,本文的文字和案例根据java web轻量级开发面试教程改编。 ///////////////////////////////////////////////////////
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
前言 前面Struts博文基本把Struts的配置信息讲解完了…..本博文主要讲解Struts对数据的处理 Action开发的三种方式 在第一次我们写开发步骤的时候,我们写的Action是继承着Act
一、Struts2的拦截器 1.1 拦截器概述 拦截器,在AOP( Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 在 Webwork的中文文档的解释为—拦截器是动态拦截 Action调用的对象。它提供了一种机制可以使开发者可以定义在一个 action执行的前后执行的代码,也可以在一个 action执行前阻止其执行。同时也是提供了一种可以提取 action中可重用的部分的方式。 谈到拦
一、struts2综合案例 1、建立一个JavaWeb应用 2、拷贝一下内容到您应用中:美工MM给你准备好的 3、搭建Struts2的开发环境 a、拷贝jar包 b、配置Struts2核心过滤器器 w
本文介绍了Struts2结果类型解析的详细用法和配置解析,通过实例介绍了如何配置和解决常见错误类型,包括类型转换错误、解析错误、资源文件错误和类型转换错误等。同时,本文还介绍了在Struts2中配置文件注释和结果类型注释的用法,以及如何自定义结果类型,并给出了详细的注释示例。
入门操作 本人独立博客https://chenjiabing666.github.io 导入jar 包 到官网下载相应的jar包 导入前阶段必须的jar包 创建项目 在eclipse中创建一个web项目 在webContent下WEB-INF/lib下导入需要的jar包即可 配置核心过滤器 StrutsPrepareAndExecuteFilter (web.xml) 核心过滤器相当于springmvc中的前端控制器的功能,都是用来分发请求的 这里的核心过滤器默认分发的请求是以.action结尾的请求,
Struts2 (技术版本可能过低大家答题时换成最新的即可) 1 该案例包括首页,用户登陆、网站向导页面。就这么简单,没有深奥的struts概念,主要靠动手,然后用心体会。 WEB Server用tomcat4。 到http://jakarta.apache.org下载struts1.1,把zip文件释放到c:\struts, 拷贝C:\struts\webapps\struts-example.war 到c:\tomcat4\webapps中,启动tomcat,war包被释放为struts-exampl
作者 yiran4827 Struts S2-020这个通告已经公布有一段时间了。目前大家都知道这个漏洞可以造成DOS、文件下载等危害,相信各大厂商也已经采取了相应的安全措施。今天是和大家分享一下对这个漏洞的一点研究,包括如何在Tomcat 8下导致RCE,目的是抛砖引玉,有不足之处欢迎大家指出。 1.属性列举 这个漏洞分析的一个难点在于:通过ognl的class.xx这种方式来遍历属性时,得到的是实际运行环境中的动态class,因此仅作静态分析是很困难的。例如classLoader,在不同容器中就各不
通配符映射 一个 Web 应用可能有成百上千个 action 声明. 可以利用 struts 提供的通配符映射机制把多个彼此相似的映射关系简化为一个映射关系 <action name="czy_save" class="com.qbz.struts2_02.GG_CZY" method="save"> <result name="save">/WEB-INF/page/save.jsp</result> </action> <actio
本人在看《J2EE核心模式》(“Core J2ee Patterns”,刘天北、熊节译),里面提到了一种实现资源保护的方法,那就是把那些限制访问的资源(比如说jsp源代码)放到Web应用的WEB-INF目录下,对于/web-INF/及其子目录,不允许直接的公共访问,所以就可以起到保护这些代码未经授权的访问和窥视,更好的保护了源代码(19页)。
1.首先将所必须的Jar包放到项目的WebRoot/WEB-INF/lib目录下。 如果你没有这些Jar文件,你可以到Struts官网上下载:http://struts.apache.org/。因为经常会用到这些Jar包,因此我将Struts所需的Jar包进行了整理,你可以点击这里下载。 Struts所需Jar包下载:http://pan.baidu.com/s/1c0pdqTy 密码:jb2m 如果你想了解更多关于以上列出的Jar包的信息,你可以阅读我的另一篇文章:(MARK) 2.在web.xml中加入
Struts2是一个基于MVC设计模式web应用框架,在webwork框架技术基础上,Strurts2核心是拦截器,Struts2框架的核心功能都依靠拦截器实现的。Struts2框架对控制器进行了统一的和规范。
放在webroot下面:优点,程序结构清晰,便于编码和维护;缺点,要加过滤器。 放在web-inf下面:优点,不用过滤器;缺点,打乱了程序结构,编码和维护麻烦点。
1.进入Struts2的官网下载Struts2安装包:http://struts.apache.org
为什么有 struts 框架 Struct 的优点之处: 1. struct的好处 2. 程序更加规范化 3. 程序的可读性提高了 4. 程序的 可维护性增加了 Struct 的不足之处: 1. From表单有点鸡肋 2.action是单态(对网站并发性的处理有影响) -----------框架提高了程序的规范的同时,也约束了程序的自由。 * Structs 为什么有? 因为我们对mvc的理解不同,可能造成不同的公司写程序的时候,规范不统一,这样不利于程
前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的。 struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。 过去,我们用jsp和servlet搭配,实现展现时,大体的过程是: 1 jsp触发action 2 servlet接受action,交给后台class处理 3 后台class跳转到其他的jsp,实现数据展现
Struts2 基础知识学习总结 Struts2 概述:Struts2 是一个用来开发 MVC 应用程序的框架,他提供了 Web 应用程序开发过程中的一些常见问题的解决方案,比如对于用户输入信息合法性的验证,统一的布局,国际化等,既然有 Struts2 那么肯定有 Struts1,但是从本质上讲 Struts2 不是从 Struts1 扩展而来的,更应该说是一种换了品牌标签的 WebWork 更合适。 struts1 VS struts2 struts1 里使用 ActionServlet 作为控制
action VS Action 类 action: 代表一个 Struts2 的请求. Action 类: 能够处理 Struts2 请求的类. 1.属性的名字必须遵守与 JavaBeans 属性名相同的命名规则. 属性的类型可以是任意类型. 从字符串到非字符串(基本数据库类型)之间的数据转换可以自动发生 2.必须有一个不带参的构造器: 通过反射创建实例 3.至少有一个供 struts 在执行这个 action 时调用的方法 4.同一个 Action 类可以包含多个 action 方法.
Struts2 概述:Struts2 是一个用来开发 MVC 应用程序的框架,他提供了 Web 应用程序开发过程中的一些常见问题的解决方案,比如对于用户输入信息合法性的验证,统一的布局,国际化等,既然有 Struts2 那么肯定有 Struts1,但是从本质上讲 Struts2 不是从 Struts1 扩展而来的,更应该说是一种换了品牌标签的 WebWork 更合适。
上面博文,主要简单的介绍了一下SSH的基本概念,比较宏观,作为初学者能够有一个整体上的认识,个人认为对学习有很好的辅助功能,它不仅仅是一个“瞭望塔”,更是检验是否真正掌握所有内容的一个前提。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/47048123
解压后,在apps文件夹下面有5个*.war文件,解压struts2-blank.war文件
a、拷贝必要的jar包(图中黄色框框) 和 与数据库操作有关的jar包与配置文件(图中绿色框框)
Struts2的Action类很有意思,你可以使用3种方式来实现具体的Action类:
完整代码:Struts16ActionResultsDemo.rar 1.动态结果。 有时我们需要在Action里取得我个要转跳的页面 看一下我们的struts.xml <?xml versio
-在struts核心配置文件详解(action)中已经详细讲解了method的用法,使用这个方式可以指定Action类中的不同的方法映射请求,那么就完成了动态调用
本文使用最新的Struts 2.3.24.1版,演示了怎样用Apache Struts 2构建最基本的Web应用。
Struts2框架由3个部分组成:核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。在这3个部分里,Struts 2框架提供了核心控制器FilterDispatcher,
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/48066167
-如果用户输入的的URL地址在这个<package>下,即是namespace符合,但是在其中没有相应的action的做出响应,可能是地址输错了,此时的我们需要使其跳转到error.jsp页面,给用户一个提示。那么我们这个时候就需要使用默认的action。
Model,业务逻辑层,验证username和password,暂定都为”admin”。当然假设嵌入项目中,验证的数据能够从数据库提取
struts2被很多新手诟病的一个地方在于“配置过于复杂”,相信不少初学者因为这个直接改投Spring-MVC了。convention-plugin、 config-browser-plugin这二个插件的出现,很大程度改善了这个囧境。 简言之:convention-plugin采用"约定大于配置”的思想,只要我们遵守约定,完全可以少写配置甚至不写配置;而config-browser-plugin则用于方便的浏览项目中的所有action及其与jsp view的映射。这二个插件结合起来学习,能很方便的搞定st
本文实例为大家分享了Struts2框架拦截器实例的示例代码,供大家参考,具体内容如下
领取专属 10元无门槛券
手把手带您无忧上云