在项目开发阶段,我们服务器使用的是tomcat。通常我们在改变java文件后,不想重启服务器,可以要tomcat连接池中配置文件中加上 reloadable = true 。这样tomcat就支持热部署.即修改java文件后tomcat会自动加载class文件.
如此一来,就能马上看到改变后的效果.
但是,同时会带来 session中存放的对象丢失的情况.即session对象为 null .我们在项目开发阶段一直没有找到原因.后来,受网上一篇文章的启发.将要放到session中的对象实现序列化接口(Serializable ).
结果经测试果然如此,session不会过期.里面仍然有值.这样,不用每次过期之后就跳到登录页面了.
现贴出代码:
public class DataTable implements Serializable {
内容省略......
}
存放到session中的 DataTable对象
DataTable dtMFList = new LoginDAO().GetMFList(model.getUserid(),model.getOrgid(),model.getSystemid());
session.setAttribute("dtMFList",dtMFList); //实现序列化后session就不会失效
分享到:
- 2009-01-10 11:06
- 浏览 1436
- 评论(0)
- 论坛回复 / 浏览 (0 / 2164)
- 查看更多
相关推荐
此外,为了保证数据安全,还可以配置Redis进行数据持久化,防止服务器重启导致session丢失。 总的来说,通过使用Tomcat和Redis,我们可以构建一个高效且可扩展的session共享方案,为大型Web应用提供稳定的服务。...
在单个Tomcat服务器中,Session信息存储在内存中,当用户访问不同服务器节点时,由于每个节点独立存储Session,会导致用户信息丢失。为解决这个问题,引入了Session复制或集中式Session管理。这里我们采用的是后者,...
让我们老规矩,复制tomcat1的项目,到tomcat2中去,修改个别字以区分页面。 启动项目,直接在浏览器中输入个人中心的路径,localhost:8081/userCenter。可以看到没报任何空指针错误,直接就进入了个人中心页面(当然...
解析:session.getAttribute()方法用于从会话中获取指定的属性值。 8. 有关Servlet的生命周期说法正确的有(选择两项) 正确答案:B.init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现...
180多页面试题,前前后后不间断的更新了两年,准备换工作时,总是拿来看看,有比较好的面试题,也不间断的更新,面试题目录如下: 【基础】面向对象的特征有哪些方面 13 抽象 13 继承 13 封装 13 多态性 13 【基础】...
- Servlet容器(如Tomcat)加载Servlet类后,首先会通过`new`关键字创建Servlet的实例。 - 容器随后会调用该实例的`init()`方法来完成Servlet的初始化工作。此方法只会被调用一次。 - `init()`方法中通常完成一些...
答:声明式的事务管理主要是将在进行对数据库中数据的添加或者修改时需要执行事务管理,主要是为了避免在执行添加或修改的时候添加或修改不完全正确,导致数据丢失。spring使用AOP面向切面的思想进行事务管理的。 ...
- DOM(Document Object Model)将整个XML文档加载到内存,形成树形结构,方便遍历和修改,但内存占用大。 - JDOM是基于Java的DOM实现,提供了更友好的API,但同样消耗较多内存。 9. Web服务: Web服务是一种...
9. **Class.forName()**:用于动态加载类,常用于JDBC连接数据库,因为驱动加载通常在运行时确定。 10. **JDO(Java Data Objects)**:是Java持久层标准,提供对象-关系映射,简化数据访问。 11. **Oracle大数据...
- **题目解析**: 构造方法可以有多个,并且可以重载,因此正确答案是`A: class中的constructor不可省略`。 #### 16. 继承的基本规则 - **知识点**: Java中的继承遵循以下规则: - 单继承:一个类只能继承一个父类...