Servlet URL 模式匹配所有 URL
Servlet URL pattern to match all URL
我目前正在使用 Spring MVC 来做一个项目。我在使用 url 模式引导我的 jsp 页面时遇到问题。每次我创建一个新的 jsp 页面时,我都必须将 jsp 名称硬编码到 web.xml.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>ShoppingCart</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Once DispatcherServlet is initialized will look for file name [servlet-name]-servlet.xml, dispatcher-servlet.xml -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- all request matches with <url-pattern> will be handled by DispatcherServlet instance named dispatcher -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/register.jsp</url-pattern>
<url-pattern>/login.jsp</url-pattern>
<url-pattern>/update.jsp</url-pattern>
</servlet-mapping>
</web-app>
下图是我的文件夹结构
在 web.xml
上指定您的通用 servlet url-mapping
,然后在您的控制器
上处理它的子 URLS
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在您的 dispatcher-context.xml
上配置一个 InternalResourceViewResolver
bean
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
在你的控制器上:
@Controller
@RequestMapping("/")
public class ControllerRegister{
@RequestMapping("register")
public String goToRegisterPage(){
return "register";
}
}
这将在文件夹 WEB-INF/views/
下提供 register.jsp
我们调用 URL
:
http://yourHost:port/yourApp/register
我目前正在使用 Spring MVC 来做一个项目。我在使用 url 模式引导我的 jsp 页面时遇到问题。每次我创建一个新的 jsp 页面时,我都必须将 jsp 名称硬编码到 web.xml.
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>ShoppingCart</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Once DispatcherServlet is initialized will look for file name [servlet-name]-servlet.xml, dispatcher-servlet.xml -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- all request matches with <url-pattern> will be handled by DispatcherServlet instance named dispatcher -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/register.jsp</url-pattern>
<url-pattern>/login.jsp</url-pattern>
<url-pattern>/update.jsp</url-pattern>
</servlet-mapping>
</web-app>
下图是我的文件夹结构
在 web.xml
上指定您的通用 servlet url-mapping
,然后在您的控制器
URLS
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
在您的 dispatcher-context.xml
InternalResourceViewResolver
bean
<beans:bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
在你的控制器上:
@Controller
@RequestMapping("/")
public class ControllerRegister{
@RequestMapping("register")
public String goToRegisterPage(){
return "register";
}
}
这将在文件夹 WEB-INF/views/
下提供 register.jsp
我们调用 URL
:
http://yourHost:port/yourApp/register