Spring mvc拦截器的问题?

javaEasy 发布于 2013/09/04 10:25
阅读 4K+
收藏 0

我在Spring-servlet.xml中配置这样的拦截器:

<mvc:interceptors>  
      <mvc:interceptor>  
        <mvc:mapping path="/**"/> 
        <bean id="interceptors" class="com.mms.hhs.webs.servlet.FiterInterceptor"/>  
       </mvc:interceptor>
   </mvc:interceptors>
能连接所有的 .do文件,但是怎样拦截页面呢,比如说我要直接访问一个页面:http://localhost:8080/test/aa.jsp,怎样拦截这个页面,然后调转到另一个页面呢.下面是我的java拦截器的方法:

@Override  
    public boolean preHandle(HttpServletRequest request,  
            HttpServletResponse response, Object handler) throws Exception {  
        log.debug("拦截器的前端,执行控制器之前所要处理的方法,通常用于权限控制、日志,其中,Object handler表示下一个拦截器");  
        //业务逻辑   
         String url=request.getRequestURL().toString(); 
         //String userInfo =(String) request.getSession().getAttribute( "userInfo");
         //if (mappingURL == null || !url.matches(mappingURL)) {
        	System.out.println("hah ");
        	request.getRequestDispatcher("/bb3.jsp").forward(request, response);
           return false;
        //}     
       // return true; 
    }

加载中
1
冷血
冷血
是你在 web.xml中spring的过滤器就没有配置过滤*.jsp。所以你在spring怎么配置都拦截不到的。
1
panmingguang
panmingguang
无法拦截到的哇,  servlet 配置 后缀.do , 直接在 action 内跳转 到  aa.jsp , 这时就可以拦截了, 再说 现在还 哪有 直接 跳jsp的这种写法
0
loki_lan
loki_lan
直接获取URL“.”后缀类型判断不就得了。
0
逝水fox
逝水fox
直接页面请求不经过Spring MVC的话,拦截器无效,考虑换用Servlet Filter
0
戴威
戴威
用Filter
0
javaEasy
javaEasy

引用来自“铂金小猫”的答案

直接获取URL“.”后缀类型判断不就得了。

我直接配置了 ,还是不行啊:

<mvc:interceptors>  
      <mvc:interceptor>  
         <mvc:mapping path="/*.do"/> 
        <mvc:mapping path="/*.ajax" />  
        <mvc:mapping path="/*.jsp" />  
        <!-- 二级目录 -->  
      <!--   <mvc:mapping path="/*/*.do" />    -->
        <mvc:mapping path="/*/*.ajax" />  
        <mvc:mapping path="/*/*.jsp" />  
        <bean id="interceptors" class="com.mms.hhs.webs.servlet.FiterInterceptor"/>  
       </mvc:interceptor>
   </mvc:interceptors>

0
javaEasy
javaEasy

引用来自“逝水fox”的答案

直接页面请求不经过Spring MVC的话,拦截器无效,考虑换用Servlet Filter
是不是必须把页面放到  web-info/下啊,才能使用spring mvc的拦截啊
逝水fox
逝水fox
问的出这个问题,楼主还是先放过Spring,先从Servlet的知识看起吧
逝水fox
逝水fox
web.xml里面,要先配置把对应的请求转给Spring的DispatcherServlet,你Spring的配置才对这些请求生效。否则,整个过程不经过Spring,你Spring配置什么拦截器都没用。而Filter的话是在Servlet之前的。
0
蓝缘Y
蓝缘Y
你自己还没有搞清楚是拦截.do的地址.还是拦截jsp页面..上楼正解..
0
Juzhang
Juzhang
<?php
 echo 'hello world';
?>
0
cxshun
cxshun
直接让spring的filter拦截所有,即url-mapping里面拦截/,上面的几个兄弟都说到了。
返回顶部
顶部