对于JSP某个现象
JSP文件
<html>
<head>
<title></title>
</head>
<body>
<%! int num = 0 ; %>
<h1>num:<%= ++num %></h1>
</body>
</html>
对于num..已经定义为类的成员变量..每次刷新都应该自动加1的...可是..有些时候会自动变回为1了..对于这种现象...有人说.每个容器在后台优化的过程是不一样的...tomcat里Sevlet处理客户端采用多线程..每个线程都有一份缓存..这个缓存定期与主线程的缓程同步....如果真是这样...
是不是把成员变量设为volatile就可以了?(实验下还是不行...)
探讨了JSP中定义的成员变量num在Tomcat容器环境下未按预期递增的现象。作者发现尽管num被定义为类成员变量并期望每次页面刷新时递增,但实际上有时会重置为初始值1。讨论涉及Servlet多线程模型及缓存同步机制,并尝试通过使用volatile关键字解决该问题。
9882

被折叠的 条评论
为什么被折叠?



