重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最近在学习ssh框架时,照着网上做了一个商城系统,之前在一些需要用户存在的操作中,都是在每一个action中写重复的代码,这样做现在想起来并不好,想起了spring的aop,于是想通过aop来给每个需要用户操作的Action验证用户登录状态。
创新互联是一家专注于网站设计制作、成都网站制作与策划设计,乌拉特前网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:乌拉特前等地区。乌拉特前做网站价格咨询:18980820575想法是这样的:
1. 用户登录时把userId放入session中
2. 通过spring 写一个advice来获取session中的userId,判断用户登录状态,如果userId不符合,则抛出自定义异常
3. 通过struts中配置来捕获异常,跳转界面
以下是代码:
advice代码:
public class IsUserLoginAdvice{ public void isUserLogin() throws UserNotFoundException{ // TODO Auto-generated method stub int id=0; Map sessionMap=ActionContext.getContext().getSession(); System.out.println(sessionMap); try { //这里在一开始时userId是不存在的可能会抛出NullPointException,catch起来 id=(int) sessionMap.get("userId"); //在用户注销时我把session中的userId设为0 if(id==0){ throw new UserNotFoundException(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); throw new UserNotFoundException(); } } }