zoukankan      html  css  js  c++  java
  • Spring mvc web.xml中 urlpatten的配置问题

    在使用spring mvc 是我们会配置spring 的DispatcherServlet作为请求的转发器。

    <servlet>
        <servlet-name>spring</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
       <servlet-name>spring</servlet-name>
       <url-pattern>/</url-pattern>
    </servlet-mapping>

    这里url-pattern 是设置可以处理的请求路径模式。我遇到一个问题就是当我把url-pattern设置为 /* 时我的请求就总是报出

    HTTP Status 404 -的错误。a

    后台也访问到了我的Controller 但是在返回ModeAndView 时我指定的 页面 却找不到了。

    ffffffff
    
    九月 29, 2016 11:19:31 下午 org.springframework.web.servlet.PageNotFound noHandlerFound
    
    警告: No mapping found for HTTP request with URI [/SpringMvcDemo/WEB-INF/jsp/hello.jsp] in DispatcherServlet with name 'spring'

    fffffff是我的请求到了controller的输出。 hello 是设置的view 名称。在我的WEB-INFO/jsp 目录下也确实存在hello.jsp 文件。

    经查阅网络找到问题所在:

    原来,关键就在于url-pattern的设置:
    当是<url-pattern>/</url-pattern>  会匹配到/hello这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url
    当是<url-pattern>/*</url-pattern> 会匹配所有url:路径的url和后缀型的url(包括/hello,*.jsp,*.js和*.html等)

    所以,当时/*时 请求过来的url其实已经找到了,但是当显示jsp时却被再次拦截当做请求处理了一次,这次就找不到hello.jsp对应的访问controller了。所以改成 / 就OK 了。

    写博----记人生,即人生
  • 相关阅读:
    补:冲刺Day1
    需求规格说明书2.0
    补:冲刺Day2
    冲刺Day3
    Base64上传图片
    C#怎样通过url调用接口
    js键盘控制DIV移动
    利用MVC的过滤器实现url的参数加密和解密
    在.net MVC中异步上传图片或者文件
    mvc url路由参数的加密和解密
  • 原文地址:https://www.cnblogs.com/sane/p/5922371.html
Copyright © 2011-2022 走看看