我们可以在web.xml条目中调用没有<servlet-mapping>的servlet

Pun*_*Raj 8 servlets web-applications java-ee

在我看到的其中一个代码中,没有<servlet-mapping>标签,只有它声明如下

<servlet>
    <servlet-name>startServlet</servlet-name>
    <servlet-class>com.login.StartupServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)

这可以没有<servlet-mapping>工作<load-on-startup>1</load-on-startup>吗?

这个servlet将在服务器启动时加载以连接到DB并在缓存上执行一些操作.

PS:这是在Servlet 2.0+版本上,没有注释.

谢谢Punith

Pio*_*cki 7

您发布的代码定义了一些您可能称之为"初始化Servlet"的代码.它不是从外部世界直接访问的(使用URL),但它将由Servlet容器启动.

它是有效的,但客户端无法访问它.它通常用于初始化目的.您可以在不<servlet-mapping>使用Servlets 3.0注释的情况下访问servlet .

请注意,<load-on-startup>它不包含true/false值(0/1),但它定义了一个整数,它是一个启动顺序.数字越大意味着Servlet将在数字越小的数据加载.