请问,java高手,spring mvc拦截器如何拦截所有的请求啊,包括html和jsp页面?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问,java高手,spring mvc拦截器如何拦截所有的请求啊,包括html和jsp页面?相关的知识,希望对你有一定的参考价值。

目前配置的只能拦截controller的请求。
我配置如下:

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean id="loginInterceptor" class="com.blibao.dianping.web.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
----

/**
* 登陆拦截器.
*
* @author leizhimin 2014/6/26 16:08
*/
public class LoginInterceptor extends HandlerInterceptorAdapter
// private static final String[] IGNORE_URI = "/login.jsp", "/Login/","backui/","frontui/";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
String url = request.getRequestURL().toString();
boolean flag = false;
System.out.println(">>>: " + url);
/* for (String s : IGNORE_URI)
if (url.contains(s))
flag = true;
break;


if (!flag)
T_supplier_user user = LoginController.getLoginUser(request);
if (user != null) flag = true;
*/
//跳转登录
if(url.contains("user/toLogin.do"))
return true;

request.getRequestDispatcher("/user/toLogin.do").forward(request, response);
return flag;

web.xml里面这样配置 他就拦截所有请求了
<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>追问

还是没有用,只能拦截controller的请求,拦截不了jsp的请求

参考技术A web.xml配置/*,如果是/默认不拦截jsp 参考技术B 如果拦截所有的话,你应该用filter。追问

filter有个问题,就是我拦截到session中有该用户时,我要帮她自动登录,此时service还没放入spring的容器中

追答

service还没放入spring容器,这个说法不会存在吧。 controller不会在filter的spring容器中倒是可能的。至于service,不太可能。

参考技术C <servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
这样就会拦截所有请求了
参考技术D 貌似这个HandlerInterceptorAdapter不能拦截对静态资源的拦截,只能拦截controller,用HandlerInterceptor可以

请问各位大师:spring mvc中下面报的这个错是啥原因?应该如何解决?

2012-5-25 9:27:50 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\springMVC\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
log4j:WARN No such property [datePattern] in org.apache.log4j.ConsoleAppender.
2012-5-25 9:27:50 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
>>> 2012-05-25 09:27:50,750 INFO [main] (ContextLoader.java:186) - Root WebApplicationContext: initialization started
>>> 2012-05-25 09:27:50,906 INFO [main] (AbstractApplicationContext.java:454) - Refreshing Root WebApplicationContext: startup date [Fri May 25 09:27:50 CST 2012]; root of context hierarchy

参考技术A 少jar包了 你把tomcat根目录里面的lib目录下的servlet-api.jar 放到项目的lib下追问

放了,还是报错!加我朋友的QQ:815479501,我们细聊!

参考技术B 看不清晰。。截图

以上是关于请问,java高手,spring mvc拦截器如何拦截所有的请求啊,包括html和jsp页面?的主要内容,如果未能解决你的问题,请参考以下文章

spring mvc中如何读取数据库

xml [spring mvc拦截器配置] #spring #java

请问java高手,spring的jdbcTemplate是怎样调用oracle的存储过程的呢?

请问java高手,spring的jdbcTemplate是怎样调用oracle的存储过程的呢?

请问各位大师:spring mvc中下面报的这个错是啥原因?应该如何解决?

Spring mvc 3:如何在拦截器中获取路径变量?