Spring mvc做登录拦截,诡异的报404,tomcat日志没有任何输出

先看出错提示图片说明
TOMCAT没有日志输出,直接在浏览器报的404
拦截器类方法:
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
LoginAccount user=(LoginAccount) request.getSession().getAttribute("user");
String url=request.getRequestURL().toString();
System.out.println("进入拦截器,请求地址:"+url);
if(user==null){
response.sendRedirect("index.jsp");
return false;
}else{
return true;
}
}

 拦截器配置
 <mvc:view-controller path="/" view-name="index"/>
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:mapping path="/"/>
            <mvc:exclude-mapping path="/login.do"/>
            <mvc:exclude-mapping path="/logout.do"/>
            <mvc:exclude-mapping path="/room.do"/>
            <bean id="loginInterceptor" class="com.jszy.oa.intercepter.LoginInterceptor">
                <property name="loginUrl" value="login.do"></property>
            </bean>
        </mvc:interceptor>
    </mvc:interceptors>

WEB.XML 配置,节点参考http://iammr.7.blog.163.com/blog/static/49102699201222643458216/文章,拦截根目录。在用户SESSION未超时访问根目录时跳转到后台首页

spring-mvc
org.springframework.web.servlet.DispatcherServlet

spring MVC 配置文件
contextConfigLocation
classpath:spring-mvc-websocket.xml

1


spring-mvc


出问题的地方就在访问http://localhost:8080/oa/,点击登录时请求http://localhost:8080/oa/login.do报了404,没有输出日志。
如果把改成*.do
拦截器能正常工作,就是没有办法拦截这个地址http://localhost:8080/oa/

3个回答




定义时,设定拦截器不对login.do、logout.do起作用。exclude是把这些排除在外

找不到login。do,你是不是把没登录的方法也做session验证了

JanlerHang
JanlerHang 应该是没有的,不然我把<url-pattern>改成*.do是不会正常的,目的是想拦截根目录
大约 5 年之前 回复

login.do没有找到,,拦截器设置未成功

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问