如果我尝试:
<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]
如果我只是/
作为<url-pattern>
,那么一切正常。
我的网址: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>
答案 0 :(得分:2)
您将/ *(对您的应用的每个请求)映射到名为&#39; app&#39;的servlet。 InternalResourceViewResolver比(内部)&#39; / person&#39;在&#39; /WEB-INF/jsp/person.jsp'。通过这种方式,您可以访问您的视图,而脚本在WEB-INF中是安全的,无法从URL(公共)访问。
答案 1 :(得分:1)
/*
表示对您的网络应用的每个公开请求。这意味着你的jsp应该是公共访问的,因为它在WEB-INF中而不是公共的,它会给出错误。
如果仅使用/
,则意味着服务器接收了请求,并且网络应用程序在没有任何公共访问权限的情况下对其进行内部处理。