问题描述:我们的网站用户在浏览时时通过菜单功能点击进去的还是直接连登录都不用直接输入路径访问的呢,可以通过拦截器拦截路径判断来解决。
-
import java.util.HashSet;
-
import java.util.Set;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
import javax.servlet.http.HttpSession;
-
import net.cloudsun.bjtf.entity.AdminUser;
-
import net.cloudsun.util.WebKeys;
-
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-
public class AdminPowerInterceptor extends HandlerInterceptorAdapter{
-
private static Set excludeUrl=null;
-
-
{
-
excludeUrl=new HashSet();
-
excludeUrl.add("/private");//后天拦截private的路径
-
}
-
-
@Override
-
public boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {
-
HttpSession session=request.getSession();
-
AdminUser adminUser=(AdminUser) session.getAttribute(WebKeys.ADMINUSER_KEY);
-
String url=request.getRequestURI().toString();//获取用户和路径后可以判断了
-
if(adminUser==null){//用户没有登录
-
if(url.contains("private")){//并且路径里还包含了这个地址
-
//用户没有登录还想直接去访问网站就不行给他拦截下来。如果登录了就不管了,他爱怎么访问就怎么访问,
-
response.sendRedirect(request.getContextPath()+"/admin/goLogin");
-
return false;
-
}
-
}
-
return true;
-
}
-
-
@Override
-
public void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object handler, Exception ex)throws Exception {
-
super.afterCompletion(request, response, handler, ex);
-
}
-
-
}
其实我主要想说的是配置文件里的配置,因为这块我不熟悉,所以记下来以后用的到。
在servlet-context.xml里配置加上拦截器的配置
这样就可以拦截没用登录的用户访问咱们的网站了。
阅读(1149) | 评论(0) | 转发(0) |