Java 多个Servlet映射
我在分配给我的一个项目中打开了一个web.xml文件,看到了多个具有相同servlet名称的servlet映射:Java 多个Servlet映射,java,servlets,struts-1,Java,Servlets,Struts 1,我在分配给我的一个项目中打开了一个web.xml文件,看到了多个具有相同servlet名称的servlet映射: <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/beta/*</url-pattern> </servlet-mapping> <servlet-mapping>
<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>
行动
org.common.utils.HeadCompliantActionServlet
配置
/WEB-INF/struts-config.xml
配置/测试版
/WEB-INF/struts-config-beta.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创建多个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>
行动
org.common.utils.HeadCompliantActionServlet
配置
/WEB-INF/struts-config.xml
配置/测试版
/WEB-INF/struts-config-beta.xml
这是一个servlet的唯一定义,而不是两个。但是,它有两个参数,一个是用init param
定义的,发送到init上的servlet,但它仍然是同一个servlet定义
Struts然后读取配置并处理servlet中的配置
应用程序中servlet类的实例数量由servlet容器决定