`

bboss session共享时序列化存储jasperreports报表对象JasperPrint方法

阅读更多
bboss session共享时序列化存储jasperreports报表对象JasperPrint方法bboss session共享组件使用方法介绍
由于JasperPrint对象有点特殊,序列化存储到session时,必须采用java自带的序列化机来序列化和还原JasperPrint对象,否则bboss序列化机制无法实现对原始JasperPrint对象的序列化。具体的设置JasperPrint对象到共享session中的方法如下:

public static void toSession(HttpServletRequest request,String key,JasperPrint jasperPrint) throws IOException
	{
		java.io.ByteArrayOutputStream out = null; 
		java.io.ObjectOutputStream output = null;
		try
		{
			out = new ByteArrayOutputStream(); 
			output = new java.io.ObjectOutputStream(out); 
			output.writeObject(jasperPrint);
			output.flush();
			request.getSession().setAttribute(key, out.toByteArray());
		}
		finally
		{
			try {
				if(out != null)
				{
					out.close();
					out = null;
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				if(output != null)
				{
					output.close();
					output = null;
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	public static JasperPrint getJasperPrint(HttpServletRequest request,String key)
	{
		JasperPrint jasperPrint = null;
	
		java.io.ObjectInputStream output = null;
		java.io.ByteArrayInputStream intput = null;
		try
		{
			byte[] b = (byte[])request.getSession().getAttribute(key); 
			intput = new ByteArrayInputStream(b);
			output = new java.io.ObjectInputStream(intput); 
			jasperPrint = (JasperPrint)output.readObject();
			return jasperPrint;
			
		}
		catch(Exception e)
		{
			e.printStackTrace();
			return null;
		}
		finally
		{
			try {
				if(intput != null)
				{
					intput.close();
					intput = null;
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				if(output != null)
				{
					output.close();
					output = null;
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}


下文中提供从共享session中存储和读取jasperprint对象的另外一种更加友好的解决方案:
bboss自定义类对象序列化机制介绍
分享到:
评论

相关推荐

    bboss会话共享培训文档

    对于修改session中的对象数据,必须调用session.setAttribute方法将对象数据更新到MongoDB中,从而实现数据的共享。 bboss会话共享还提供了两种模式: 1. 集群间会话共享模式,这种模式实现了一个应用集群中各个...

    Bboss和xstream序列化反序列化性能对比1

    在本文中,我们将深入探讨Bboss和Xstream两个序列化和反序列化库在性能方面的差异。这两个库在Java开发中广泛用于将对象转换为XML格式,以便于存储、传输或持久化。以下是对这两个库的详细分析。 首先,Bboss和...

    bboss session共享培训ppt

    集群会话共享,跨容器跨平台,跨站跨应用会话共享及SSO,高效,配置简单,提供实用的会话统计监控和会话集中管理功能(会话查询,会话删除,会话属性数据查看等等)

    bboss会话共享培训文档分享

    本培训文档将介绍集群session管理的发展历史、bbosssession的架构及特点、性能指标、与应用的集成方式、部署模式以及场景演示等,旨在帮助技术人员理解并掌握bbosssession的使用方法和优势。 一、集群session管理...

    bboss mvcdemo 下载地址

    BBoss MVCDemo 是一个基于Java的企业级应用框架,它主要为开发者提供了一种高效、灵活的MVC(Model-View-Controller)开发模式。这个框架的目的是简化企业级Web应用的开发流程,提高开发效率,并且具备良好的可扩展...

    企业级J2EE开源框架bboss

    1. **组件化开发**:BBoss支持模块化和组件化的开发模式,允许开发者根据项目需求选择必要的功能组件,避免了传统框架中“大而全”的问题,降低了系统的复杂度。 2. **数据库操作**:BBoss提供了便捷的数据访问层...

    由 bboss 开源的数据采集&流批一体化工具,提供数据采集、数据清洗转换处理和数据入库以及数据指标统计计算流批一体化处理功能

    **bboss-datatran** 是一个由 **bboss** 社区开源的高效数据处理工具,专注于数据采集、数据清洗转换以及数据入库等任务。它实现了流批一体化的数据处理能力,使得用户能够灵活地应对实时和批量的数据处理场景。在...

    bboss 安全认证过滤器功能介绍

    1. **初始化配置**:在过滤器实例化时,`init()`方法会被调用。在这里,我们可以配置过滤器的参数,如定义哪些URL需要进行安全认证,或者设置默认的登录页面等。 2. **过滤链执行**:`doFilter()`方法是过滤器的...

    springboot整合bboss es增删改查测试demo代码

    本实例是一个基于bboss es spring boot starter的demo maven工程,可供spring boot项目集成bboss elasticsearch rest client参考 展示了通过spring boot管理单集群功能和管理多集群功能 单集群测试用例:...

    Bboss国际化实践.ppt

    【Bboss国际化实践】主要涉及了软件系统的全球化适应性改造,以便支持多语言环境。以下是对这个主题的详细解析: 1. **界面元素国际化**: - 界面文字:所有用户可见的文字都需要进行翻译,确保不同语言环境下的...

    bboss-db-elasticsearch-tool-master_java_

    【bboss-db-elasticsearch-tool-master_java_】是一个Java ORM(对象关系映射)框架,它在功能上超越了MyBatis,提供了对多种数据库的广泛支持,包括MySQL、Oracle、PostgreSQL、SQLServer、DB2、DM以及MongoDB。...

    bboss elasticsearch-5.7.8.rar

    3. `bboss-util-5.5.0.jar`和`bboss-persistent-5.5.0.jar`:这是BBoss框架的核心组件,提供了许多实用工具类和持久化操作支持,如数据库连接、事务管理等,为Elasticsearch的数据导入提供底层支持。 4. `...

    springboot集成ElasticsearchBboss调用Elasticsearch.md

    springboot集成ElasticsearchBboss调用Elasticsearch的案例分享

    bboss+es基本操作示例.zip

    集成bboss和Elasticsearch时,首先需要在项目中引入bboss的依赖,并配置Elasticsearch的相关连接信息,如集群名称、节点地址等。然后可以通过bboss提供的API进行索引创建、数据插入、查询、更新、删除等操作。 4. ...

    bboss-elasticsearch开发环境搭建和开发入门视频教程.

    **Elasticsearch 开发环境搭建与 BBoss 入门教程** Elasticsearch 是一个高度可扩展的开源全文搜索引擎,设计用于快速提供近实时的搜索和分析能力。BBoss(Business Boss)是基于Elasticsearch的一个强大且灵活的...

    bboss:bboss是一个j2ee框架,包括aopioc,mvc,持久性,taglib,rpc,事件,bean-xml可序列化的,redis,kafka,mongodb等。

    bboss会话共享源码 github托管地址: svn下载地址 bboss演示源码 github托管地址: svn下载地址 基于bboss的开源工作流Activiti5.12 github托管地址 svn下载地址 自动代码生成框架github源码托管地址和svn下载...

    bboss persistent 1.0.2中方便地实现大字段(clob,blob)的处理

    在IT行业中,数据库操作是必不可少的一部分,特别是在处理大数据量或者特殊数据类型如CLOB(Character Large Object)和BLOB(Binary Large Object)时。BBoss Persistent是一个轻量级的持久层框架,它提供了方便的...

    bboss ioc配置文件中使用外部属性文件介绍

    BBoss是一个轻量级的企业级应用开发框架,提供了IOC(Inversion of Control)功能,使得对象之间的依赖关系可以通过配置文件进行管理。本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和...

Global site tag (gtag.js) - Google Analytics