springMVC实现过滤器

package com.shaokp.hrm.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.shaokp.hrm.entity.User;

public class AuthorizedInterceptor implements HandlerInterceptor{

    private static final String[] LOGIN_URI={"/login","/loginCheck","404.html"};

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        boolean flag=false;
        String servletPath = request.getServletPath();
        for(String path:LOGIN_URI){
            if(servletPath.contains(path)){
                flag=true;
                break;
            }
        }
        if(!flag){
            User user = (User)request.getSession().getAttribute("user");
            if(user==null){
                request.setAttribute("message", "请先登录再访问网站");
                request.getRequestDispatcher("/login").forward(request,response);
            }
        }else{
            flag=true;
        }
        return flag;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {

    }

}

spring-mvc的配置

<!-- 启用默认配置 -->
    <mvc:annotation-driven/>
    <mvc:default-servlet-handler/>
<!-- 权限检查拦截器 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/*"/>
            <bean class="com.shaokp.hrm.interceptor.AuthorizedInterceptor"/>
        </mvc:interceptor>
</mvc:interceptors>

设置web.xml中的默认拦截器,不拦截静态资源(也可以不写。也可以写自定义的)
在springmvc的Dispatcher中配置(一般Web应用服务器默认的Servlet名称是”default”,所以这里我们激活Tomcat的defaultServlet来处理静态文件,在web.xml里配置如下代码即可:)

<!--该servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,如原来访问http://localhost/foo.css,现在http://localhost/static/foo.css --> 
<!-- 不拦截静态文件 --> 
<servlet-mapping>  
  <servlet-name>default</servlet-name>  
  <url-pattern>/js/*</url-pattern>  
  <url-pattern>/css/*</url-pattern>  
  <url-pattern>/images/*</url-pattern>  
  <url-pattern>/fonts/*</url-pattern>  
</servlet-mapping>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发疯的man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值