Java 如何正确映射servlet?

Java 如何正确映射servlet?,java,servlets,spring-mvc,configuration,Java,Servlets,Spring Mvc,Configuration,我有两个控制器: @Controller @RequestMapping("/controllerPath") public class MyController { @RequestMapping("/sayHello") public String sayHello(Model model){ ... } } 第一个控制器呈现给jsp 第二个返回JSON 因此,我希望这个控制器有不同的配置 我在web.xml中编写了以下内容: <serv

我有两个控制器:

@Controller
@RequestMapping("/controllerPath")
public class MyController {

    @RequestMapping("/sayHello")
    public String sayHello(Model model){
        ...
    }

}

第一个控制器呈现给jsp

第二个返回JSON

因此,我希望这个控制器有不同的配置

我在web.xml中编写了以下内容:

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>mvc-dispatcher-rest</servlet-name>
        <servlet-class>
                  org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/controllerPath/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>mvc-dispatcher-rest</servlet-name>
        <url-pattern>/restControllerPath/*</url-pattern>
  </servlet-mapping>

mvc调度器
org.springframework.web.servlet.DispatcherServlet
1.
mvc调度程序rest
org.springframework.web.servlet.DispatcherServlet
1.
mvc调度器
/控制器路径/*
mvc调度程序rest
/restControllerPath/*
当我从浏览器发送http请求时,我看到404

如果我只对一个servlet使用so样式(如下所示):

<servlet-mapping>
            <servlet-name>mvc-dispatcher-rest</servlet-name>
                <url-pattern>/</url-pattern>
          </servlet-mapping>

mvc调度程序rest
/
  • 控制器方法调用,我看到了很好的结果

如何使用第一种样式重写它?

mvc dispatcher和
mvc dispatcher rest
都加载相同的servlet


因此,您不需要两个条目。只需使用一个条目,并将根上下文映射到servlet。

上一个问题中发生了什么变化?另一个公式。我希望Clearler使用这两个servlet的原因是什么?不同的*-servlet.xml和关于映射的问题,您的建议-offtopic但是一个使用mvc-dispatcher-servlet.xml,另一个使用mvc-dispatcher-rest-servlet.xml您应该能够组合xml文件。这是一个问题吗?我想有两个不同的xml文件。我认为模式中的错误是的,但这次尝试失败了
<servlet-mapping>
            <servlet-name>mvc-dispatcher-rest</servlet-name>
                <url-pattern>/</url-pattern>
          </servlet-mapping>