gpt4 book ai didi

java - 多个 Servlet 映射

转载 作者:行者123 更新时间:2023-12-02 13:41:30 25 4
gpt4 key购买 nike

我在分配给我的项目中打开了一个 web.xml 文件,并且看到多个具有相同 servlet 名称的 servlet 映射:

   <servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/beta/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

此外,特定的 servlet 似乎包含两种不同的配置:

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.common.utils.HeadCompliantActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/beta</param-name>
<param-value>/WEB-INF/struts-config-beta.xml</param-value>
</init-param>

所以我的问题是......

特定 servlet 的两个不同实例是否正在初始化/加载?或者正在加载特定 servlet 的一个版本?

最佳答案

本节

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>/beta/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

指定您的 servlet 应响应哪些模式。使用同一个 servlet 拥有多个 url 模式是完全可以的,就像您在这里的情况一样。

然后是这一部分:

<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.common.utils.HeadCompliantActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>config/beta</param-name>
<param-value>/WEB-INF/struts-config-beta.xml</param-value>
</init-param>

这只是一个 servlet 的定义,而不是两个。然而,它有两个参数,即在 init 时发送到 servlet 的 init-param 定义的参数,但它仍然是同一个 servlet 定义。

然后,Struts 读取配置并处理初始化的 servlet 中的配置。

应用程序中将有多少个 servlet 类实例由 servlet 容器决定。

关于java - 多个 Servlet 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42717547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com