java apps
文章平均质量分 64
iteye_6401
这个作者很懒,什么都没留下…
展开
-
java同步机制及synchronized关键字的应用2
类定义: public class Test{ public synchronized method1(){...} public synchronized method2(){...}} 问题: 多线程并发访问method1和method2时,两者会互斥吗? 下面的测试程序来回答这个问题。public class TestSynchroni...2013-03-25 22:03:43 · 117 阅读 · 0 评论 -
java日期计算
Calendar类:一个抽像类,不能直接new 得到。 Calendar C = Calendar.getInstance();// 得到当前时间 C.add(C.DATE, 5);//在当前的日期上加上5天 一般可以转化为util包的Date类 java.util.Date temp_date = C.getTime(); 这样就可以对日期进行操作了. 代码示例:public c...原创 2010-05-26 14:45:26 · 101 阅读 · 0 评论 -
应用系统中配置文件的应用场景及简要分析
使用配置文件的有点不外乎两点:1.提高系统的灵活性。2.提高系统的可维护性。 最近我在系统需求变更导致的程序修改的过程中,加深了这种体会:在某种情况下将参数放到配置文件中,不是可选的而是非常有必要的。 系统中的数据类型共7种,原来的业务需求中,在某些功能中只能处理3中数据,现在业务要求,某些功能要处理5种数据类型,问题来了。什么问题呢,因为系统中处理数据类型的点比较多,很多...2010-11-12 16:13:44 · 224 阅读 · 0 评论 -
java调用shell执行数据压缩
项目需求:将迁移来的数据文件进行压缩。要求压缩过程耗时尽量少,尽量降低资源消耗。 实现思路:经过测试决定采用tar命令进行压缩。有一个问题:数据文件的目录和压缩后存放路径非同一路径,压缩时需要先cd到压缩目录下,然后才能将压缩包存放到指定目录下。经过查阅资料,决定采用java程序调用shell脚本的方式,执行目录的切换和压缩。 示例代码:public File tar(...原创 2011-07-18 17:44:25 · 239 阅读 · 0 评论 -
quartz应用之一:创建、关闭定时任务
项目需求:数据迁移进程开始执行后,启动定时任务每隔30秒计算迁移进度,并将进度入库,当迁移完成后,关闭任务。迁移时根据任务单来执行,任务单中由多种基本业务数据组成。 实现思路:1.迁移开始前,启动监视进度的线程,每30秒重新执行,如果数据迁移完毕,则调用关闭线程接口。2.基本业务数据迁移完成后,迁移状态及进度入库。3.任务单执行完毕后,调用关闭线程接口。 ...2011-07-18 17:15:24 · 363 阅读 · 0 评论 -
mvc应用实例
最近参与到一个行业数据处理的项目,我负责数据请求和订阅的功能,功能没什么特别的地方,但项目使用的自己定制的mvc还是有点意思,仅供初学者参考。 类图:简单描述:MyActionServlet继承自javax.servlet.HttpServlet,是MVC实现的核心类,提供如下功能:1.用户访问的权限控制;2.将http请求参数的传递到具体的Action类中;3.将请求业务分发到相应的...2010-04-04 19:58:43 · 131 阅读 · 0 评论 -
系统整合之多个系统一次登陆
假设当前有两个系统需要整合,一个是社区,一个是运营的平台。原来两者不相干,现在有个需求:用户从运营系统登陆后,点击一个链接即可跳转到社区系统,并且无须再登陆。 怎样实现这个需求呢? 其实思路比较简单:用户从运营系统登陆时,先转发到社区系统,调用社区系统的登陆接口,完成一个没有登陆界面的登陆过程,登陆成功后,由社区系统跳转到运营系统。 整个登陆过程是由运营系统发起...2008-10-30 16:59:13 · 1147 阅读 · 0 评论 -
解决getOutputStream() has already been called for this response
getOutputStream() has already been called for this response异常出现的原因和解决方法:jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),没有妥善处理好的原因。具体的原因:jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpSe...原创 2010-08-26 14:57:54 · 246 阅读 · 0 评论 -
JPA(TopLink)中Date类型的使用及查询
1.java.util.Date和java.sql.Date的使用 在JPA中,通常会使用java.util.Date作为实体类中时间字段的类型,对应的属性的获取时,需要做如下的声明:@Temporal(value = TemporalType.TIMESTAMP) 但是这么使用有个问题,从数据库中取出来的数据直接展示到页面上,显示的数据格式如下,不能满足实际的需要。Tue...2009-06-15 20:35:21 · 753 阅读 · 0 评论 -
联动下拉菜单:采用XMLHttpRequest实现数据获取
代码比较简单,相信大家能看明白。另外,我对XMLHttpRequest的使用不是特别熟悉,如果有使用不当之处,还请大家批评指正。 JSP:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"...2009-05-17 22:41:30 · 115 阅读 · 0 评论 -
FCKEditor的使用
下面是我在内容管理系统中使用的Fckeditor的代码片段,代码比较简单,可供没接触过FCKEditor的初学者参考。 JSP:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">&...2009-05-17 22:24:40 · 119 阅读 · 0 评论 -
计算java对象占用的内存
Java有一个很好的地方就是java的垃圾收集机制,这个机制集成于jvm的,对程序员来说是隐藏且不透明的。这种情况下,如何得到某个对象消耗的内存呢? 曾经看到过有人用以下方法来计算:在生成该object的前后都调用java.lang.Runtime.freeMemory()方法,然后看两者之差即为该object消耗的内存量。 这种方法的代码是:long totalMem = java....原创 2011-12-13 11:38:33 · 88 阅读 · 0 评论 -
jsp查询条件的保留
本文适合java web开发初学者参考。 统计系统或者通常的web项目中经常会有这样的需求:用户通过下拉框(select)选择需要的条件,或者在文本框(input)中填写关键字,然后提交查询,得到符合条件的数据,到这里没有什么稀奇的。但是数据量大的情况下,一般要分为多页来显示,用户继续查看后续的数据,这时有个问题:用户查看后续的页面时,一抬头,哇塞,我的查询条件怎么不见了?相信这是一个...原创 2010-06-11 16:23:05 · 823 阅读 · 0 评论 -
实践缩小Java synchronized 粒度
项目需求:产品需要监视不同种类的多个数据库,例如:多个mysql库,多个oracle库,多个sybase库,多个msserver库等等,连接池需要根据客户数据库种类和数量的实际情况进行动态创建。 难点:1.每个库创建一个连接池,不能重复创建。2.每个连接池维护自身的线程安全性,访问每个连接池的线程单独排队,相互之间不能影响。 实现思路:将每个库的连接池实例保存到...2013-03-07 22:09:05 · 176 阅读 · 0 评论 -
java同步机制及synchronized关键字的应用1
Java对多线程的支持与同步机制深受大家的喜爱,通过JMM可以了解到几个涉及多线程编程的几个关键字:synchronized、final、volatile。 一、作用1.synchronized1.1 synchronized优点:正确使用synchronized可以解决data race问题,同时保证了变量的可见性;1.2 synchronized缺点:syn...原创 2013-03-05 23:04:40 · 177 阅读 · 0 评论 -
Thread_管理异步、定时及周期性任务
项目中有很多异步、定时及周期性任务的需求,其实现有一定的特点,汇总以备忘。 简单分析: 结构分析:1.Task属性包含处理任务的完整类名、任务处理的参数、延迟的时间(毫秒)、执行的周期间隔(毫秒)。1.1 任务的完整类名执行任务时,可以根据处理任务的完整类名,利用反射机制生成任务类的实例1.2 任务处理的参数执行任务时,可以从该参数中获取相关的参数值。2.Tas...原创 2012-09-24 14:43:15 · 135 阅读 · 0 评论 -
Thread_跨节点集合查询
项目中数据库进行了水平切分,为了处理跨节点集合查询,采用了多线程并发操作的方式来处理,并且对各线程执行的结果进行操作,如果是返回结果集,则合并排序;如果是聚合操作,则求和。个人觉得该实现方式很有代表性,所以抽取了原型实现备忘。 集合处理: import java.util.concurrent.CompletionService;import java.util.concurr...2012-09-18 16:56:37 · 135 阅读 · 0 评论 -
Thread_大批量数据的分页处理(生产者-消费者)
java应用中通常会有处理大批量数据的场景,这里介绍一种分页处理的方式,仅供参考。大批量数据通常不能一次读取或者写入,因为一次读取会消耗过多的内存,一次写入会长时间占用DB连接,我的思路是参照分页查询的模式缩小每次操作的数据集,循环执行,直到处理完毕。 两种实现方式:1.采用单线程模式顺序执行。每次读取固定大小的数据记录,然后插入到存储设备。 2.采用多线程模式...原创 2012-09-17 13:30:14 · 219 阅读 · 0 评论 -
Thread_wait、notify、notifyAll的使用方法
wait()、notify()、notifyAll()是三个定义在Object类里的方法,可以用来控制线程的状态。这三个方法最终调用的都是jvm级的native方法。随着jvm运行平台的不同可能有些许差异。•如果对象调用了wait方法就会使持有该对象的线程把该对象的控制权交出去,然后处于等待状态。•如果对象调用了notify方法就会通知某个正在等待这个对象的控制权的线程可以继续运行。...原创 2012-09-17 11:19:35 · 114 阅读 · 0 评论 -
xtree应用实例
最近项目中用到了构造树形目录的功能,简单了解了下dtree和xtree,很多年前就用过dtree,但xtree了解不多,自己没有实际用过。之前一期项目中有相关的代码,为了加快进度就直接拿过来参考,期待能参考个较完善的版本,结果使用中还是遇到了几个问题:1.子节点名称和父节点名称相同的部分不显示。2.之前的代码只用到了两级目录,需要修改为支持无限级目录。3.代码质量不高,并且排版凌乱。 问题...2011-03-11 18:02:42 · 274 阅读 · 0 评论 -
JDBC方式访问数据库
1、 JDBC是什么JDBC是Java数据库连接(Java DataBase Connectivity)技术的简称。2、 JDBC程序的工作原理2.1、JDBC APIJDBC API由SUN公司提供,提供了Java应用程序与各种不同数据库交互的标准接口。如:Connection(连接)接口、Statement接口、PreparedStatement接口、ResultSet(结果集...原创 2011-01-10 13:48:43 · 145 阅读 · 0 评论 -
实战防止重复提交(token)应用思路及过程
我这里只考虑了直接使用struts API的情况,使用自定义的token生成机制与此类似。 产生重复提交的两种情况: 1.用户操作完成后,点后退,返回jsp页面,再次提交。 2.用户操作完成后,刷新当前页。 简单回想下token的使用: 1.生成token,并保存到HttpSession中; 2.限制重复提交的jsp页面要从session中get这个token,并提交到servlet(或者stru...原创 2010-06-11 16:39:52 · 102 阅读 · 0 评论 -
Struts国际化完整解决方案-支持多国语言
在网上有很多有关Struts的中文解决方案,但是很多都说得很零碎,不够完整。下面是我的一个完整解决方案。 要使网页能够真正实现多语言,有三个地方都需要修改:1. 在页面部分,一定要把页面的编码设成UTF-8,就是在开头加上这一句:<%@ page contentType="text/html; charset=UTF-8" %>并且把所有的中文信息都放到resource文件中。...原创 2010-06-11 16:38:42 · 186 阅读 · 0 评论 -
内容管理系统开发过程总结
最近帮朋友做了一个小型网站的内容管理系统,功能比较简单,只包括了网站页面的增加、修改和删除,但由此对CMS-内容管理系统的实现原理有了一个大概的认识。 从功能点实现的难易程度上说:在线编辑器是个难点,其他的功能只要把实现流程想明白了,就都比较简单了。在线编辑器虽然是个难点,但网上资料比较多,使用起来基本上不会费太大的周折。我选择了FCKEditor,一是因为口碑还不错,二是比较易用。内...2009-05-17 13:50:08 · 203 阅读 · 0 评论 -
内容管理系统的设计和选型
转载地址:http://www.chedong.com/tech/cms.html 内容摘要:内容管理系统概述 内容管理系统的选型 广告管理系统的选型 论坛/社区系统的选型所见即所得编辑器的选型图片上传和文件管理组件内容管理系统概述内容管理系统是一个很泛的概念:从商业门户网站的新闻系统到个人的Weblog都可以称作发布系统。...原创 2009-05-05 14:48:25 · 162 阅读 · 0 评论 -
实战系统性能优化之静态数据的使用
最近一个小项目中,要在页面上显示省市信息,作为查询的一个选择条件。 设计思路非常简单,大家不要笑话。1. 功能需求这个项目中,有很多的jsp页面上都需要显示省市信息。现在DB中有个关于省市信息的字典表,如果每个jsp初始化时都到数据库中查询,功能是可以实现,但大家肯定都知道,这种做法是不合理的。 缺点:加载每个jsp页面时,都要读一次字典表。如果系统有100个类似的jsp页面,就要读...2008-09-01 17:10:25 · 100 阅读 · 0 评论 -
实战xml构造解析之XmlBeans的使用
最近的项目中有个生成xml字符串的需求:第三方合作伙伴提交一个请求,我们作为server端负责从DB中查询出符合条件的记录,然后构造成xml字符串返回给第三方合作伙伴。 以前有过dom的使用经验,但dom的缺点大家都知道:当xml比较复杂时,性能不是很好。当DB中记录比较多时,需要构造的xml会比较复杂。网上大家都说XmlBeans不错,这次尝试使用下,以下是具体的应用过程。 ...2008-08-27 16:06:08 · 280 阅读 · 0 评论 -
实战java中资金计算的要点-BigDecimal
首先明确的是:Java中的浮点数类型的float和double是不能够用来进行资金的运算。 在《Effective Java》中也提到这个原则:float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用java.math.BigDecimal。 怎样在实际中应用呢,其实也不难。简单提几点:1. 数据库表的设计资金字段的数据类型一般定义为number类型...2008-07-30 18:26:13 · 96 阅读 · 0 评论 -
以编程方式调用 Apache Ant
本文演示了如何通过 Java 调用 Apache Ant 构建文件。您将检查必要的 Java 代码并了解如何在 WebSphere Application Developer 中运行此代码。引言Apache Ant 是一个基于 Java 的开放源代码构建实用工具。人们常把它与 Make 进行比较,Make 长期以来一直用于帮助自动完成构建过程。经过不同版本的改进,Ant 已发展成一个丰...原创 2009-04-08 16:48:51 · 177 阅读 · 0 评论 -
java中classpath及路径的使用
javac -classpath的使用: javac:如果当前你要编译的java文件中引用了其它的类(比如说:继承),但该引用类的.class文件不在当前目录下,这种情况下就需要在javac命令后面加上-classpath参数,通过使用以下三种类型的方法 来指导编译器在编译的时候去指定的路径下查找引用类。 (1).绝对路径:javac -classpath c:\junit3.8.1\jun...原创 2008-07-18 17:39:44 · 337 阅读 · 0 评论 -
实战多系统通用功能抽取的设计思路
1.产品按指定的顺序显示。业务逻辑大致如下,当前产品推出了多个套餐。套餐ID是从别人的接口中获取的,返回的是无顺序的。但是不排序的话,JSP页面上显示会很乱,这样有了对套餐排序的需求。原来是在程序中定义了一个数组,以数组中套餐ID的顺序来排序,初步实现了套餐排序的功能。由于新套餐的推出较频繁,这样每次增加新套餐,数组就得做相应地改动,也就是每次都需要修改程序,生产系统的server...2008-07-09 14:14:34 · 184 阅读 · 0 评论 -
Throwable的使用
调试webservice的时候发现:客户端能获得服务端抛出的异常,而服务器端却没捕获到这个异常,当时是很纳闷的,呵呵,见笑了。到源代码按图索骥,发现catch的是Exception,而TargetInvocationException是Error的一个子类,当然服务器端是无法捕获。题外话,虽然是基础知识,但真正遇到这种情况时,还真一时没反应过来,基础重要啊!...2008-06-30 12:42:02 · 231 阅读 · 0 评论 -
怎样隔离遗留系统与新功能的数据源的获取、事务处理
遗留系统采用了struts+hibernate,现在想添加spring,由它来做一些横切的功能和总体的控制。遗留系统的数据源和事务处理是建立在hibernate的基础上,新功能的事务处理当然由spring来管理。现在的问题是:原来的数据源的获取和事务的管理可以做改动,但不能对代码做大量的修改。有没有什么办法,可以实现:1.遗留系统最小的改动;2.新功能架设在spring之上;3...2008-04-21 17:46:08 · 105 阅读 · 0 评论 -
遗留系统hibernate升级到spring+hibernate的问题
遗留系统用的是struts+hibernate,考虑到将来需要添加很多的横切功能,现在系统准备加上spring。现在系统中是在hibernate.cfg.xml中配置的数据源,加上spring后,有一个问题有点迷惑,就是数据源的问题。1.数据源必须在applicationContext.xml中配置吗,如果是的话,这两个数据源是什么关系?2.是否可以将hibernate.cfg.xml中配...2008-04-21 15:41:13 · 112 阅读 · 0 评论 -
实战分页功能及分析2-设计分析
优点:个人认为这个分页功能的特点或者说优点是利用了自定义标签。这样就可以把一些属性封装起来,比如:要提交的action,分页对象等,可以通过自定义标签类承载数据,在jsp和action(或者其他控制类)之间传递,在很大程度上保持了jsp页面代码的简洁。 缺点:个人认为缺点恰恰也是这个自定义标签的实现。1.如果需要传递pageinfo和action之外的参数怎么办?可能有人会觉得可以在P...2008-12-17 10:00:03 · 81 阅读 · 0 评论 -
java编码转换
常见的JAVA程序包括以下类别:*直接在console上运行的类(包括可视化界面的类)*JSP代码类(注:JSP是Servlets类的变型)*Servelets类*EJB类*其它不可以直接运行的支持类 这些类文件中,都有可能含有中文字符串,并且常用前三类JAVA程序和用户直接交互,用于输出和输入字符,如:在JSP和Servlet中得到客户端送来的字符,这些字符也包括中文字符。无论这些JAV...原创 2008-09-01 17:42:29 · 109 阅读 · 0 评论 -
实战jfreechart
这是我几年前做过的一个真实的小项目,结构和设计上可能不怎么样,仅供刚接触jfreechart的朋友参考。 显示图表的jsp: test.jsp <%@ page language="java" contentType="image/png;charset=GB2312" import="org.jfree.chart.ChartFactory" import="o...2008-09-11 08:22:38 · 170 阅读 · 0 评论 -
CMS系统的演进
CMS即Content Management System,一般用于网站的内容组织发布。不严格的意义上来看,博客系统也可以算是一个小型的CMS系统。最近做了一个小的CMS系统,感悟不少。 CMS最基本的功能当然是文章发布系统,后台提供一个文章管理的功能,前面将文章显示出来,按照栏目进行组织。当然,栏目,用户,权限管理等基本功能也是必不可少。 开始文章的显示是动态的,每次有人看都执行...原创 2009-05-05 14:45:29 · 106 阅读 · 0 评论 -
反斜杠处理
在Java中处理一些路径相关的问题的时候,如要取出ie浏览器上传文件的文件名,由于ie会把整个文件路径都作为文件名上传,需要用java.lang.String中的replaceAll或者split来处理。如: 上传文件路径为:C:\Documents and Settings\collin\My Documents\111-lazyloading.gif,欲取出文件名:111-lazylo...原创 2009-12-16 10:03:55 · 104 阅读 · 0 评论 -
PrintWriter返回乱码的分析及解决
用response得到输出流,即response.getOuptStream(); 返回值为ServletOutputStream 对象,即JSP的out对象,要么用response得到输出对象PrintWriter即response.getWriter()。 protected void doGet(HttpServletRequest request, HttpSe...原创 2009-12-15 17:44:30 · 173 阅读 · 0 评论