【问题标题】:Servlet-mapping glitch with spring mvc使用 spring mvc 的 Servlet 映射故障
【发布时间】:2014-05-13 03:09:13
【问题描述】:

​如果我尝试:

<servlet-mapping>
    <servlet-name>app</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

我得到这个错误:

No mapping found for HTTP request with URI [/sample/WEB-INF/jsp/person.jsp]

如果我尝试将/ 用作&lt;url-pattern&gt;,那么一切正常。

我的网址:http://localhost:8080/sample/person

为什么会这样?在 web.xml 中进行此配置的首选方式是什么?

我的app-servlet.xml 有:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

【问题讨论】:

  • 您如何配置您的应用程序来定位 *.jsp 文件?你能输入你的资源配置设置吗?

标签: java spring spring-mvc servlet-mapping


【解决方案1】:

您将 /*(对您的应用的每个请求)映射到名为“app”的 servlet。 InternalResourceViewResolver 在“/WEB-INF/jsp/person.jsp”中查找(内部)“/person”。这样您就可以访问您的视图,而脚本在 WEB-INF 中是安全的,无法从 url(公共)访问。

【讨论】:

    【解决方案2】:

    /* 表示对您的网络应用程序的每个公开请求。这意味着对于您的 jsp,它应该是公开访问的,因为它在 WEB-INF 中而不是公开的,它会报错。

    如果你只使用/,这意味着服务器接受了请求,网络应用在内部处理它,没有任何公共访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-02
      • 2014-12-24
      • 2017-01-18
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      相关资源
      最近更新 更多