使用Java EE的Servlet或struts1的Action时,必须保证其是线程安全的。修复方式举例如下:

    例如:下面代码示例,使用局部变量,因为局部变量在每个线程中都有各自的实例,从而保证线程安全。

    1. import javax.servlet.http.HttpServlet;
    2. public class LoginServlet extends HttpServlet {
    3. protected void doPost(HttpServletRequest req,HttpServletResponse res) {
    4. String username = req.getParameter("username");
    5. ...
    6. out.println("欢迎您,"+username+"!");
    7. }
    8. }

    另外,也可以使用同步代码块访问servlet实例变量。但使用同步代码块可能会导致性能问题。