小技能,Servlet3.x 应用无 web.xml 指定欢迎页引出的路径消除

小技巧,Servlet3.x 应用无 web.xml 指定欢迎页引出的路径消除
一般来说,访问网络应用程序需要:
协议 + 域名/IP + 端口 + 应用根路径 + 服务路径 + 参数

大家都知道对于 http 协议,浏览器能够自动在路径前补充协议;端口可以通过指定为 80 端口来省略。这里咱们来看看如何省略应用根路径和服务路径。

Tomcat 7.x 全面支持 Servlet3.0 标准。这意味着网络应用程序可以甩开 web.xml 而直接在程序中通过类标注(Annotation)指定谁是 Servlet 。这种方便的编程方式一经使用,就要求应用不能再有 web.xml ,否则类标注不会被 Tomcat 识别。但这引发了一个问题。我们之前都是通过


来省略服务路径。现在 web.xml 没有了,服务路径怎么省略不写而继续正常访问呢?


Tomcat 目录中有 conf 目录,里边提供了一个 web.xml 。其存在并不会影响具体一个应用中类标注的识别。于是我们可以在这里指定欢迎页,虽然会让每一个应用程序都具有相同的自动指向,但是却能因此省略掉服务路径。

至于应用根路径,之前提到过。我们常在 Tomcat 目录中,用 conf/Catalina/localhost/appxxxx.xml 来引入外源应用程序。这里可以转为制作 ROOT.xml 文件代替具体的某一个 appxxxx.xml 。文件内容可以完全一样,不过要求 path 的值必须为空字符串。