- 浏览: 312825 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (118)
- oracle (16)
- java (13)
- jquery (16)
- hibernate (2)
- spring (14)
- struts (2)
- eclipse (1)
- birt (5)
- integrated skill (13)
- linux (9)
- css+html (5)
- redis (1)
- jqgrid (4)
- mybatis (2)
- multithreading (3)
- jvm (1)
- mvn (3)
- php (2)
- jms (2)
- photoshop (1)
- springmvc (3)
- cluster (1)
- cache (1)
- jquery-ui (2)
- 英语词根 (0)
- svn (0)
- ide (1)
- mysql (3)
- rich-text (1)
- golang (8)
- mac 10 (1)
- android (1)
- react (0)
- bootstrap (2)
- css (2)
- 1 (0)
- beego (1)
- pictures (1)
- java小生转战 (0)
- 转站通知 (0)
- 转站通知,,,啊啊啊 (1)
- threeperson (1)
- unity (1)
最新评论
-
zld406504302:
aaaddddddd
java小生转站threeperson博客 -
zld406504302:
aaaaaddd
java小生转站threeperson博客 -
zld406504302:
aaaaaaaaaaaa
java小生转站threeperson博客 -
乌发舞天:
UEditor 实例 -
van_2013:
请问这是订阅模式的配置吗?
SPRING JMS 整合ACTIVEMQ
新公司工作一年多,接触最多的就是统计,当然用于统计数据展示的birt了解多了些,虽然对于底层实现认识不深,但是对于birt与ssh集成还是有些感受,尽管这种感受仅是来源于自己重构项目中birt+ssh整合demon,尽管没有实际应用到项目中,确切的说是没有完全应用到项目中。因为我不想一个人单打独斗整个统计模块,也不想把自己纠结在统计模块中,当然我也不一定做得好,但是感受吗——对于过去的总结,无需多量的抱怨的,因为那已经是过去。
由于ssh整合各种项目各种整合方法,当然谈及整合,java小生还很稚嫩,不在此卖瓜。仅总结birt如何与struts整合,统计数据,希望与大家共同学习进步。
一)应用技术与环境:
ssh:struts1.2+spring2.0+hibernate3.0
birt:birt2.3
tomcat:tomcat5.5
dababase:oracle10g
system:windowsXP
二)birt优点:
1:birt交互性强,因为birt基本就是个完整的jsp页面,所以不会存在展现上的难题
2:birt数据源支持更多,jdbc data source ,scripted data source,web service data source,
xml data source,procedure
3:与eclipse集成,开发更方便,效率更快
4:开源,扩展性更强,免费,使用成本低
三)birt缺点
1:底层入侵,数据收集与展示剥离后存在诸多问题
2:大数据量展示容易内存泄露
4:页面内部嵌入大量外部资源,修改,扩展有难度
四)birt与struts整合
a 增加代码
public Object getBean(String name ) {
if (ctx == null) {
ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
}
return ctx.getBean(name);
}
protected QueryInfo getQueryInfo(HttpServletRequest request) {
QueryInfo info = new QueryInfo();
int pageSize = getPageSize(request);
int currentPage = getCurrentPage(request);
info.setLimit(pageSize);
info.setOffset(pageSize * (currentPage - 1));
return info;
}
/**
* 获取每页显示的条数
* @param request 请求对象
* @return 每页显示的条数
*/
protected int getPageSize(HttpServletRequest request) {
int ps = 0;
String pageSize = request.getParameter(PAGE_SIZE);
if (!StringUtil.isEmpty(pageSize)) {
ps = StringUtil.string2Int(pageSize);
} else {
ps = DEFAULT_PAGE_SIZE;
}
request.setAttribute("pageSize", ps);
return ps;
}
/**
* 获取当前页数
* @param request 请求对象
* @return 当前页数
*/
protected int getCurrentPage(HttpServletRequest request) {
int cp = 0;
String currentPage = getDisplayTagParam(request, REGEX);
if (!StringUtil.isEmpty(currentPage)) {
cp = StringUtil.string2Int(currentPage);
} else {
cp = DEFAULT_CURRENT_PAGE;
}
return cp;
}
public String getDisplayTagParam(HttpServletRequest request, String regex) {
Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String name = (String) en.nextElement();
if (name.matches(regex)) {
return request.getParameter(name);
}
}
return null;
}
b:修改__getContext 方法
protected IContext __getContext(HttpServletRequest request,
HttpServletResponse response)throws BirtException
{
BirtReportServiceFactory.getReportService().setContext(
getServletContext(), null);
SpInfoManager spInfoManager = (SpInfoManager)getBean("SpInfoManager");
QueryInfo info = getQueryInfo(request);
PartialCollection collection = spInfoManager.getWhiteAndBlackInfo("21006", "", info) ;
List dataList = collection.getRealDataSet() ;
request.setAttribute("result",dataList );
return new BirtContext(request, response);
}
c:web。xml修改ViewerServlet 指向的class
ViewerServletcn.com.superv.netmessage.sp.web.action.ViewerServlet
d:web.xml中增加 对于访问ViewerServlet 过滤器
validateSession/frameset*hibernateFilter/frameset*
2:增加一个action ,进行数据收集,并跳到birt页面显示容器(birt嵌入到jsp中)
if(birtName.equals("script_data_source_demon.rptdesign")){
/*****参数存入request********************/
request.setAttribute("endTime", endTime) ; //保存保存参数
}
return mapping.findForward("birtPageWindow");//转发到birt容器(嵌入birt的jsp页面)
3:birt 嵌入jsp
a:在jsp中引入
b:birt标签引入birt页面
4:birt中获取参数及数据源
a:script:open
importPackage(Packages.javax.servlet.http);
req = reportContext.getHttpServletRequest();
list = req.getAttribute("result");
spInfo = new Packages.cn.com.superv.netmessage.oam.web.model.WhiteAndBlackInfo();
resultArray = list.iterator();
b:script:fetch
if(resultArray.hasNext()==false){
return false ;
}
spInfo = resultArray.next();
row["name"]=spInfo.getSpName();
row["spid"]=spInfo.getSpId();
row["spcode"]=spInfo.getSpCode();
return true ;
c:scirpt:close
result = null ;
spInfo = null ;
5:数据展示
a:Data Set绑定显示列
[img]http://dl.iteye.com/upload/attachment/600360/3dcb4e6f-3858-378a-9a9e-b5e4c35f8acb.png" alt="" width="737" height="175[/img]
6:birt分页自定义
a:。。。。。。。。。。。
b:。。。。。。。。。。。
[size=10pt; color: #000000; font-family: 'Courier New';]
四)效果图
。。。。。。。。。。
[size=10pt; color: #000000;]
[img]http://dl.iteye.com/upload/attachment/600367/7b9cecf1-9734-3f64-ab29-56f39911e5fc.png" alt="[/img]
[/size]
[/size]
由于ssh整合各种项目各种整合方法,当然谈及整合,java小生还很稚嫩,不在此卖瓜。仅总结birt如何与struts整合,统计数据,希望与大家共同学习进步。
一)应用技术与环境:
ssh:struts1.2+spring2.0+hibernate3.0
birt:birt2.3
tomcat:tomcat5.5
dababase:oracle10g
system:windowsXP
二)birt优点:
1:birt交互性强,因为birt基本就是个完整的jsp页面,所以不会存在展现上的难题
2:birt数据源支持更多,jdbc data source ,scripted data source,web service data source,
xml data source,procedure
3:与eclipse集成,开发更方便,效率更快
4:开源,扩展性更强,免费,使用成本低
三)birt缺点
1:底层入侵,数据收集与展示剥离后存在诸多问题
2:大数据量展示容易内存泄露
4:页面内部嵌入大量外部资源,修改,扩展有难度
四)birt与struts整合
a 增加代码
public Object getBean(String name ) {
if (ctx == null) {
ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
}
return ctx.getBean(name);
}
protected QueryInfo getQueryInfo(HttpServletRequest request) {
QueryInfo info = new QueryInfo();
int pageSize = getPageSize(request);
int currentPage = getCurrentPage(request);
info.setLimit(pageSize);
info.setOffset(pageSize * (currentPage - 1));
return info;
}
/**
* 获取每页显示的条数
* @param request 请求对象
* @return 每页显示的条数
*/
protected int getPageSize(HttpServletRequest request) {
int ps = 0;
String pageSize = request.getParameter(PAGE_SIZE);
if (!StringUtil.isEmpty(pageSize)) {
ps = StringUtil.string2Int(pageSize);
} else {
ps = DEFAULT_PAGE_SIZE;
}
request.setAttribute("pageSize", ps);
return ps;
}
/**
* 获取当前页数
* @param request 请求对象
* @return 当前页数
*/
protected int getCurrentPage(HttpServletRequest request) {
int cp = 0;
String currentPage = getDisplayTagParam(request, REGEX);
if (!StringUtil.isEmpty(currentPage)) {
cp = StringUtil.string2Int(currentPage);
} else {
cp = DEFAULT_CURRENT_PAGE;
}
return cp;
}
public String getDisplayTagParam(HttpServletRequest request, String regex) {
Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String name = (String) en.nextElement();
if (name.matches(regex)) {
return request.getParameter(name);
}
}
return null;
}
b:修改__getContext 方法
protected IContext __getContext(HttpServletRequest request,
HttpServletResponse response)throws BirtException
{
BirtReportServiceFactory.getReportService().setContext(
getServletContext(), null);
SpInfoManager spInfoManager = (SpInfoManager)getBean("SpInfoManager");
QueryInfo info = getQueryInfo(request);
PartialCollection collection = spInfoManager.getWhiteAndBlackInfo("21006", "", info) ;
List dataList = collection.getRealDataSet() ;
request.setAttribute("result",dataList );
return new BirtContext(request, response);
}
c:web。xml修改ViewerServlet 指向的class
ViewerServletcn.com.superv.netmessage.sp.web.action.ViewerServlet
d:web.xml中增加 对于访问ViewerServlet 过滤器
validateSession/frameset*hibernateFilter/frameset*
2:增加一个action ,进行数据收集,并跳到birt页面显示容器(birt嵌入到jsp中)
if(birtName.equals("script_data_source_demon.rptdesign")){
/*****参数存入request********************/
request.setAttribute("endTime", endTime) ; //保存保存参数
}
return mapping.findForward("birtPageWindow");//转发到birt容器(嵌入birt的jsp页面)
3:birt 嵌入jsp
a:在jsp中引入
b:birt标签引入birt页面
4:birt中获取参数及数据源
a:script:open
importPackage(Packages.javax.servlet.http);
req = reportContext.getHttpServletRequest();
list = req.getAttribute("result");
spInfo = new Packages.cn.com.superv.netmessage.oam.web.model.WhiteAndBlackInfo();
resultArray = list.iterator();
b:script:fetch
if(resultArray.hasNext()==false){
return false ;
}
spInfo = resultArray.next();
row["name"]=spInfo.getSpName();
row["spid"]=spInfo.getSpId();
row["spcode"]=spInfo.getSpCode();
return true ;
c:scirpt:close
result = null ;
spInfo = null ;
5:数据展示
a:Data Set绑定显示列
[img]http://dl.iteye.com/upload/attachment/600360/3dcb4e6f-3858-378a-9a9e-b5e4c35f8acb.png" alt="" width="737" height="175[/img]
6:birt分页自定义
a:。。。。。。。。。。。
b:。。。。。。。。。。。
[size=10pt; color: #000000; font-family: 'Courier New';]
四)效果图
。。。。。。。。。。
[size=10pt; color: #000000;]
[img]http://dl.iteye.com/upload/attachment/600367/7b9cecf1-9734-3f64-ab29-56f39911e5fc.png" alt="[/img]
[/size]
[/size]
发表评论
-
openssl mac 证书签名
2016-06-01 01:14 598<script type="text/java ... -
spring jdbcTemplate 批量插入返回自增id
2016-03-22 00:24 2010项目中一个业务场景包含两个相互依赖的批量插入,第二次批量插入 ... -
mvn assembly package jar 无法运行
2015-04-27 20:04 776项目中要跑了一个jar工程,每天做一次数据结 ... -
SPRING INTERCEPTOR 监控 JMS 发送接受性能
2013-07-18 17:17 1591将spring aspectj 和 jms 整合了一下, ... -
SPRING JMS 发送 接受 性能监控
2013-07-18 17:13 0将spring aspectj 和 jms 整合了一下, ... -
SPRING JMS 整合ACTIVEMQ
2013-07-18 16:47 13084近日用spring3.2 jms 与activemq5.8 ... -
SLF4J jar包冲突的迷惑
2013-07-14 12:42 1487Running com.cn.ld.modules.jms.J ... -
SLF4J jar包冲突的迷惑
2013-07-14 12:42 0Running com.cn.ld.modules.jms.J ... -
tomcat 集群下ehcache 整合spring cache-annotation
2013-07-02 12:44 6194系统环境:win7 部署环境:apache2.2 tomcat ... -
springmvc 整合apache tiles
2013-06-15 23:36 9099最近把springmvc3.2.0 和 apache t ... -
springmvc3.2 demo
2013-06-15 23:28 107431:mvn 构建一个web工程 [img] [/img] r ... -
spring jms 异步接受消息
2013-05-22 21:46 24spring jms 的监听器是可配置的,而且通常会交 ... -
聊天群成员记录统计
2013-04-10 09:39 3423昨天大家在k群聊天,群主谈到清理长期潜水、不冒泡的成员 ... -
Spring Multipart上传
2013-03-18 11:53 11561:在application.xml中初始化CommonsM ... -
@Value 注解
2013-03-13 15:43 1321:在application。xml文件中配置属性文件加载be ... -
windows 动态修改ip
2013-03-05 09:05 1754办公网络和家里的网络不一样 总是要换来换去,弄了一个脚本,双击 ... -
js 根据总页数 和 规律的页面名称 动态创建分页条
2013-02-06 13:42 5068// ---------------公有变量最好用明 ... -
jdk5 性能调优 转
2012-07-17 14:44 858作者:江南白衣,最新版链接:http://blog.csd ... -
spring 事务隔离 与 传播
2012-07-15 21:18 10021) PROPAGATION_REQUIRED ,默认的spr ... -
AXIS2 与SSH 集成 事物代理不可用
2012-05-28 18:42 21082012-5-28 18:17: ...
相关推荐
在IT行业中,SSH+BIRT整合是一项常见的技术实践,它涉及到四个关键的技术栈:Struts、Spring、Hibernate和BIRT。这些技术分别在Web应用开发的不同层面上发挥着重要作用。 首先,Struts是Java EE领域中的一款MVC...
BIRT能与SSH2无缝集成,允许开发者直接在应用中嵌入报表。文档将展示如何配置和使用这种集成,实现数据的动态获取和展示。 4. **参数的使用**:BIRT支持参数化报表,使得报表能够根据用户输入或系统变量动态调整。...
通过SSH整合BIRT,开发者可以方便地在Web应用中构建复杂的报表系统,实现数据的动态查询、筛选和展示,提高企业的数据分析能力。这种整合方式充分利用了各框架的优势,降低了开发难度,同时也提升了系统的稳定性和...
虽然描述中提到有BIRT相关的代码,但在这个上下文中,主要关注的是SSH2的分页实现,因此可以暂时忽略这部分内容。 SSH2分页类的优点在于它降低了代码的耦合度,使得分页逻辑可以独立于业务逻辑存在,提高了代码的可...
报表的原理涉及到数据的收集、组织和展示,润乾报表和BIRT报表都是流行的报表工具,前者注重性能和易用性,后者则提供了丰富的图形化设计和报表嵌入功能。报表分页通常通过设置每页显示条数和页码实现。 【其他】 ...
这包括对JavaEE的核心技术如Servlet、JSP、EJB的深入理解,以及如何构建SSH(Struts、Spring、Hibernate)框架、JavaServer Faces (JSF) 和Enterprise JavaBeans (EJB)架构的表示层、业务逻辑层、持久化层和基础服务...
- **SSH**: Spring、Struts、Hibernate框架的组合,常用于Java Web开发。 1.1.2. **工具软件** - **操作系统**: 如Windows,Linux,Unix。 - **数据库**: 包括Oracle,MySQL,SQL Server,Sybase,DB2等。 - *...
常见的报表工具包括JasperReports、BIRT等。 #### Hibernate缓存级别 - 一级缓存:Session级别的缓存。 - 二级缓存:SessionFactory级别的缓存。 #### JVM工作原理 JVM主要由类加载器、运行时数据区、执行引擎等...