问题出在servlet映射的url模式中。
<url-pattern>/DispatcherServlet</url-pattern>
假设我们的控制器是
@Controllerpublic class HomeController { @RequestMapping("/home") public String home(){ return "home"; }}当我们在浏览器中点击某些URL时。调度程序servlet将尝试映射此URL。
当前我们Serlvet的网址模式是
/Dispatcher指从
{contextpath}/Dispatcher但是当我们请求时,我们
http://localhost:8080/home实际上是在询问/哪些资源不可用。所以要么我们需要说调度程序servlet就可以
/通过
<url-pattern>/</url-pattern>
我们通过/ dispatcher
/Dispatcher/*
例如
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>springsecuritydemo</display-name> <servlet> <description></description> <display-name>offers</display-name> <servlet-name>offers</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>offers</servlet-name> <url-pattern>/Dispatcher/*</url-pattern> </servlet-mapping></web-app>
并要求
http://localhost:8080/Dispatcher/home或只是/要求像
http://localhost:8080/home



