昨日下午3点左右,有人爆“北京邮电大学互联网治理与法律研究中心”被黑,进入发现文章内容为现愤怒的小鸟之鞋砸校长版——Angry Shoes——估计隐射当时方校长被砸鞋事件,几分钟后围观人数过多,该网站不间断地出现“Service Unavailable”。
标签归档:后台
Struts 防止表单重复提交
最近开发中碰到了一个重复提交表单的问题,这应该这个非常危险的问题,可能会造成数据库增加大量数据,看了几种解决办法,有用JS提交后将button改为disable的,这其实并没有解决,特别是网络不流畅情况下,也有用cookie的,这里介绍一下Struts的Token机制,基本原理:服务器端在处理到达的请求之前,会将请求中包含的Token值与保存在当前用户会话中的Token值进行比较,看是否匹配,在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的Token,该Token除传给客户端以外,也会将用户会话中保存的旧的Token进行替换,这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的Token就和服务器端的不一致,从而有效地防止了重复提交的发生。
PHP实现URL重写
WordPress的文章大部分地址都是url重写的,下面介绍下利用.htaccess实现url重写。
首先看一个地址:http://yilee.info/notepad1/note/yilee 这个地址的yilee其实是虚拟的,note也并不是一个文件夹,实现起来很简单,在目录下加个.htaccess文件,内容是:
ForceType application/x-httpd-php
</Files>
ok,第一步完成,很容易理解,Apache看到note的url都会当做PHP去处理,在note里我们就要处理这个url了,上PHP代码:
$fields = explode(‘/’, $_SERVER['REQUEST_URI']);
?>
$fields是一个数组,其中$fields[3]就是本文中yilee,其它可以自己尝试,重写完毕,剩下的就靠自己发挥了。
Struts2 下载文件
文件下载最简单的方法就是直接在页面上给出一个超链接,该链接的href属性为服务器上文件的路径。
如果需要对用户下载之前进行进一步的检查,比如判断用户是否有足够的权限来下载该文件等,普通下载是无能为力了。
但如果该文件的文件名为中文,则会导致悲剧的404! 而Struts下载就可以轻松实现!
Struts2拦截器 Interceptor
Interceptor(拦截器)是Struts2的一个非常强大的工具,有许多功能都是构建于它之上,如国际化、转换器,校验等。
什么是拦截器
拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 继续阅读
SSH(STRUTS2+SPRING+HIBERNATE)实现文件上传功能
SSH(Struts2+Spring+Hibernate)实现文件的上传
该模块我是前几天在实验室待了大半天刚刚写的,可能还有很多Bug,在项目中实现文献上传功能.
依旧用SSH实现,逻辑,结构,层次比较清晰.
继续阅读
轻量级框架整合SSH(Struts2+Spring+Hibernate)+JSON实现登录
该模块是”和谐交通“中一小部分,虽然功能简单,但完成了SSH(Struts2+Spring+Spring)的整合,相当于SSH的”Hello World!”吧.
前台由JSON完成,使用AJAX的好处就不说了. 后台为Struts2框架
PS: 该模块在NetBeans下完成,以前习惯用MyEclipse,这次用NetBeans还真是不习惯,但实际项目要求用NetBeans,因为Myeclipse是商业软件,可能引来不必要的争端.
Sigh~~以前还感觉用盗版是理所当然的. 继续阅读
Struts2.1权威指南的第一个例子
经过漫长的一个月,《Struts2.1权威指南》前三章算是看完了,由于之前一直存在Bug,这第一个例子看了不下5编,前后代码重复敲了无数次,广告提供的夜运行不了,于是重复搭建环境最终还是运行不了.
一怒之下重装系统,换成XP,一运行就成功了,真的很郁闷.不过对struts理解更透彻了.
如果对于一个新手,感觉《Struts2.1权威指南》说得并不怎么样,最明显的便是比如几个XML的文件存放的位置等等.
以下便是第一例子的源码. :new1