在注册时我们需要验证用户所输信息的正确性,如果待用户提交表单一次性验证,体验不是很好,所有我们可以利用jQuery实时验证,很多网站都有这个功能,这里我们也简单的来实现一下。以验证用户名为例,可以这样实现:当用户名的输入框失去焦点时,利用jQuery的post方法通过HTTP POST 将用户名以JSON格式传向服务端,服务端接收数据判断后以JSON格式传给jQuery的回调函数即可,很简单的。
Tag Archives: Struts
Struts 防止表单重复提交
最近开发中碰到了一个重复提交表单的问题,这应该这个非常危险的问题,可能会造成数据库增加大量数据,看了几种解决办法,有用JS提交后将button改为disable的,这其实并没有解决,特别是网络不流畅情况下,也有用cookie的,这里介绍一下Struts的Token机制,基本原理:服务器端在处理到达的请求之前,会将请求中包含的Token值与保存在当前用户会话中的Token值进行比较,看是否匹配,在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的Token,该Token除传给客户端以外,也会将用户会话中保存的旧的Token进行替换,这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的Token就和服务器端的不一致,从而有效地防止了重复提交的发生。
Struts跨站脚本(XSS)漏洞
今天无意中看到一个Struts方面的漏洞,叫做Struts跨站脚本(XSS)漏洞,就是当访问一个不存在的网址时,例如http://localhost:8080/demo/noAction.do
那么Struts处理后都会跳到提示
“Invalid path /noAtcion.do was requested”的页面。
Struts2 下载文件
文件下载最简单的方法就是直接在页面上给出一个超链接,该链接的href属性为服务器上文件的路径。
如果需要对用户下载之前进行进一步的检查,比如判断用户是否有足够的权限来下载该文件等,普通下载是无能为力了。
但如果该文件的文件名为中文,则会导致悲剧的404! 而Struts下载就可以轻松实现!
Struts2拦截器 Interceptor
Interceptor(拦截器)是Struts2的一个非常强大的工具,有许多功能都是构建于它之上,如国际化、转换器,校验等。
什么是拦截器
拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 Continue reading
SSH(STRUTS2+SPRING+HIBERNATE)实现文件上传功能
SSH(Struts2+Spring+Hibernate)实现文件的上传
该模块我是前几天在实验室待了大半天刚刚写的,可能还有很多Bug,在项目中实现文献上传功能.
依旧用SSH实现,逻辑,结构,层次比较清晰.
Continue reading
轻量级框架整合SSH(Struts2+Spring+Hibernate)+JSON实现登录
该模块是”和谐交通“中一小部分,虽然功能简单,但完成了SSH(Struts2+Spring+Spring)的整合,相当于SSH的”Hello World!”吧.
前台由JSON完成,使用AJAX的好处就不说了. 后台为Struts2框架
PS: 该模块在NetBeans下完成,以前习惯用MyEclipse,这次用NetBeans还真是不习惯,但实际项目要求用NetBeans,因为Myeclipse是商业软件,可能引来不必要的争端.
Sigh~~以前还感觉用盗版是理所当然的. Continue reading
Struts2.1权威指南的第一个例子
经过漫长的一个月,《Struts2.1权威指南》前三章算是看完了,由于之前一直存在Bug,这第一个例子看了不下5编,前后代码重复敲了无数次,广告提供的夜运行不了,于是重复搭建环境最终还是运行不了.
一怒之下重装系统,换成XP,一运行就成功了,真的很郁闷.不过对struts理解更透彻了.
如果对于一个新手,感觉《Struts2.1权威指南》说得并不怎么样,最明显的便是比如几个XML的文件存放的位置等等.
以下便是第一例子的源码. :new1