⑴ JavaWeb项目到底该使用什么框架
每个人都有自己的理解,我肯定有不正确的地方,权且当抛砖引玉
1.有的人认为使用了SSH可以大大提高系统速度,其实不然,我两个月前遇到的一个银行反洗钱项目就使用struts1.2 + jdbc开发,数据库20G左右,同样正常运行,速度还可以,我认为SSH提高的是非视图层的开发效率,减少了维护难度,对于运行速度倒不一定
2.有的人认为只要会SSH的基本组合就可以了,其实不然,它们每个都是很多的版本,有些版本存在本质区别,如struts1和struts2的本质不同,spring2和spring2.5的注解配置,如果一点不考虑,一股脑采用配置文件,最终的结果只会被配置文件淹没,反而提高了维护难度,当然,太多的注解也让人昏迷,所以我认为必须对这些重点差异版本都进行学习,至少使用一会,自己去体会,找到配置文件和注解的平衡,从而提高开发效率,减少维护难度
3.有的人认为hibernate好啊,有了它就万事大吉,其实不然,经过实践证明,它无法对复杂sql进行良好处理,事实上,实际项目中对复杂sql的需求相当高,远比增删改多,比如,我曾经做过的反洗钱系统中,三个大表,即使分表后依然千万级的数据量,并且三表还存在关联,使用hibernate,无法想象,所以我们使用ibatis2来专门处理复杂查询sql,以及批量修改和删除,使用hibernate来处理其他操作
这里给一个SQL,看谁能使用HQL写出来,如果有,我佩服
Sql代码 收藏代码
select datename(year,a.tr_date)+datename(month,a.tr_date)+(case when day(a.tr_date)<10 then '0'+datename(day,a.tr_date) else datename(day,a.tr_date) end ) as trade_date,
datename(year,a.analyse_date)+datename(month,a.analyse_date)+(case when day(a.analyse_date)<10 then '0'+datename(day,a.analyse_date) else datename(day,a.analyse_date) end ) as analyse_date,
datename(year,a.rep_date)+datename(month,a.rep_date)+(case when day(a.rep_date)<10 then '0'+datename(day,a.rep_date) else datename(day,a.rep_date) end ) as rep_date,
a.*,
d.*,
s.file_name
from tbriskshow a, tbriskshow_detail d, tbriskshow_relation r, rep_riskshow_file s
where a.check_flag > 2
and a.sus_flag = 2
and r.id = a.id
and r.tbriskdetail_id = d.id
and a.status = 0
and a.type = 5
and s.riskshow_id = a.id
4.合理的配置文件布局很重要,项目开发才能正常进行,不要以为将所有struts,spring配置信息放置在一个文件中会很爽,如果你感觉到爽,那是因为你做的项目太小,所以全部按某种规范分开放置,使用总配置文件来引用这些配置
5.再说说视图层,当前无外乎是JSP、CSS、JS、EL、JSTL、JSF、Jquery、Ext等技术,再高级点的就是使用JSP自定义标签技术将某些东西封装起成标签表单和表格,供统一调用,其实不管怎么样,由于每个人技术层次不同,到了后面维护必可避免的难搞,所以我结合我自己做过、参与过、看过的项目,认为视图层可以这样做:将所有控件封装(有人可能会说,这得封装多少东西啊,其实主要封装了表单、表格、树形、复选下拉、对话框,就能解决大部分问题),开发人员使用标准XML来配置界面以及其方法,再通过一个标准XML格式和服务器(SSH、存储过程)进行交互,这样,哪怕一个对界面完全没有感觉的人也能做出漂亮且风格完全统一的页面,并且维护相对容易,以下是一个示例
页面配置XML:
<!-- 菜单操作基础表单 -->
<view id="10000011_form_base_conf">
<column>2</column>
<defButtons>true</defButtons>
<col type="number" field="cdbh" readonly="true" value="-1">菜单编号</col>
<col type="number" field="fjbh" readonly="true" value="-1">父级编号</col>
<col type="input" field="cdmc" must="true">菜单名称</col>
<col type="select" field="sfzy" must="true" option="是:1|否:0">是否枝叶</col>
<col type="number" field="pxh">排序号</col>
<col type="input" field="ljdz" must="true">连接地址</col>
</view>
<!-- 添加菜单 -->
<view id="10000011_form_add_conf">
<ext>10000011_form_base_conf</ext>
<add_func_id>10000012</add_func_id>
</view>
<!-- 修改菜单 -->
<view id="10000011_form_edit_conf">
<ext>10000011_form_base_conf</ext>
<edit_func_id>10000013</edit_func_id>
<delete_func_id>10000014</delete_func_id>
</view>
数据访问XML:
<func id="10000012">
<param name="cdmc" type="varchar" nullValue="" />
<param name="sfzy" type="int" nullValue="0" />
<param name="fjbh" type="int" nullValue="0" />
<param name="pxh" type="int" nullValue="0" />
<param name="ljdz" type="varchar" nullValue="" />
</func>
6.最后说说JavaWeb的未来,当然我个人认为的未来,随着Iphone,Ipad,安卓的普及,JavaWeb进军手机是必然的,就像当年PC上用PB,VB做的MIS,CRM等管理类桌面程序被大清洗一样(本人原来也是个PB程序员,后来转的Java,现在还依稀记得datewindow的风采),所以我认为JavaWeb的未来就是手持设备浏览器,服务器端其实应该没有太大变化,主要前端UI部分:多风格、多点触控式完全替代传统的表格、表单都是可能的,现在已经有不少框架出现,JQtouch、Jquery Mobile、Sencha Touch等等,当然这些我自己也还在学习中,谈不出什么,但我相信这就是未来,让我们拭目以待吧
⑵ java web 怎么导入excel文件
1.要正确的将Web客户端的Excel文件导入到服务器的数据库中,需要将客户端的Excel文件上传到服务器上。可以使用FileUpload控件完成。2.Excel文件上传到服务器指定的目录中,这里假设是该站点的upfiles目录中。3.使用SQL语句从upfiles目录中的上传Excel文件中读取数据显示或写入数据库。
⑶ java web实现在线预览word excel等文件,类似邮箱那种,非常感谢
Excel这部分可以用SpreadJS,这是一个纯前端的控件,用于在线Excel表格展示预览操作。既然你是要实现在线预览,肯定是要包含前端的,SpreadJS本身是纯前端的,任何服务端语言都可以与之结合,所以java肯定也没问题。
Word这块可以找一找网上比较好的富文本工具,也可以实现word的在线预览。
⑷ 如何用java表格控件FineReport开发java报表
新建表单
点击文件>新建表单,如下图:
3
拖入组件
如上图所示的效果图,我们可以看到该表单需要有1个下拉框控件以及对应的1个标签控件和一个查询按钮,还需要一个以表格形式显示数据的报表块和显示图表的图表块,此时,我们确定了需要在表单中添加一个报表块,一个图表块,3个控件。
注:在组件介绍中,我们知道控件即可依附于参数面板组件存在,也可以单独以组件的形式存在,在这里可随意使用哪种形式,效果都一样,那么使用依附于参数面板组件存在的形式。
参数组件
从工具栏中将参数组件拖拽至表单主体中,并将相应的三个控件:下拉框、文本控件和查询按钮拖拽至参数组件中,并设置标签控件的控件值为:客户,如下图:
报表块组件
从工具栏中将报表组件也拖拽至表单主体中,如下图:
注:如果组件数量过多,在web端展示的时候自适应在一页内显示会比较拥挤,那么此时可以在右侧下方选中整体框架body,在右侧上方的属性表中将组件缩放修改为自适应原样缩放,如下图:
充满展现区域:是指在web端展示的时候,所有组件自适应充满整个浏览器页面显示,不出现滚动条;
自适应原样缩放:是指在web端展示的时候根据制作表单时候组件大小比例显示,并不缩放充满整个web页面,如果超过页面大小,会出现滚动条。
其详细显示样式请查看表单样式
图表组件
再从工具栏中将图表组件拖曳至报表块组件的下方,如下图:
控件绑定数据
定义数据集
效果图中,新建数据集ds1:SELECT 产品名称,库存量,产品.成本价 ,产品.单价 FROM 订单,订单明细,产品 where 客户ID='${company}'and 订单.订单ID=订单明细.订单ID and 订单明细.产品ID=产品.产品ID,参数company的默认值为VINET,。
注:参数名字必须与客户ID下拉框控件名称保持一致。
客户下拉框控件
选中下拉框控件拖拽到适当位置,下拉框控件名设为“company”,数据字典来自FRDemo数据库的客户表(数据类型选择数据库表,数据库选择FRDemo),实际值和显示值分别为客户ID和客户名称,控件值为VINET:
报表块
参数面板与控件都已经设置好之后,点开报表块里面的触笔按钮,进行报表块编辑界面,如下图:
新建数据集
效果图中,报表块里面要显示订单明细数据,根据客户ID进行过滤,新建数据集ds2:select * from 订单 where 客户ID='${company}',company默认值为VINET.
表样设计
如下图所示,设计表样:
点击左下角的表单按钮回到表单的设计界面,选中报表块,可在右侧的属性表中设置其报表块工具栏是否可见,如下图:
图表块
鼠标选中图表块所在区域,为该图表绑定数据,图表数据源来源于数据集数据源,其分类系列设置如下:
条件属性
由于该图表块类型为组合图,即需要通过图表条件属性来修改不同系列的图表类型,如下图,新增一个条件属性,设置当系列序号为3的时候,其坐标轴为次坐标轴,图表类型为折线图:
注:设置条件选择系列序号的时候需要与数据绑定时的数据列顺序相匹配,在上图设置图表数据时,库存量、成本价和单价的系列序号依次为1、2、3,条件属性主要是设置库存量系列用柱形图展示,成本价和单价用折线图展示并使用次坐标轴。在添加一个组合图时,会默认添加2个条件属性,详细请查看组合图
到此为止,表单就已经制作好了。
⑸ C#做web时有一系列类似GridView控件来显示数据,到了javaweb(jsp)它的优势在哪
优势大的很,GRIDVIEW实际编程中并无实际作用,主要是因为:
界面太死板,不好二次开发,很多图形因素不好操作
数据量庞大,在WEB上影响流量,在PC上太慢
其实用.NET里面大部分人还是用jquery表格。
⑹ Javaweb创建表格是由服务端来做好还是客户端做好
这个都是在服务端生成。客户端只是展示。客户端只是把服务端上的下载下来了而已。js创建只是局部刷新请求了服务端。
⑺ 有没有开源的JavaWeb 表单统计组件
从服务器获取表单数据,点击下一步的时候,加载下一个表单,然后根据参数类型区分单选,复选,和输入框。很好实现
⑻ java web 自动化报表插件
采用报表打印插件是最好的方式。
报表插件优势:报表插件在服务器端不驻留程序,服务器只要提供约定格式的 XML 数据就行了。所以有如下优势:
1、支持所有的WEB服务器平台。
2、报表的生成是在各自客户端电脑上,这样大大减轻了服务器的负载压力,能够做到更大的并发访问。
3、插件在客户端运行是电脑原生程序,与桌面程序具有一样的运行性能,并能开发出桌面程序类似的报表功能。
4、能驱动打印机直接进行打印,是WEB软件实现打印功能的最好方式。
⑼ 支持Java的报表工具都有哪些
支持Java的报表工具 :我们所说的”支持”Java的报表工具.其实就是非Java的报表工具,但是可以在Java程序中调用. 这样的产品很多,总的讲一大类是采用独立报表服务器的,如Bo/Crystal Report,Brio,Cognos等等,另一大类是在前端有控件的,如数巨报表等。
关于Java的报表工具 我们可以到思迈特软件Smartbi了解一下,广州思迈特软件Smartbi有限公司(思迈特软件Smartbi)成立于2011年,致力于为企业客户提供一站式商业智能解决方案,以提升和挖掘企业客户的数据价值。
“思迈特软件Smartbi”是企业级商业智能和大数据分析品牌,经过多年持续自主研发,凝聚大量商业智能最佳实践经验,整合了各行业的数据分析和决策支持的功能需求。
报表工具靠不靠谱,来试试Smartbi,思迈特软件Smartbi经过多年持续自主研发,凝聚大量商业智能最佳实践经验,整合了各行业的数据分析和决策支持的功能需求。满足最终用户在企业级报表、数据可视化分析、自助探索分析、数据挖掘建模、AI智能分析等大数据分析需求。
思迈特软件Smartbi个人用户全功能模块长期免费试用
马上免费体验:Smartbi一站式大数据分析平台
⑽ 有没有java web 开发图表比较好的控件
网络出品的 echarts 非常好用