SpringMVC拦截器,设置不拦截的url 5C

图片说明
图中我配置的这个请求不拦截,但是不起作用,而配置的别的不拦截的url就可以,这是为什么啊

2个回答

你把请求也贴出来看看,大概是名字没对上,

m0_37746602
m0_37746602 localhost:8080/exam/api/applyExamList/be9168f8bc18475686b9e6a421404a86/?method=get
接近 2 年之前 回复

/api/applyExamList/**

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

Python+OpenCV计算机视觉

springMVC拦截器如何拦截多个路径

springmvc下写一个登录的拦截器,怎么在配置文件中配置拦截多个路径?还是一个拦截器只能有一个拦截

Springmvc拦截器导致controllor不执行

拦截器代码: ``` @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { logger.warn("==============执行顺序: 1、preHandle================"); String requestUri = request.getRequestURI(); String contextPath = request.getContextPath(); String url = requestUri.substring(contextPath.length()); logger.warn("requestUri:"+requestUri); logger.warn("contextPath:"+contextPath); logger.warn("url:"+url); String username = (String)request.getSession().getAttribute("un"); System.out.println(username); if(username == null){ logger.warn("Interceptor:跳转到login页面!"); // response.sendRedirect("loginStuUI.jsp"); request.getRequestDispatcher("loginStuUI.jsp").forward(request, response); return false; }else logger.warn("登录成功"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { logger.warn("==============执行顺序: 2、postHandle================"); response.sendRedirect("/loginStuUI.jsp"); if(modelAndView != null){ //加入当前时间 modelAndView.addObject("var", "测试postHandle"); } } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { logger.warn("==============执行顺序: 3、afterCompletion================"); } ``` Springmvc.xml代码: ``` <context:annotation-config /> <context:component-scan base-package="com.iss.controllor"></context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/admin/" /> <property name="suffix" value=".jsp" /> </bean> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> </bean> </mvc:message-converters> </mvc:annotation-driven> <mvc:default-servlet-handler /> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.iss.controllor.CommonInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> ``` controllor代码: ``` @RequestMapping("/login") public String login(User user, Map map, HttpSession session) { System.out.println("login"); if (userServiceImpl.userLogin(user)) { session.setAttribute("user", user); session.setAttribute("un", user.getUname()); map.put("unameMsg",user.getUname()); logger.warn(user.getUname() + "成功登陆一次"); return "iiindex"; } else { map.put("loginMsg", "登录失败,请重试"); return "../loginStuUI"; } } ``` 登录界面代码: ``` <form action="login" id="signupForm" method="post"> ${loginMsg} <input type="text" name="uname" placeholder="请输入登录名" required> <input type="password" name="upwd" placeholder="请输入密码" required> <input type="submit" name="submit" id="submit" value="登录" class="btn-style-01"> <a href="register2.jsp" >注册</a> </form> ``` 控制台输出语句: ``` 2017-04-10 22:46:10 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 1、preHandle================ 2017-04-10 22:46:10 WARN [com.iss.controllor.CommonInterceptor] requestUri:/Test1/login 2017-04-10 22:46:10 WARN [com.iss.controllor.CommonInterceptor] contextPath:/Test1 2017-04-10 22:46:10 WARN [com.iss.controllor.CommonInterceptor] url:/login null 2017-04-10 22:46:10 WARN [com.iss.controllor.CommonInterceptor] Interceptor:跳转到login页面! ``` 假如把拦截器设置成如下: ``` if(username == null){ logger.warn("登录成功"); return true; }else ``` 则可执行controllor 控制台输出如下所示: ``` 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 1、preHandle================ 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] requestUri:/Test1/login 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] contextPath:/Test1 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] url:/login null 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] 登录成功 login 2017-04-10 23:10:17 WARN [com.iss.controllor.ACTION] admin成功登陆一次 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 2、postHandle================ 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 3、afterCompletion================ 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 1、preHandle================ 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 1、preHandle================ 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] requestUri:/Test1/admin/img/icon_san.jpg 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] contextPath:/Test1 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] url:/admin/img/icon_san.jpg admin 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] ==============执行顺序: 1、preHandle================ 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] requestUri:/Test1/admin/img/dyz.JPG 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] contextPath:/Test1 2017-04-10 23:10:17 WARN [com.iss.controllor.CommonInterceptor] url:/admin/img/dyz.JPG admin ``` 请问一下这是什么原因导致的 谢谢

springmvc中拦截器拦截路径

springmvc下写一个登录的拦截器,怎么在XML配置文件中配置拦截多个路径?还是一个拦截器只能有一个拦截路径?

SpringMVC拦截器跳转会自动在跳转的路径加请求!

首先感谢各位朋友帮忙!! 问题如下: 我使用了拦截器控制登录状态,现在我能够进入拦截器,问题在于我转发到页面的时候,转发路径会在我写的 地址前面+ 请求,变成新的地址 比如,我发的请求是 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:mapping path="/back/**"/><!--我这里有多级请求--> <bean class="sessionFilter.SessionFilter"/> </mvc:interceptor> </mvc:interceptors> 结果页面: ![图片说明](https://img-ask.csdn.net/upload/201704/22/1492849497_82520.png)

SpringMVC的拦截器,路径拦截与排除问题

![图片说明](https://img-ask.csdn.net/upload/201903/27/1553683117_587537.png) 需求: 现在我想不拦截/item/这个路径下的大部分url,但是又需要拦截少量的url。 问题: 按道理我这段代码是这个意思,可是没有测试没有拦截我设置的/item/下的少量url。 希望各位前辈看看眼,分享下解决思路和办法。不胜感激!

springmvc拦截器效率问题

求大神指点,这样写拦截器效率会不会很低,或者有没有效率更高的方法,目前拦截30个url,之后还有可能增加。在线等,急,解决问题我再追加C币 ![图片说明](https://img-ask.csdn.net/upload/201711/20/1511157416_813642.png)

resteasy 集成spring 导致 springmvc拦截器失效

C币不足 sorry... 问题描述:spring springmvc resteasy 集成之后,自定义springmvc拦截器就失效了。控制台能输出--HelloController.hello--,就是进不去拦截器,不知道什么原因,求大佬指教。不甚感激 ``` 控制器类 @Controller @Path("/ws/a") public class HelloController { @POST @Path("/aa") @Produces(MediaType.APPLICATION_JSON) public String hello() { System.out.println("--HelloController.hello--"); return "Hello";// 返回视图组件的名字 } } ``` ``` 拦截器类 public class SimpleInterceptor extends HandlerInterceptorAdapter { public SimpleInterceptor() { System.out.println("=============================================="); } @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("--页面渲染之后我来处理--"); } @Override public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("--返回响应之后我来处理--"); } @Override public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("--方法执行之前我来处理--"); return true;// 继续执行流程 } } ``` ``` web.xml <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> ``` ``` servlet.xml <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <bean class="com.xx.xx.xx.interceptor.SimpleInterceptor" /> </mvc:interceptor> </mvc:interceptors> ```

基于注解SpringMvc拦截器无法使用

在我自定义的拦截器中打了断点一直无法进入,拦截器定义在controllers.xml中 代码如下帮忙解决下,谢谢 [code="java"] package com.core.Interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; /** * 拦截器 */ public class BasedInterceptor extends HandlerInterceptorAdapter { //预处理 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { HttpSession sesson = request.getSession(); if(sesson.getAttribute("user") == null){ request.getRequestDispatcher("index.jsp").forward(request, response); return false; } return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { request.getRequestDispatcher("index.jsp").forward(request, response); } public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { request.getRequestDispatcher("index.jsp").forward(request, response); } } [/code] web.xml [code="xml"] <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>SpringTest</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 对像js,css,gif等静态文件的访问,需要映射到默认的servlet --> <!-- 这里省去对静态资源url的配置,当然这样的话tomcat控制台就会报警告了,对html的请求、页面中的图片及css效果也是无法访问的 不过我们这是搭基本环境嘛,就先不要图片吧,如果想解决这个问题,可以看我另外一篇文章: --> <!-- 配置spring核心servlet --> <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/servlet-context.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>*.do</url-pattern> <!-- url配置为/,不带文件后缀,会造成其它静态文件(js,css等)不能访问。如配为*.do,则不影响静态文件的访问 --> </servlet-mapping> <!-- Spring 刷新Introspector防止内存泄露 --> <listener> <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class> </listener> <!-- 字符编码过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <!-- 欢迎页面 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> [/code] servlet-context.xml [code="xml"] <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <!-- Configures the @Controller programming model 必须加上这个,不然请求controller时会出现no mapping url错误--> <mvc:annotation-driven /> <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/jsp directory --> <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <beans:property name="prefix" value="/WEB-INF/view/" /> <beans:property name="suffix" value=".jsp" /> </beans:bean> <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8" /> <!-- Imports user-defined @Controller beans that process client requests --> <beans:import resource="controllers.xml" /> </beans:beans> [/code] controllers.xml [code="xml"] <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" default-autowire="byName"> <!-- Maps '/' requests to the 'home' view <mvc:view-controller path="*.do" view-name="home"/>--> <!-- enable autowire --> <context:annotation-config /> <!--拦截器--> <bean id="basedAccessInterceptor" class="com.core.Interceptor.BasedInterceptor"/> <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <ref bean="basedAccessInterceptor"/> </list> </property> </bean> <!-- 扫描业务组件 --> <context:component-scan base-package="com.mvc.controller" /> </beans> [/code]

springmvc拦截器拦截可以处理非法字符吗?

我拦截请求,并对请求的参数做了过滤 如图: ![图片说明](https://img-ask.csdn.net/upload/201601/28/1453949481_34097.png) 然后到了controller里面 参数并没有改变 ,请问是我解决方法的问题吗?这种方法行的通吗?还是少了些东西?谢谢大神 ![图片说明](https://img-ask.csdn.net/upload/201601/28/1453949560_969027.png)

关于springmvc拦截器的问题

## web.xml ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> <!-- 加载spring容器 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/applicationContext-*.xml</param-value> </context-param> <!--配置DispatcherServlet--> <servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--SpringMVC配置文件--> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <!--配置DispatcherServlet映射--> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> ``` ## HomeController ``` package com.vansl.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * @author: vansl * @create: 18-3-17 下午11:58 */ @Controller public class HomeController { //添加一个日志器 private static final Logger logger = LoggerFactory.getLogger(HomeController.class); //映射一个action @RequestMapping("/index") public String index(){ System.out.print(1); //输出日志文件 logger.info("the first jsp pages"); //返回一个index.jsp这个视图 return "index"; } } ``` 2个文件如上,按照我的理解是启动项目的时候员工是访问index.html 然而启动的时候 访问/却被/index拦截了???,拦截index.html 导致进不去index.html报404是我的常规思想,但是访问/为什么会被/index拦截了呢 而且发现她只会访问 index方法 方法改了名字就不访问了

springmvc拦截器跳转问题

public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { HttpSession session = httpServletRequest.getSession(); Object UserId = session.getAttribute("userId"); String InterUri = httpServletRequest.getServletPath(); String requesturl = httpServletRequest.getRequestURI(); String contextpath = httpServletRequest.getContextPath(); String url = requesturl.substring(contextpath.length()); if ( null ==UserId){ if (httpServletRequest.getCookies()!=null) { Cookie[] cookies = httpServletRequest.getCookies(); if (cookies != null && cookies.length > 0) { String usercook = null; for (Cookie cookie : cookies) { if ("UserCookie".equals(cookie.getName())) { usercook = cookie.getValue(); String[] Susercook = usercook.split(","); if (Susercook.length == 3) { int userId = Integer.parseInt(Susercook[0]); User user = userService.findbuId(userId); String username = Susercook[1]; String password; if (username.indexOf("@") > 0) { password = Susercook[2]; if (username.equals(user.getEmail()) && password.equals(user.getPassword())) { session.setAttribute("UserId", userId); break; } } else {//手机登录 password = Susercook[2]; if (username.equals(user.getPhone()) && password.equals(user.getPassword())) { session.setAttribute("userId", userId); break; } } } } } if (usercook!=null){ return true; } } } } else{//id // httpServletResponse.sendRedirect(httpServletRequest.getContextPath() +"/Main.jsp"); if(null != allowUrls && allowUrls.length>=1){ for(String path : allowUrls) { if(url.contains(path)) { return true; } } } } return true; } 有没有大神帮下忙,为什么 responsesendredirect(页面)根本没反应 还不能return false,不然静态资源又会被拦截,跳页面时候 httpServletRequest.getServletPath();全是静态资源路径没有跳转的页面路径,我的跳转不经过controller跳转,直接页面跳页面,session也得刷新一下页面才能拿得到,感觉好影响项目效率。在线等,好急啊,做了好几天没解决。

springmvc拦截器静态资源配置问题

请问在web.xml配置静态资源的时候允不允许这样子的,我发现有的项目这样子是可以的,但是有些又是不幸的 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> 上面那种不行用下面的就什么情况都行 <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> 其他的配置方式为也知道,也是能成功的,就是想搞明白上面第一种为什么有些可以有些不可以 感谢网友的解答,但是我知道其他的访问静态资源的方法的,我只是想知道为什么 下面的有些项目可以有些不可以,是springmvc的版本问题还是配置问题 servlet-mapping servlet-name default /servlet-name url-pattern /resources/* /url-pattern /servlet-mapping

ssm整合时,springmvc拦截器能实现细颗粒权限访问么

ssm整合时,springmvc拦截器能实现细颗粒权限访问么,当用户没有权限时,通过URL访问网页会跳回登录或者跳到错误页面

spring MVC 的拦截器怎么拦截不了

我想用spring mvc实现登录拦截: 配置文件:<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/users/*" /> <bean class="com.yj.send.interceptor.UsersCheckLoginInterceptor" /> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/senders/*" /> <bean class="com.yj.send.interceptor.SendersCheckLoginInterceptor" /> </mvc:interceptor> 因为是spring3.0不支持 <mvc:exclude-mapping >标签,所以我在perHandle的方法来排除不需要的拦截的url。 问题如下: 在controller里@Controller @RequestMapping("users/orglogin") public class SenderOrgLoginController { ...... } 在perHandle()方法里System.out.pirntln("----------------"); 然后用户登录后,始终不执行perHandle的方法(拦截器失效)。 但是在: @Controller @RequestMapping("/senders") public class SenderLoginController { ...... } 在该拦截器的实现类里的perHandle方法里面,我也输出一条语句,登陆后,却执行了。然后我将 @RequestMapping("users/orglogin")改成@RequestMapping("users")就行了。 上网百度了半天,都没有原因(拦截器拦截的url怎么与controller有关,应该跟resquest的url有关么?) 求大神指教!非常感谢。

springmvc的拦截器,怎么设置不拦截的url

<!-- 默认首页 --> <mvc:view-controller path="/" view-name="redirect:/loginpage" /> <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/loginpage/**"/> <bean class="com.me.common.LoginInterceptor" /> </mvc:interceptor> </mvc:interceptors> 我的配置,我想进默认首页时不拦截,可还是拦截了,怎么回事?

springmvc框架,HandlerInterceptor拦截器跳转不了

**需求**:用户session十分钟内无请求就会自动删除。无论用户发送什么请求都要被拦截器拦截,并跳转到登录页面。 **问题**:拦截器能拦截到用户的访问行为,可是,跳转语句五法执行。 **我的代码**: HandlerInteceptor: ``` @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception { HttpSession session = request.getSession(true); // session中获取用户名信息 Object obj = session.getAttribute(Constant.LOGIN_SESSION); System.out.println("session中的数据:---> " + obj); if (obj == null || "".equals(obj.toString())) { String location = "/login.jsp" ; response.sendRedirect(location); return false; } return true; } ``` springmvc.xml拦截器配置: ``` <!-- Session失效拦截 --> <mvc:interceptors> <!-- 定义拦截器 --> <mvc:interceptor> <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller --> <mvc:mapping path="/**" /> <!-- 不需要拦截的地址 --> <!-- 直接用ip:端口号可以打开登录页 --> <mvc:exclude-mapping path="/" /> <!-- 可以浏览器地址栏输入login.jsp后缀访问登录页 --> <mvc:exclude-mapping path="/login.jsp" /> <!-- 以下为静态资源,不需要过滤 --> <mvc:exclude-mapping path="/App/**" /> <mvc:exclude-mapping path="/common/**" /> <mvc:exclude-mapping path="/css/**" /> <mvc:exclude-mapping path="/image/**" /> <mvc:exclude-mapping path="/js/**" /> <mvc:exclude-mapping path="/jsp/**" /> <mvc:exclude-mapping path="/kindeditor/**" /> <mvc:exclude-mapping path="/lib/**" /> <bean class="com.ryzh0310.interceptor.SystemSessionInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> ``` web.xml中session删除配置(为了测试我写了最小时间1): ``` <!-- 登录退出session控制 --> <session-config> <session-timeout>1</session-timeout> </session-config> ``` 我的项目结构: ![图片说明](https://img-ask.csdn.net/upload/201712/15/1513299471_920782.png) 先谢谢你们啊 你们说我的重定向路径应该写成request.getContextPath() 而不应该直接写成/login.jsp 我打印了日志了,日志内容是: request.getContextPath() = /login.js 请帮我看下是不是其他问题吧。 我用的是springmvc+mybatis 抱歉,我是这么测试的,结果就是上面那行日志内容 ``` System.out.println("request.getContextPath() = " + request.getContextPath() + "/login.jsp"); ``` 先感谢大家了。 我改了改springmvc.xml配置文件, ``` <!-- Session失效拦截 --> <mvc:interceptors> <!-- 定义拦截器 --> <mvc:interceptor> <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller --> <mvc:mapping path="/**" /> <!-- 不需要拦截的地址 --> <mvc:exclude-mapping path="/login.jsp" /> <mvc:exclude-mapping path="/user/login" /> <mvc:exclude-mapping path="/App" /> <mvc:exclude-mapping path="/common" /> <mvc:exclude-mapping path="/css" /> <mvc:exclude-mapping path="/image" /> <mvc:exclude-mapping path="/js" /> <mvc:exclude-mapping path="/jsp" /> <mvc:exclude-mapping path="/kindeditor" /> <mvc:exclude-mapping path="/lib" /> <bean class="com.ryzh0310.interceptor.SystemSessionInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> ``` mvn:mapping Path由 "/" 改为 "/**" mvc:exclude-mapping path也由 "/file/**"改成了"/file" **现在的情况是:** 1.可以跳转到登录界面了,然而地址栏上显示的是被拦截的请求所请求的目标界面的url。 2.这样跳转来的登陆界面,根本不能登录,可以输入帐号密码,却不能发送登录请求

SSM拦截器,为什么只能拦截controller请求,确不能拦截所以请求

<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/html/login.jsp"/> <mvc:exclude-mapping path="/pro/some.do"/> <mvc:exclude-mapping path="css"/> <mvc:exclude-mapping path="images"/> <mvc:exclude-mapping path="jq"/> <mvc:exclude-mapping path="js"/> <mvc:exclude-mapping path="/jquery-3.2.1.js"/> <mvc:exclude-mapping path="/jquery-form.js"/> <bean class="com.aynu.interceptor.MyInterceptor"/> </mvc:interceptor> </mvc:interceptors> 大神们,我想通过这个拦截器,如果地址栏里输出其他地址不能直接访问,这该怎么拦截呢? 现在只能拦截到controller

springmvc 登录拦截器

拦截器起到了作用,跳到了登陆页面,登录页面是通过ajax提交请求给后台的,后台执行完了之后会返回一个map给ajax的success方法,从而进行页面的跳转。可是现在的问题是,后台执行了,但是跳不回前台,map也传回不去,更不说页面的跳转了。

spring mvc 为什么不拦截jsp文件?

问题描述: 一个简单的DEMO,在一个s1.jsp页面上提交一个form,发给springMVC的一个controller,然后返回一个s2.jsp显示之前提交的参数。 我在web.xml中,servlet配置的是拦截所有的请求发给springMVC,那为什么我能在浏览器中直接输入url打开s1.jsp(s1.jsp位于WebContent目录下)?如果在相同的目录下放置一个html文件,浏览器中直接输入url则会被拦截。 我不明白为什么springMVC默认不会拦截jsp?在哪里设置的? ![图片说明](https://img-ask.csdn.net/upload/201504/17/1429235425_812398.png)

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问