Spring MVC中“dispatcherServlet”和“appServlet”的区别

时间:2015-12-17 12:08:06

标签: spring spring-mvc

spring MVC中“dispatcherServlet”和“appServlet”之间的区别。我可以获得任何样品或参考文献吗?

2 个答案:

答案 0 :(得分:1)

从技术上讲,两者都是 HttpServlet 实现来处理传入的请求。 DispatcherServlet 是Spring提供的servlet实现,具有异常处理等所有基本功能。 你必须编写你的请求映射器,它将处理所有请求。

AppServlet 没有什么不同,只是针对特定处理请求的实现。 两者都将以相同的方式工作。如果您没有任何特定的处理,那么您可以使用Spring DispatcherServlet。

例如......

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

<!-- Custom Servlet -->
<servlet>
<servlet-name>CustomServlet</servlet-name>
<servlet-class>org.abc.CustomServlet</servlet-class>
<init-param>
    <param-name>debug</param-name>
    <param-value>false</param-value>
</init-param>
<init-param>
    <param-name>any-other-Parameter</param-name>
    <param-value>false</param-value>
</init-param>

<servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
    <url-pattern>/myapp/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>CustomServlet</servlet-name>
  <url-pattern>/myapp2/*</url-pattern>
</servlet-mapping>

有关 DispatcherServlet 的参考,您可以看到http://www.mkyong.com/spring-mvc/spring-mvc-hello-world-example/

答案 1 :(得分:0)

要理解这一点,您可以查看以下配置:

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

在上面的配置中,DispatcherServlet是spring framework提供的servlet类。

  

DispatcherServlet的工作是获取传入的URI并找到   正确的处理程序组合(通常是Controller类的方法)   和组合形成页面或资源的视图(通常是JSP)   那应该是在那个地方找到的。

appServlet 是您在web.xml文件中提供的自定义名称。