我是靠谱客的博主 愉快歌曲,最近开发中收集的这篇文章主要介绍fortify——J2EE Bad Practices: Non-Serializable Object Stored in Session,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
J2EE错误实践:存储在会话中的非可序列化对象
Explanation:
J2EE JVM JVM J2EE JVM HttpSession JVM JVM
public class DataGlob {
String globName;
String globValue;
public void addToSession(HttpSession session) {
session.setAttribute("glob", this);
}
}
Recommendations:
public class DataGlob implements java.io.Serializable {
String globName;
String globValue;
public void addToSession(HttpSession session) {
session.setAttribute("glob", this);
}
}
分析
对于不需要将对象序列化到同一jvm以外的应用场景,以上代码没有问题。然而考虑到系统的扩展性,以上问题应该予以避免。
以下是一些常见的会导致问题的场景:
1.
在一些大型应用系统的实现里,会考虑将部分SESSION里的对象钝化到数据库、磁盘里。
2.
在非session-sticky的集群环境里,应用服务器会在集群里广播、复制session数据
修正
最后
以上就是愉快歌曲为你收集整理的fortify——J2EE Bad Practices: Non-Serializable Object Stored in Session的全部内容,希望文章能够帮你解决fortify——J2EE Bad Practices: Non-Serializable Object Stored in Session所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复