Struts中整合的强大Ognl学习(一)】的更多相关文章

测试使用了一个JavaBean的User,User中的Address单独封装再形成了一个JavaBean: 为了测试静态方法和静态变量调用,写了一个Util方法: 因为测试Ognl功能过多所以直接使用的Junit进行测试! 其中只用使用四个struts中的包,创建一个普通的java项目来测试! User.java package mzy.entity; public class User { private String name; private int age; private String…
前言 本文简要介绍了Apache Struts的OGNL注入缺陷,文章中介绍使用简单的应用程序复现OGNL注入.深入研究针对公共漏洞,并理解这类漏洞. 内容 安装Apache Tomcat服务器(入门) 熟悉Java应用程序在服务器上的工作方式(Web服务器基础知识) Struts应用程序示例(Struts应用程序示例) 表达语言注入(表达式语言注入) 了解OGNL注射(对象图导航语言注入) CVE-2017-5638根本原因(CVE-2017-5638根本原因) CVE-2018-11776根…
Struts中的OGNL和EL表达式笔记 OGNL(Object-Graph Navigation Language),可以方便的操作对象属性的表达式语言. 1.#符号的用途 一般有三种方式: 1.1.访问非根对象属性,如类似于#session.msg表达式,由于Struts2的值栈被当做根对象, 所以访问其他非根对象时,需要加#符号. #符号相当于ActionContext.getContext( ): #session.msg表达式相当于ActionContext.getContext().…
Struts中Validate()和validateXxx的使用 学习struts2之后,你会发现validate在之前是没有的!它是怎么实现的呢? validate和validateXxxx都是拦截器实现的!在一个action中如果调用里面的方法则一点会去调用validate这个方法.而如果有validateXxxx这个方法.就要看你现在调用的是不是Xxxx了! 比如,现在外面调用的是login方法(在action)中.顺序是: validateLogin->validate->login…
[摘要:比来做的一个项目中应用到了毗邻池技巧,大概我们人人比拟认识的开源毗邻池有dbcp,c3p0,proxool.对那三种毗邻池来讲,从机能战失足率来讲,proxool轻微比前两种好些.本日我首要简略] 最近做的一个项目中运用到了连接池技术,可能我们大家比较熟悉的开源连接池有dbcp,c3p0,proxool.对这三种连接池来说,从性能和出错率来说,proxool稍微比前两种好些.今天我主要简单的讲述一下proxool,我在项目中成功的配置和源码. 第一步:首先去http://proxool.…
本文是Sharding-JDBC采用Spring Boot Starter方式配置第二篇,第一篇是读写分离讲解,请参考:<Spring Boot中整合Sharding-JDBC读写分离示例> 在我<Spring Cloud微服务-全栈技术与案例解析>书中都是通过XML方式配置.今天给大家演示的是单库中分表的操作,如果用XML方式配置,那么就是下面的配置: <!-- 数据源 --> <bean id="ds_0" class="com.…
一.安装ipython 下载ipython, https://pypi.python.org/packages/source/i/ipython/ipython-2.2.0.tar.gz#md5=b91d3724f655a8e16d022772f696cfd5 cd /app/softwares/ipython tar -zxvf ipython-2.2.0.tar.gz cd ipython-2.2.0 python2.7 setup.py install ln -s /usr/local/p…
Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0)-- 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1)-- 05/16/06Select CONVERT(varchar(100), GETDATE(), 2)-- 06.05.16Select CONVERT(varchar(100), GETDATE(), 3)-- 16/05/06 S…
一.问题描述 在向ASP.NET MVC中整合NHibernate.Spring.NET后,如下管理员与角色关系: 类public class Admin { public virtual string Username { get; set; } public virtual string Password { get; set; } public virtual string Name { get; set; } public virtual DateTime AddTime { get;…
1.struts中如何进行数据校验 在每一个Action类中,数据校验一般都写在业务方法中,比如login().register()等.struts提供了数据校验功能.每个继承自ActionSupport的Action类都可以实现一个validate()方法.struts使用拦截器org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor进行数据校验,根据拦截器的执行流程,它会在执行Action的业务方法之前…
Struts 2框架会将表单的参数以同名的方式设置给对应Action的属性中.该工作主要是由Parameters拦截器做的.而该拦截器中已经自动的实现了String到基本数据类型之间的转换工作.在struts中,默认使用拦截器 <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> 进行请求数据自动封装,它会JSP中提交的…
1.struts中Action的开发方式 继承ActionSupport类,这种方法实现的Action可以进行数据校验: 实现Action接口: 不继承任何类,不实现任何接口: 是否继承类或实现接口,struts都会进行默认拦截器的启动,拦截器的启动和Action没有关系. 2.struts中的通配符 在对action进行配置时,会有重复的情况 <action name="login" class="com.juaner.action.UserAction"…
在OneThink(ThinkPHP3.2.3)中整合阿里云OSS的PHP-SDK2.0.4,实现本地文件上传流程 by shuijingwan · 2016/01/13 1.SDK安装 github地址:https://github.com/aliyun/aliyun-oss-php-sdk 2.复制aliyun-oss-php-sdk-master\src\OSS至passport.hmwis.com\ThinkPHP\Library\Vendor\OSS,如图1.2 复制aliyun-os…
今天上午在DWZ框架中整合kindeditor复文本框控件,发现上传图片是老是提示 “上传中,请稍候...”,上网查看别人说可能是文件路径问题,在想以前在其他项目中用这个控件一直没问题,到这里怎么会出现这个错误呢? 于是从源头一路查找过去, 找到上传配置 uploadJson: '/Scripts/kindeditor-4.1.4/asp.net/upload_json.ashx',于是打开上传文件的upload_json.ashx文件,发现context.Response.Write(Json…
Struts中的 saveToken的方法     saveToken防止2次提交的问题 struts有自带的Token(令牌)的机制来解决重复提交(包括后退,刷新等).举例: 假设:假设有一个新增用户的填写表单页面,填写完后点击"提交"按钮完成数据库录入功能,要求不能重复提交(指类似刷新页面的情况).此时,需要有两个action(第一个action用来生成hidden的token值.第二个action用来校验token值,通过判断来决定是不是重复提交,不是则提交操作,否则提示错误)和至少一个页…
前面学到的用组件去上传 前台: 1.post表单提交 2.表单类型 multipart/form-data 3.intput type=file 后台: Apach提供的FileUpload组件 核心类: FileItemFactory(FileItem的工厂).SrvletFileUpload(Servlet中文上传的核心类).FileItem(封装了上传的表单文件项信息) 其过程比较复杂 struts文件上传: 文件上传拦截器帮助我们完成了问文件上传功能: <interceptor name…
1.action开发 开发的几种方式 (1).继承自ActionSupport,(如果用struts的数据效验功,能必须必须使用此功能,因为ActionSupport实现了数据效验的接口) public class UserAction extends ActionSupport{} (2).实现Action接口,该接口的内容如下.(有五个常量和一个方法) pubic interface Action{ public static final String success="success&qu…
Struts中简单的校验 “计应134(实验班) 凌豪” Struts2校验简要说明:struts2中通常情况下,类型转换要在数据校验之前进行.类型转换其实也是基本的服务器端校验,合法数据必然可以通过类 型转换,但是通过类型转换的不一定是符合项目的合法数据,还必须进行数据校验,所以类型转换是进行数据校验的前提. 比如:struts2可以将String类型的转为int类型,要求用户输入年龄(小于10岁),如果用户输入的不是一个整型而是一个字符 串,或者用户输入的年龄不符合要求,所以在转换之后必须执…
每次看到好的博客我就想好好的整理起来,便于后面自己复习,同时也共享给网络上的伙伴们! 博客地址: springMVC整合Jaxb2.xStream:  http://www.cnblogs.com/hoojo/archive/2011/04/29/2032571.html springMVC整合castor.jibx.Jackson:  http://www.cnblogs.com/hoojo/archive/2011/04/29/2032609.html 1.前言: SpringMVC中整合了…
Struts2中的OGNL表达式语言是对Xwork的OGNL的封装.我们要理解一下几点: 1. Struts2中将ActionContext作为OGNL的上下文环境(ActionContext内部含有一个Map对象) 2. Struts2中的OGNL表达式语言的根对象是一个ValueStack,ValueStack中的每一个对象都被视为根对象. Struts2框架将实例化的Action对象放入ValueStack中,如果是Action链,则多个Action都存在于ValueStack中.而Val…
Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() throws Exception { // 1. 请求数据封装: 2. 调用Service处理业务逻辑,拿到结果数据 3. 数据保存到域中 /* * // Struts中对数据操作,方式1: 直接拿到ServletApi, 执行操作 HttpServletRequest request = Serv…
Spring与Struts框架整合 Struts,用Action处理请求 Hibernate,操作数据库 Spring,负责对象创建 Spring与Struts框架整合的关键点在与:让Struts框架action对象的创建,交给Spring来完成 整合步骤: 1.引入jar文件 引入struts相关jar文件 引入spring-core相关jar文件 spring-web支持jar包 spring-web-3.2.5.RELEASE.jar [Spring源码] struts2-spring-p…
一. 步骤: 1. 拷贝jar包: 1. JUnit-4.9.jar和spring-test-4.2.4.RELEASE.jar ; 2. 替换原来的main函数: 1. 在测试类上使用注解方式替换: @RunWith(SpringJUnit4ClassRunner.class) 2. 在java中,main函数是程序唯一的执行入口; 3. 在单元测试虽然不用使用main函数也可以执行,真实情况是main函数已经写在了JUnit单元测试中; 4. 在Spring中整合JUnit时,需要使用spr…
在我们的很多框架或者项目应用中,缓存在一定程度上可以提高程序的响应速度,以及减轻服务器的承载压力,因此在一些地方我们都考虑引入缓存模块,这篇随笔介绍使用开源缓存框架CacheManager来实现数据的缓存,在微信开发框架中,我们有一些常用的处理也需要应用到缓存,因此本随笔以微信框架为例介绍缓存的实际使用,实际上,在我们很多框架中,如混合式开发框架.Web开发框架.Bootstrap开发框架中,这个模块都是通用的. 1.框架的缓存设计 在我们的微信开发框架中,缓存作为数据库和对外接口之间的一个分层…
struts中action类继承了ActionSupport  默认实现了execute()方法 struts.xml配置文件中 然后可以配置如下映射: <package name ="ActionDemo" extends ="struts-default"> <action name ="HelloWorld" class ="tutorial.HelloWorld"> <result>…
关于在Spring MVC中整合JPA是在我的上一篇关于spring mvc基本配置基础上进行的,所以大家先参考一下我的上一篇文章:http://blog.csdn.net/u012116457/article/details/43528111 接下来是需要新添加的一些文件: jdbc.properties: jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc\:mysql\://localhost\:3306/tmos?useUni…
<constant name="struts.action.extension" value="action,do,htm"/> 表示之后后缀名为action,do,htm的url才能进入struts中的的过滤器,进入过滤器先把后缀名删除后与配置文件中的action名字相匹配,如果相同,则访问此action 如http://localhost:8080/Demo/index.action.action会跳转至 <action name="…
spring中整合memcached,以及创建memcache的put和get方法: 1:在项目中导入memcache相关的jar包 2:memcache在spring.xml的配置: 代码: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:…
关于MEPG-2中的TS流数据格式学习 Author:lihaiping1603 原创:http://www.cnblogs.com/lihaiping/p/8572997.html 本文主要记录了,结合网上两篇博客 1) https://www.maizhiying.me/posts/2017/07/12/demux-ts.html 2) https://my.oschina.net/u/727148/blog/666824 ,mepg-2(13818)文档以及使用ffmpeg将mp4文件转码…
python利用Trie(前缀树)实现搜索引擎中关键字输入提示(学习Hash Trie和Double-array Trie) 主要包括两部分内容:(1)利用python中的dict实现Trie:(2)按照darts-java的方法做python的实现Double-array Trie 比较:(1)的实现相对简单,但在词典较大时,时间复杂度较高(2)Double-array Trie是Trie高效实现,时间复杂度达到O(n),但是实现相对较难 最近遇到一个问题,希望对地名检索时,根据用户的输入,实…