Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Init方法在java servlet中被调用两次_Java_Servlets - Fatal编程技术网

Init方法在java servlet中被调用两次

Init方法在java servlet中被调用两次,java,servlets,Java,Servlets,我想在应用程序启动时调用init方法 <servlet> <servlet-name>servletTest</servlet-name> <servlet-class>com.gateway.Gateway</servlet-class> <load-on-startup>1</load-on-startup> </servlet> 实际上,您正在

我想在应用程序启动时调用init方法

    <servlet>
      <servlet-name>servletTest</servlet-name>
      <servlet-class>com.gateway.Gateway</servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

实际上,您正在创建
网关
Servlet类的两个实例(对象),一个通过
web.xml
,一个通过
@WebServlet
,因此
init()
将被调用两次(每个实例一次)。默认情况下,servlet类应该只有一个实例(除非您希望以不同的方式运行)

因此,要解决这个问题,您有两个选择:

(1) 删除
web.xml
并将
loadOnStartup=1
添加到
@WebServlet
中,如下所示:
@WebServlet(urlPatterns=“/Gateway”,loadOnStartup=1)

(2) 在
Gateway
类中删除
@WebServlet(urlPatterns=“/Gateway”)
,并在
web.xml
中配置servlet,如下所示:

 <servlet>
      <servlet-name>Gateway</servlet-name>
      <servlet-class>com.gateway.Gateway</servlet-class>
      <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
      <servlet-name>Gateway</servlet-name>
      <url-pattern>/Gateway</url-pattern>
  </servlet-mapping>

网关
网关
1.
网关
/网关

您实际上正在创建
网关
Servlet类的两个实例(对象),一个通过
web.xml
,一个通过
@WebServlet
,因此
init()
被调用两次(每个实例一个)。默认情况下,servlet类应该只有一个实例(除非您希望以不同的方式运行)

因此,要解决这个问题,您有两个选择:

(1) 删除
web.xml
并将
loadOnStartup=1
添加到
@WebServlet
中,如下所示:
@WebServlet(urlPatterns=“/Gateway”,loadOnStartup=1)

(2) 在
Gateway
类中删除
@WebServlet(urlPatterns=“/Gateway”)
,并在
web.xml
中配置servlet,如下所示:

 <servlet>
      <servlet-name>Gateway</servlet-name>
      <servlet-class>com.gateway.Gateway</servlet-class>
      <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
      <servlet-name>Gateway</servlet-name>
      <url-pattern>/Gateway</url-pattern>
  </servlet-mapping>

网关
网关
1.
网关
/网关

提供调用客户机实现来分析问题。servlet很有可能在两个不同的上下文中初始化。检查您的程序只有一个上下文。@TechBreak browser是我的客户端提供您的调用客户端实现来分析您的问题。您的servlet很可能是在两个不同的上下文中初始化的。检查您的程序是否只有一个上下文。@TechBreak浏览器是我的客户端是的,这就是问题所在。谢谢。是的,这就是问题所在。非常感谢。