Struts2之拦截器原理分析及使用-下

一、学习案例:关于拦截器的学习,在此就结束了,之所以分了四章讲解,一方面是让大家对拦截器的原理以及实现方式进行系统的掌握,另一方面就是让大家学会看源码以及体验看源码所带来的好处。最后,也就是这一章,我会用一个小案例进行总结。

案例:登录验证功能的实现。

 

二、案例分析:项目配置好后,我们先在浏览器中访问login1,我们别输入admin,换其他词,则会跳回当前的登录页面。此时,我们在浏览器中访问login2,会跳转到error.jsp页面,证明拦截器拦截成功。我们再访问login1,正确输入admin,成功跳到success.jsp页面。我们接着访问login2,此时也会直接跳转到success.jsp页面。证明登录验证成功。

a)创建LoginAction.javaLogin2Action.java。在LoginAction.java中判断用户名和密码。成功则往session中放置登录对象,错误跳转到登录页面。

 

if(user.getUsername().trim().equalsIgnoreCase("admin") && user.getPassword().equals("admin")){
	ActionContext.getContext().getSession().put("user", user);
	return SUCCESS;
}

b)创建拦截器MyInterceptor.java,并实现判断逻辑:判断当前访问action是否是LoginAction.java,是,直接往下执行,调用下个拦截器。不是,则判断session中是否存在user对象,存在则正常往下执行,不存在,则跳转到登录页面。

		Object obj = invocation.getAction().getClass();
		if(LoginAction.class == obj){
			return invocation.invoke();
		}
		
		User user = (User) invocation.getInvocationContext().getSession().get("user");
		if(null == user){
			return Action.LOGIN;
		}
		return invocation.invoke();

c)配置struts.xml

定义自己的拦截器,以及拦截器栈

	<interceptors>
    		<interceptor name="myInterceptor" class="com.almostman.interceptor.MyInterceptor"></interceptor>
    		<interceptor-stack name="MyStack">
    			<interceptor-ref name="myInterceptor"></interceptor-ref>
    			<interceptor-ref name="defaultStack"></interceptor-ref>
    		</interceptor-stack>
    	</interceptors>


 

三、经验之谈:

a)在我们下载的struts包下有个apps,下面的war包,我们可以直接放到tomcat下,运行访问。都是一些小功能有助于大家对struts的理解和提高。

b)大家没事的时候,多熟练下自己的编译工具。我之前用的eclipse,不过现在都是myeclipse。现在感觉是越来越顺手了,不自觉地就有一种使用的冲动。呵呵。让大家熟悉,主要是了解一些快捷键,可以自行百度,有很多。这样有助于增加大家对编程开发的好感。

 

四、参考项目:http://download.csdn.net/detail/u011638419/8207123

 

五、每日一乐:

小明和朋友一起路过一个西瓜档,看见里面有很多大西瓜,就问档主:西瓜甜不甜啊! 
肯定甜,不甜不收钱。
哦,那就帮我挑一个不甜的吧!


最终解释权归爱尚合伙人(www.23hhr.com)所有,转载请注明出处。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值