摘要: 一、前言: ThreadLocal模式,严格意义上不是一种设计模式,而是java中解决多线程数据共享问题的一个方案。ThreadLocal类是java JDK中提供的一个类,用来解决线程安全问题,并不是线程类。二、基础: 线程安全:简单来说,指的是在多线程环境中,对类的内部实例变量的访问是安全的。而方法声明中的参数变量以及方法中的内部变量是不存在线程安全问题,因为每个线程独自管理自己方法内部的变量。三、原理与实现: 1,原理:多个线程访问同一共享变量时,ThreadLocal类为每个线程提供一份该变量的副本,各个线程拥有一份属于自己的变量副本,操作修改的是各自的变量副本,而不会相互影响。... 阅读全文
posted @ 2013-12-13 14:50 剑志 阅读(2585) 评论(0) 推荐(0) 编辑
摘要: (注:以下版本指的是spring3+hibernate3+struts2)1,web开发中,servlet对象是否线程安全? 当一个http请求到来时,web容器的调度线程(Dispach Thread)会从已经初始化的线程池中分配一个工作线程(Worker Thread)来负责处理该请求,该工作线程会调用对应的servlet对象的service方法;如果又一个请求到来,web容器会从线程池中选择另一个线程来服务新的请求。web容器不关心请求的是否是同一个servlet实例。所以,多个请求可能调用同一个Servlet对象,servlet的service方法会在多线程环境中并发执行,若serv. 阅读全文
posted @ 2013-12-12 15:53 剑志 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1,导入jcaptcha.jar包,这里用的是1.0版本2,编写captcha-context.xml配置文件(非必须,可在spring配置文件中直接添加): 0123456789 ... 阅读全文
posted @ 2013-12-09 18:26 剑志 阅读(4097) 评论(0) 推荐(0) 编辑
摘要: 一、Session缓存的介绍 简单说,缓存介于应用程序和数据库之间,是临时存放数据的内存区域,作用是减少对数据库的访问次数,从而提高应用程序的运行性能。Session有一个缓存,也叫hibernate的一级缓存,Hibernate查询数据的时候,首先到session缓存中看看有没有,有的话直接拿来使用,没有的话,才去访问数据库读取数据。 众所周知,一个java对象如果没有被任何变量引用的话,就会被GC自动回收,生命周期结束。Session接口的实现中包含一系列的java集合,这些java集合构成了session的缓存。也就是说,Session持有这些java对象的引用,所以只要sessio.. 阅读全文
posted @ 2013-11-04 10:53 剑志 阅读(1658) 评论(0) 推荐(1) 编辑
摘要: 一、DWR介绍 DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript,就好像浏览器调用一样(DWR根据Java类来动态生成JavaScrip代码). DWR支持Spring(JavaScript远程调用spring bean)还支持一个可选的commons-logging日记操作.二、DWR使用(加示例) 1,添加dwr.jar包到服务器WEB-INF/lib下,另外该目录下也应.. 阅读全文
posted @ 2013-10-29 14:17 剑志 阅读(1667) 评论(0) 推荐(0) 编辑
摘要: 一、Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等。Quartz是出了名的任务调度框架,它可以与J2SE和J2EE应用程序相结合,功能灰常强大,轻轻松松就能与Spring集成,使用方便。二、Quartz中的概念 主要有三个核心概念:调度器、任务和触发器。三者关系简单来说就是,调度器负责调度各个任务,到了某个时刻或者过了一定时间,触发器触动了,特定任务便启动执行。概念相对应的类和接口有: 1)JobDetail:望文生义就是描述任务的相关情况; 2)Trigger:描述出发Job执行的时间触发规则。有SimpleTr... 阅读全文
posted @ 2013-10-23 17:37 剑志 阅读(23991) 评论(3) 推荐(3) 编辑
摘要: 一,htmpparser介绍 htmlparser是一个功能比较强大的网页解析工具,主要用于 html 网页的转换(Transformation) 以及网页内容的抽取 (Extraction)。二,使用与示例 1,提取网页某类型标签.这里,html的标签对应于一个标签类,如标签对应于ImageTag.下面以提取标签为例,输出网页图片地址: //读取文件内容 String html = IOUtils.toString(new FileInputStream(localFile), "UTF-8"); //创建html解析器 ... 阅读全文
posted @ 2013-10-11 15:13 剑志 阅读(1009) 评论(0) 推荐(0) 编辑
摘要: 一、HttpClient介绍 虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是它没有提供足够的灵活性和其他应用程序需要的功能。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。二、使用范例(以下版本4.3) 1,通过get方式,请求网页内容。我们首先创建httpclient对象,然后通过httpclient来执行http get方法,httpresponse获得服务端响应的所有内容,httpentity.. 阅读全文
posted @ 2013-10-11 09:49 剑志 阅读(3110) 评论(1) 推荐(1) 编辑
摘要: 一,介绍 common-fileupload是appache的开源组件,基于该组件可以轻松实现文件上传的功能,strust框架的文件上传功能也是基于该组件。二,使用 1,导入两个jar包:common-fileupload.jar和common-io.jar,fileupload依赖于io包,两个jar包可到appache官网上下载. 2,示例性代码(基于官方示例代码改动):// Check that we have a file upload request boolean isMultipart = ServletFileUpload.isMultipartCo... 阅读全文
posted @ 2013-10-06 19:20 剑志 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 一、BeanUtils介绍 commons-beanutils是利用反射机制对JavaBean的属性进行处理,提供了对于JavaBean的各种处理方法。众所周知,一个JavaBean通常包含了大量的属性,而对于JavaBean的处理导致大量get/set方法的堆积,使用BeanUtils能简化我们的代码量,将我们的双手从get/set方法中解放出来,让我们节省时间去搬其它的砖头。二、BeanUtils基本使用 1,通过BeanUtils类可以直接get和set一个属性的值,方法如下(第一个参数是JavaBean对象,第二个参数是要操作的属性名):getSimpleProperty(Object 阅读全文
posted @ 2013-10-04 12:01 剑志 阅读(948) 评论(0) 推荐(0) 编辑