struts2中的拦截器怎么指定拦截某个目录下的文件访问?比如我要拦截 /admin 文件下的所有action的访问

要怎么做?一个一个去配有点烦啊... 要怎么做?一个一个去配有点烦啊 展开
 我来答
babyhhcsy
2013-05-18 · TA获得超过102个赞
知道答主
回答量:163
采纳率:100%
帮助的人:56.3万
展开全部
@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);
            }
        }
    }
松依03S
2013-05-16 · TA获得超过347个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:171万
展开全部
有一个方法:你可以将拦截器配置到myStack栈里,所有的action都被拦截,然后在拦截器里判断访问路径是不是在/admin目录下,不是的继续访问,是则中断
追问
不行啊,你在栈里 还是要向每个action配置啊 比如 action里面还要写明
action要引用了才会用到那个拦截器吧。我就是因为每个/admin目录下的action都要配才觉得很烦
追答


0

(这句是设置所有Action自动调用的拦截器堆栈)

看这个例子,就是在包struts-shop里配置的默认拦截器堆栈,这个包下面的Action都会调用的,在定义action的时候不用配置interceptor-ref了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式