在 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>
第二种更简单,写起来也更集中,但是为什么当时不采用这种形式呢?
java里面太多这种思想了,单一原则吧。第一个结构很清晰:定义功能,映射功能分开。第二个:定义和映射混在一起。绝大部分情况下,这个url-pattern 只会有一个url,实际开发中使用了mvc框架,自定义servlet的情况就更少了。
该问题公说公有理,婆娑婆有理。