我已经安装了 Tomcat 并浏览到他们的例子 http://mylocalhost.com:8080/examples/servlets/servlet/HelloWorldExample
但是当我在这里查看 web.xml 中的 servlet 映射时,它是针对 HelloWorldExample
<servlet-mapping>
<servlet-name>HelloWorldExample</servlet-name>
<url-pattern>/servlets/servlet/HelloWorldExample</url-pattern>
</servlet-mapping>
为什么缺少示例,不应该是:
<url-pattern>/examples/servlets/servlet/HelloWorldExample</url-pattern>
最佳答案
访问web项目的url是
http://yourHost:yourPort/yourProjectName
从这里你可以看出examples
是您的项目名称或 context root
您的项目。
因此,当您提供类似 http://mylocalhost.com:8080/examples
的网址时
首先容器读取deployment descriptor
的 <welcome-file-list>
标记并显示在 <welcome-file>
下指定的文件如果它存在。
当您指定此网址时
http://mylocalhost.com:8080/examples/servlets/servlet/HelloWorldExample
容器再次搜索 deployment descriptor
对于指定的 url /servlets/servlet/HelloWorldExample
如果它找到一个,它会加载指定的相应类。
关于java - servlet mapping Tomcat究竟是怎么做的呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25115262/