struts action不在是一个单例类

时间:2022-02-22 09:45:30

在servlet中,servlet类是一个单例,在servlet中的成员变量,将会被所有请求共享,同时也有可能存在线程安全问题,如有一个成员变量num,每次方法后市的num自增

 package action;

 import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class TestServelt extends HttpServlet{ private int num; @Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.getWriter().println(++num);
}
}

没访问一次,num就会自增一次,输出为1,2,3,4......

而如果是struts的action

 public class ShowWords {

     private int num=0;
public int getNum(){
return this.num;
}
public String execute(){
num++;
}
}

在JSP页面添加

${num}

每次输出的都是1,也就是多struts中action并不是一个单例