遇到一个这样的问题,在一个 SSM 框架的项目中,URL 的地址都没重写了,但是在项目里始终找不到  URLReWrite 的 UrlRewriteFilter 在web.xml 中配置,和 urlrewrite.xml 配置文件,请问 URL 是怎么被重写的?

解决方案 »

  1.   

    建议你去看下springMVC的生命周期;
      

  2.   

    我知道 Spring MVC 的生命周期,在 View Resolver 里配置的是后缀是 .jsp ,它实际是访问的是 JSP 页面
      

  3.   

    检查所有的过滤器
    或者搜索request.getRequestDispatcher
      

  4.   

    在 web.xml 中配置的前端控制器是
    <servlet>
    <servlet-name>Spring-Servlet</servlet-name>
    <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:spring-*.xml
    </param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>Spring-Servlet</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>Spring-Servlet</servlet-name>
    <url-pattern>*.shtml</url-pattern>
    </servlet-mapping>在 springmvc.xml 中配置的视图解析器是
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/view/"/>
    <property name="suffix" value=".jsp"/>
    </bean>在 Controller 里返回的就是 ModelAndView 对象。
    在访问系统后, url 中返回的就是 xxx.shtml ,每个URL后面都有个 .shtml 后缀