S2-S1插件工作原理研究
0x00 使用S2-S1插件1.需求对于Struts1的忠实粉丝,在Struts和webwork合并产生Struts2后,Struts1更新和维护就停止了。版本停留在1.3.10。而曾经保留的Action和ActionForm配置习惯还存在,想要移植也是一个麻烦的事情,所以官方写了一个S2-S1-plugin插件。提供的功能有: Can use Struts 1 Actions and ActionForms with no code changes Supports Commons Validator-enabled ActionForms大意是开发者可以使用Struts1中的Action和ActionForm,不需要改变其中的代码。并且支持验证表单。 2.使用使用教程参考:http: ...
阅读更多
BAE更新wordpress
0x00 无法再BAE上自动更新由于BAE是使用SVN或者git进行版本管理,所以每次commit后,wordpress自动更新的文件就会消失,也就是回到了原来的版本。参考我前面写的文章BAE安装wordpress,插件主题安装和附件存储 0x01 手动升级wordpress 通过svn delete 将wp-admin/ 和 wp-includes/ 文件夹 保留wp-content/文件夹。将最新版本wordpress中的内容全部复制到网站目录下。但是保留wp-content文件夹和wp-config.php文件,其余均覆盖。 最后svn提交,快捷发布。访问wp-admin目录完成更新。还挺简单的。 0x02 参考http://jingyan.baidu.com/article/f54 ...
阅读更多
tomcat源码导入调试
0x00 环境 apache-tomcat-7.0.57-src apache-ant-1.9.5-bin MyEclipse 2013 jdk1.6.0_45 (编译tomcat7,必须是使用jdk6) 0x01 导入tomcat源码步骤1.安装jdk1.62.安装apache-ant-1.9.5-bin3.配置好环境变量4.进入tomcat目录,运行ant命令,进行编译在编译之前,在build.properties.default重命名为build.properties。修改内容base.path=H:\tomcat\basepath(想存储依赖库的路径) 5.运行ant extras命令,下载依赖的jar包 6.MyEclipse新建一个java项目,将必须的jar包导入 ant ...
阅读更多
cpp中vector,list,dequene的总结
1.特点: vector相当与数组,从后面快速的插入与删除,直接访问任何元素 deque双队列,从前面或后面快速的插入与删除,直接访问任何元素 list双链表,从任何地方快速插入与删除 2.存储结构 vector:在堆上建立的一维数组,它拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随即存取,即[]操作符。 list : 本质是一个双向链表(根据sgi stl源代码),内存空间不连续,通过指针进行操作。说道链表,它的高效率首先表现是插入,删除元素,进行排序等等需要移动大量元素的操作。 deque : 是一个double-ended queue是由多个连续内存块构成,deque是list和vector的兼容,分为多个块,每一个块大小是512字节,块通过map块管理,map块里保 ...
阅读更多
CPP对汉字的处理
学习cpp程序时,处理的都是英文字符串。而如何处理汉字字符串呢? 这就需要了解汉字编码了。 这里是一篇好文章: [http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html](http://www.cnblogs.com/skynet/archive/2011/05/03/2035105.html) 我简要的理解为,将输入的汉字转换为通用的Unicode编码,在C++中用wchat_t存储,进而使用wstring操作。转换为wstring后,就可以像处理英文字符串一样,数组处理了。 下面是char转为wstring的代码:1wchar_t* MBCS2Unicode(wchar_t* buff, const char * s ...
阅读更多
子字符串returnLocalVariable错误
这样编辑了获取子字符串 的功能函数,却悲剧的犯了个错误。 ouputString为局部变量指针,局部变量在程序堆栈中分配内存,暂时存储,这样的地址在执行完函数后就会被释放。所以返回的地址是错误的! 应该用static或者动态分配内存。 [c] char *subString(char *intputString , int start , int length) { if((start + length) > strlen(intputString))//越界了 return NULL; char outputString[MAX_LENGTH]; int i; for(i = start;i < start + length;i++) { outputString[i-star ...
阅读更多