2个回答
展开全部
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
String uri = req.getRequestURI();
HttpSession session = req.getSession();
TbUsers user = null;
Object obj = session.getAttribute(Constants.USER_LOGIN_SESSION_KEY);
if(uri.indexOf("/admin") != -1 ){
arg2.doFilter(request, response);
}else{
if(user!=null&&user.getUsername().length()>0){
arg2.doFilter(request, response);
}else{
req.setAttribute(Constants.MESSAGE_KEY, "请先登录");
req.getRequestDispatcher("login.jsp").forward(request, response);
}
}
}
展开全部
有一个方法:你可以将拦截器配置到myStack栈里,所有的action都被拦截,然后在拦截器里判断访问路径是不是在/admin目录下,不是的继续访问,是则中断
追问
不行啊,你在栈里 还是要向每个action配置啊 比如 action里面还要写明
action要引用了才会用到那个拦截器吧。我就是因为每个/admin目录下的action都要配才觉得很烦
追答
0
(这句是设置所有Action自动调用的拦截器堆栈)
看这个例子,就是在包struts-shop里配置的默认拦截器堆栈,这个包下面的Action都会调用的,在定义action的时候不用配置interceptor-ref了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询