通过之前的Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解系列文章,我们已经成功将这三种框架整合到了一起,这次将在此基础上用一个小实例来说明,怎么利用Struts2的拦截器特性实现登录验证,以及超时后的跳转问题。
大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了。那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证。
在user表中增加password字段,将初始密码都设为123,因为是示例所以采用明码,实际开发中,当然不能这样做,需要进行加密处理。再将name改为username,其实name字段可以不用改名,我这样做是为了命名规范,请注意,如果字段改为username,User类中的对应属性也要进行相应变化(如果你加注释写法可以不用改),还有Test与TestHibernateDao中的getName()都要改为getUsername()。
将hello.action改为login!welcome.action
增加登录类
在web包下创建LoginAction类,在其中添加welcome与login方法,前者为index.jsp的跳转方法,它将转向到login.jsp页面。而后者则用来处理登录事件,如果成功将进入到主页面,失败则返回到登录页面。最后面有源码下载,这里省略。
增加拦截器
要实现登录拦截的功能,最关键的就是要实现拦截类了,在common包下面再增加一个interceptor包,创建AuthorityInterceptor类,并继承MethodFilterInterceptor,为什么继承它呢?因为它是对方法进行拦截,而在这个应用中,我们是对绝大部分的方法进行拦截,而对个别例外的方法排除。
从session中取得当前登录用户,如果存在,就继续执行后面的拦截器;否则,就跳转到登录页面。所以这样实现了代码后,还要在struts.xml中进行相应的设置。
增加拦截器配置
做好这一步之后,那么登录验证拦截器将会对除了welcome与login之外的所有方法进行拦截了。另外我想说下,拦截器的实现还有一种注解的方式,它不需要实现拦截器类,只需要指定一个注解类型和一个拦截方法就可以了,具体的请自己去查相关资料。这里我没采取注解方式是因为它只能应用到方法级别,不能进行代码复用,如果有多个Action都需要执行拦截操作,那么就得把同样的注解方法复制到不同的Action中,这无疑是很糟糕的。而使用拦截器类就简单多了,只需要在配置文件中指定它,并引用它,就可以在任意的Action中生效,也没有侵入式代码,这就是常说的AOP切面,struts2的拦截器就是AOP的一个具体实现。
增加全局转向配置
还记得拦截器里面的return Action.LOGIN 这句吧,当程序执行完这一行后,就会到struts.xml文件中去找name为login全局转向配置,因此这里我设置为一个jsp页面,而没有定义成/login!welcome.action就是因为如果按这样做了,那么转向后,登录页面将显示在iframe框架中,这肯定不是我们希望看到的。解决这个问题,网上有很多方法,我查了一下,再结合实际,其实没那么复杂,一句话就可以搞定。
增加jump.jsp
增加login.jsp
登录页面,输入用户名与密码,因为是例子,所以我没加验证码,在正式开发中应该加上。
增加login-index.jsp
这是登录成功后转向的页面,在这里,我用iframe框架来显示内容。
到这里,所有工作都已经完成,已经可以登录登出了,并且拦截器也可以正常工作,超时登出也没问题,大家下载例子运行看看吧!
分享到:
相关推荐
基于SSH2框架Struts2拦截器的登录验证实现
ssh框架用struts2 hibernate实现图片的上传源码
2012最新ssh2框架-struts2.3+hibernate4.1+spring3.1登录+注册(md5加密)带拦截器,mysql数据库,带分页功能, 只需修改com/resource/resourses.properties数据库连接即可使用
SSH4(struts2框架验证)02SSH4(struts2框架验证)02
基于SSH框架的飞机订票系统研究与实现.pdf基于SSH框架的飞机订票系统研究与实现.pdf基于SSH框架的飞机订票系统研究与实现.pdf基于SSH框架的飞机订票系统研究与实现.pdf基于SSH框架的飞机订票系统研究与实现.pdf基于...
JavaEE Spring Struts2 Hibernate SSH2框架(登录例子) JavaEE Spring Struts2 Hibernate SSH2框架(登录例子) JavaEE Spring Struts2 Hibernate SSH2框架(登录例子) JavaEE Spring Struts2 Hibernate SSH2框架(登录...
基于struts2+hibernate+spring,网上商场,有数据库脚本,能正常编译运行
SSH2框架struts+spring+Hibernate
SSH4(struts2框架验证)01SSH4(struts2框架验证)01SSH4(struts2框架验证)01
包括了SSH2框架搭建(基于MyEclipse8.5的struts2、spring2.5、hibernate3.2) SSH2框架搭建流程及注意事项 SSH2框架搭建详细说明 myeclipse ssh框架搭建教程 SSH框架总结 Myeclipse10下搭建SSH框架(图解)Struts2.1 + ...
java基于SSH框架的学生成绩管理系统源码。要求: (1) 整合Struts2、Spring和Hibernate框架 (2) 实现“登录”功能 (3) 实现“学生信息管理”功能 (4) 实现“学生成绩管理”功能 (5) 实现分页功能 目的...
这是一个基于ssh框架的系统,一些功能已实现但是对于研究ssh很有帮助。
基于Ssh2框架的论坛设计与实现 毕业设计
用作毕业设计的一个基于SSH框架开发的系统(数据库脚本是基于Mysql的,如果要用其他数据库,脚本要稍微修改下)
MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3
基于ssh2框架的权限管理系统源码 实现了用户管理,角色管理,功能管理,用户角色授权
在博客http://blog.csdn.net/u014201191/article/details/49339143 中讲解的ssh框架搭建基本,调试通过,好好学习
基于ssh2框架的文件上传,可完美整合如ssh2,并已经做成标签使用。
Myeclipse8.5下搭建SSH框架(图解)Struts2.1+Spring3.0+Hibernate3.3
ssh框架用struts2+hibernate实现图片的上传源码 注释详细 适合刚学习的友友们参考哦