zoukankan      html  css  js  c++  java
  • struts action不在是一个单例类

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

     1 package action;
     2 
     3 import java.io.IOException;
     4 import javax.servlet.ServletException;
     5 import javax.servlet.http.HttpServlet;
     6 import javax.servlet.http.HttpServletRequest;
     7 import javax.servlet.http.HttpServletResponse;
     8 
     9 
    10 public class TestServelt extends HttpServlet{
    11     
    12     private int num;
    13     
    14     @Override
    15     protected void service(HttpServletRequest req, HttpServletResponse resp)
    16             throws ServletException, IOException {
    17         resp.getWriter().println(++num);
    18     }
    19 }

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

    而如果是struts的action

     1 public class ShowWords {
     2 
     3     private int num=0;
     4     public int getNum(){
     5         return this.num;
     6     }
     7     public String execute(){
     8         num++;
     9     }
    10 }

    在JSP页面添加

    ${num}

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

  • 相关阅读:
    前端之CSS
    前端之HTML
    数据库作业案例
    django进阶版4
    django进阶版3
    django进阶版2
    django初步了解4
    django进阶版1
    django初步了解3
    django初步了解2
  • 原文地址:https://www.cnblogs.com/caoyc/p/5579872.html
Copyright © 2011-2022 走看看