spring web.xml配置url-pattern的问题,为什么访问不到controller 提示404?

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"
         id="WebApp_ID" version="3.0">
    <filter>
        <filter-name>EncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
            <!--<param-value>classpath*:config/spring/spring-servlet.xml</param-value>-->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:config/spring/spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

spring-servlet.xml
------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

    <context:component-scan base-package="com.kingsbet.wzry"/>

    <!-- 处理器映射器:该映射器根据URL来匹配bean的name,映射器都实现了接口HandlerMapping -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

    <!-- 处理器适配器:适配器都实现了HandlerAdapter,action按照适配器要求开发,规则是实现Controller -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <!-- JSON转换器 -->
        <property name="messageConverters">
            <list>
                <!--下面使用的是GSON,如若使用普通JSON,请使用MappingJackson2HttpMessageConverter-->
                <bean class="org.springframework.http.converter.json.GsonHttpMessageConverter"/>
            </list>
        </property>
    </bean>
    <bean class="com.kingsbet.wzry.WebConfig"></bean>
    <!-- 视图的解析器 :解析JSP视图,默认使用JSTL,要求classpath下有JSTL的JAR包-->
    <!--<bean-->
            <!--class="org.springframework.web.servlet.view.InternalResourceViewResolver">-->
        <!--<property name="prefix" value="/page/"/>-->
        <!--<property name="suffix" value=".jsp"/>-->
    <!--</bean>-->

</beans>

结果:

clipboard.png

以上是没问题的.但是现在我想改一下访问路径.将web.xml中的url-pattern改成

clipboard.png

结果

clipboard.png

阅读 3.6k
1 个回答

没看懂你想干嘛....DispatcherServlet是SpringMVC的前端控制器,所有请求被他拦截后分配给其他Controller,你想把url变成/test/userlogin的话,应该是改@RequestMapping({"/test/userlogin"}).
或者你实在要改web.xml的话,就改成<url-pattern>/test/*</url-pattern>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进