关于 Java web.xml 中定义 servlet 的疑问

在 web.xml 里面添加一个 servlet 的方法是:

<servlet>
  <servlet-name>example</servlet-name>
  <servlet-class>example.ServletClass</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>example</servlet-name>
  <url-pattern>/example</url-pattern>
</servlet-mapping>

一直觉得这种定义方式很奇怪,为什么不这样设计呢?

<servlet>
  <servlet-name>example</servlet-name>
  <!-- 这里可以添加多个 url-pattern 元素,或者每个
  pattern 之间用逗号分隔,以支持一对多关系 -->
  <url-pattern>/example</url-pattern>
  <servlet-class>example.ServletClass</servlet-class>
</servlet>

第二种更简单,写起来也更集中,但是为什么当时不采用这种形式呢?

阅读 1.6k
1 个回答

java里面太多这种思想了,单一原则吧。第一个结构很清晰:定义功能,映射功能分开。第二个:定义和映射混在一起。绝大部分情况下,这个url-pattern 只会有一个url,实际开发中使用了mvc框架,自定义servlet的情况就更少了。

该问题公说公有理,婆娑婆有理。

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