首先感谢各位朋友帮忙!!
问题如下:
我使用了拦截器控制登录状态,现在我能够进入拦截器,问题在于我转发到页面的时候,转发路径会在我写的 地址前面+ 请求,变成新的地址
比如,我发的请求是 back/getAll,会自动返回一个新jsp页面的地址
SessionFilter:
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
Employee employee = (Employee) request.getSession().getAttribute("employee");
if (null == employee) {
// 跳转方式一:(二选一)我两种都试了
response.sendRedirect("WEB-INF/pages/back/login/login.jsp");
//跳转方式二:
request.getRequestDispatcher("WEB-INF/pages/back/login/login.jsp").forward(request, response);
return false;
} else {
return true;
}
}
SpringMVC配置文件:
mvc:interceptors
mvc:interceptor
<!--我这里有多级请求-->
/mvc:interceptor
/mvc:interceptors
?????????????
你把login,jsp文件放到back里面不就行 了
我从前台发送的/back/brand请求,能够进入拦截器,我的拦截器目标是:WEB-INF/pages/back/login.jsp;但是会返回/back/brand/WEB-INF/pages/back/login.jsp
是应该把返回的目标路径写成绝对路径,在前面加 /
我也遇到这个问题了,同问
遇到这个问题的大概都是把jsp放在web-inf下的,
当请求/back/brand完了执行到return “xx”时,应该导向xx.jsp,不幸的是再被springmvc处理,变成/back/xx.jsp这样,
你配置一下<mvc:resources就好了,或者用HttpServletRequest的forward来指定具体的jsp就不会有问题。