Chinaunix首页 | 论坛 | 博客
  • 博客访问: 793986
  • 博文数量: 247
  • 博客积分: 166
  • 博客等级: 入伍新兵
  • 技术积分: 2199
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-15 16:10
文章分类

全部博文(247)

文章存档

2017年(1)

2015年(63)

2014年(80)

2013年(94)

2012年(9)

分类: Java

2015-08-14 15:11:36

问题描述:我们的网站用户在浏览时时通过菜单功能点击进去的还是直接连登录都不用直接输入路径访问的呢,可以通过拦截器拦截路径判断来解决。

点击(此处)折叠或打开

  1. import java.util.HashSet;
  2. import java.util.Set;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import javax.servlet.http.HttpSession;
  6. import net.cloudsun.bjtf.entity.AdminUser;
  7. import net.cloudsun.util.WebKeys;
  8. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

  9. public class AdminPowerInterceptor extends HandlerInterceptorAdapter{
  10. private static Set excludeUrl=null;

  11. {
  12.     excludeUrl=new HashSet();
  13.     excludeUrl.add("/private");//后天拦截private的路径
  14. }

  15. @Override
  16. public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
  17.     HttpSession session=request.getSession();
  18.     AdminUser adminUser=(AdminUser) session.getAttribute(WebKeys.ADMINUSER_KEY);
  19.     String url=request.getRequestURI().toString();//获取用户和路径后可以判断了 
  20.     if(adminUser==null){//用户没有登录
  21.         if(url.contains("private")){//并且路径里还包含了这个地址
  22.             //用户没有登录还想直接去访问网站就不行给他拦截下来。如果登录了就不管了,他爱怎么访问就怎么访问,
  23.             response.sendRedirect(request.getContextPath()+"/admin/goLogin");
  24.             return false;
  25.         }
  26.     }
  27.     return true;
  28. }

  29. @Override
  30. public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception {
  31.     super.afterCompletion(request, response, handler, ex);
  32. }

  33. }
其实我主要想说的是配置文件里的配置,因为这块我不熟悉,所以记下来以后用的到。
在servlet-context.xml里配置加上拦截器的配置

这样就可以拦截没用登录的用户访问咱们的网站了。
阅读(1115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~