luoyu1234 2012-03-01 23:08
浏览 181
已采纳

有关static的对象中的方法加synchronized的疑问

struts1中的类TokenProcessor
private static TokenProcessor instance = new TokenProcessor();
public static TokenProcessor getInstance() {
return instance;
}
其中有方法
public synchronized boolean isTokenValid(HttpServletRequest request,boolean reset){
// Retrieve the current session for this request
HttpSession session = request.getSession(false);
if (session == null) {
return false;
}

    String saved = (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY);
    if (saved == null) {
        return false;
    }

    if (reset) {
        this.resetToken(request);
    }

    String token = request.getParameter(Constants.TOKEN_KEY);
    if (token == null) {
        return false;
    }

    return saved.equals(token);

}
这里为什么要加synchronized么?有哪位给讲一下?

  • 写回答

4条回答 默认 最新

  • justin051 2012-03-02 09:50
    关注

    HttpSession是线程不安全的。 本质上只有Request级别是线程安全的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条