使用Java EE的Servlet或struts1的Action时,必须保证其是线程安全的。修复方式举例如下:
例如:下面代码示例,使用局部变量,因为局部变量在每个线程中都有各自的实例,从而保证线程安全。
import javax.servlet.http.HttpServlet;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest req,HttpServletResponse res) {
String username = req.getParameter("username");
...
out.println("欢迎您,"+username+"!");
}
}
另外,也可以使用同步代码块访问servlet实例变量。但使用同步代码块可能会导致性能问题。