后台登陆校验

这个问题很深刻啊,假如你还没登陆,就从购物网站提交订单,这个时候购物网站会提醒你:亲,你还没有登陆!

这个时候我们需要做的就是这么个功能,我们怎么实现这个代码呢!我以SSH为例啊。


首先我们得写一个校验类去检验session中是否有用户的信息,我一般是把用户信息保存到session,这样方便后面调用。这里其实有两种方法,一种就是直接在需要用到用户信息的类中,从session中取数据,进而进行一定的逻辑判断,第二种在后面说明

第一种:

User existUser = (User) ServletActionContext.getRequest().getSession()
					.getAttribute("existUser");
		if(existUser == null){
			addActionError("亲!您还没有登陆!请先登陆");
			return "login";
		}
这个是比较简单的,逻辑也是比较清楚的,但是要是针对某一类都得进行登陆校验,怎么办,每个代码块都加这个嘛,肯定不行,所以有了第二种
public class PrivilegeInterceptor extends MethodFilterInterceptor{

	@Override
	//执行拦截的方法
	protected String doIntercept(ActionInvocation arg0) throws Exception {
		//判断session中是否有后台用户的信息
		AdminUser existAdminUser = (AdminUser) ServletActionContext.getRequest().getSession()
			.getAttribute("existAdminUser");
		if(existAdminUser == null){
			//没有登陆
			ActionSupport actionSupport = (ActionSupport) arg0.getAction();
			actionSupport.addActionError("亲,您还没有他妈的登陆");
			return "loginFail";
		}else{
			//已经登陆
			return arg0.invoke();
		}
	}
}

这个类继承MethodFilterInterceptor这个类,主要用于每次校验,自行百度吧。然后吧这个配置到struts.xml文件中就可以了
<interceptors>
		<interceptor name="PrivilegeInterceptor" class="校验类的路径地址"/>
	</interceptors>
<!-- 配置首页访问的Action -->
		<action name="index" class="indexAction">
			<result name="index">/WEB-INF/jsp/index.jsp</result>
			<interceptor-ref name="PrivilegeInterceptor"></interceptor-ref>
			<interceptor-ref name="defaultStack"></interceptor-ref>
		</action>
正如上面代码所示,必须在struts.xml文件中配置,这样你每次使用到这个action的时候就会进行一次PrivilegeInterceptor类中所写的校验,这个说方便也方便,说不方便也不方便,关键看应用场景,对,适合才合适




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值