自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 Observe变种,校验链

近期,由于项目需要,需要重新设计一套系统的拦截机制,其场景如下:1.首先,系统需要对发起的请求做是否需要拦截过过滤,如果不需要拦截,则放过,进行第二层拦截2.对于系统的角色的所属权限进行校验,如果为角色默认权限则放过,如果非角色默认可使用权限,则交由第三层用户权限进行控制

2011-08-10 11:23:17 798

原创 软件设计权限-功能原子性

最近负责一个项目的重构架构实施,执行到权限这一块时,发现对原有的权限体系很难下手,包括对表间设计或者是说对权限的显示控制。权限,无非就是赋权和权限拦截。先从权限拦截开始说起吧,对于普通的web来说,对权限的拦截无非就是前端加一个fiter类似的拦截器,对用

2011-08-02 17:31:46 2423

原创 Java动态代理及原理

代理模式应该都不陌生。Java通过反射机制,提供了代理模式的实现。其使用到的核心类如下:InvocationHandler接口  Proxy类先看示例:接口:public interface MyInterface { void method();}接口实现类:public

2011-07-27 15:53:14 1628

原创 Java运行时调用方法、方法名、及行数

StackTraceElement:栈轨迹。其中每一个元素代表一个简单的帧。除了顶部的帧,其余的帧代表了一个方法的调用执行。最顶部的帧代表了执行帧(在该帧上,这个执行栈生成)。获取方法如下:StackTraceElement[] stacks = new Throwable().

2011-07-27 13:22:26 840

原创 关于 java.util.concurrent

Concurrent Collections 是 Java™ 5 的巨大附加产品,但是在关于注释和泛型的争执中很多 Java 开发人员忽视了它们。此外(或者更老实地说),许多开发人员避免使用这个数据包,因为他们认为它一定很复杂,就像它所要解决的问题一样。事实上,java.util

2011-07-13 14:56:52 714

原创 Java synchronized关键字

JAVA的synchronized关键字能够作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。假如再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literal

2011-07-11 14:57:19 456

原创 Java 并发及同步相关 Synchronized ReentrantLock

要了解Java并发,首先需要了解JVM内存模型。JVM内存模型分为两个部分,Main Memory和Working Memory. Main Memory为线程共享,Working Memory为线程自己所有,存放的是线程所需要的变量的拷贝(线程要对main

2011-07-06 10:49:30 962

转载 MySQL P及以上数据量优化方案

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。  2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:  select id from t where num is null  可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:  s

2011-07-01 10:23:00 640

原创 entityManager 的 merge/refresh/flush 方法

理解eneityManager的这三个方法的作用和区别,首先需要分清楚PersistenceContext 和 EntityManager. PersistenceContext:是entity的一个实例。EntityManager:是和PersistenceContext联系在一起的,被用来创建、删除或者查找一个持久化Entity实例。 换句话来说PersistenceCon

2011-06-15 13:29:00 14268

原创 liferay 6 开发记录 1(头部语言切换)

最近帮别人开发项目,想起了liferay这个框架,自己也很久没有开发过这种web应用了,已经有点生疏了,用liferay也是边研究边开发,也是将一些东西记录下来,免得时间长忘记了吧。 先从theme开始吧,因为拿到项目之后,首先需求就是要支持双语,而且语言切换的地方要出现在头部,需要全站都可以看得到,而不是只在小的portlet中出现。 开发是用的liferay的eclip

2011-06-10 17:50:00 1730

原创 Hibernate二级缓存的并发访问策略

<br />   Hibernate二级缓存的并发访问策略有四种:只读(read-only)、非严格读写(nonstrict-read-write)、读写(read-write)和事务(transactional)。但是目前还没有二级缓存提供者完全支持所有的并发访问策略。<br /><br />只读(read-only): 对于永远不会被修改的数据可以采用这种并发访问策略,它的并发性能是最高的。但必须保证数据不会被修改,否则就会出错。<br />非严格读写(nonstrict-read-writ

2010-12-02 17:37:00 3600

原创 check exception和uncheck exception

使用Checked Exception还是UnChecked Exception如果你希望强制你的类调用者来处理异常,那么就用Checked Exception; 如果你不希望强制你的类调用者来处理异常,就用UnChecked。        那么究竟强制还是不强制,权衡的依据在于从业务系统的逻辑规则来考虑,如果业务规则定义了调用者应该处理,那么就必须Checked,如果业务规则没有定义,

2010-04-15 22:19:00 5585 1

原创 设计异常的最佳实践

1.当要决定是采用checked exception还是Unchecked exception的时候,你要问自己一个问题,"如果这种异常一旦抛出,客户端会做怎样的补救?" 如果客户端可以通过其他的方法恢复异常,那么这种异常就是checked exception;如果客户端对出现的这种异常无能为力,那么这种异常就是Unchecked exception;从使用上讲,当异常出现的时候要做一些试

2010-04-15 22:07:00 858

原创 Observe design pattern

一、 观察者(Observer)模式观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

2010-04-15 21:22:00 1004

转载 JMS Development Guide

1.JMS消息的异步与同步接收消息的异步接收:      异步接收是指当消息到达时,主动通知客户端,即当消息到达时转发到客户端。JMS客户端可以通过注册一个实现MessageListener接口的对象到MessageConsumer,这样,每当消息到达时,JMS Provider 会调用MessageListener中的onMessage 方法。所以需要创建一个消息监听器,然后注册一个或多

2010-04-14 20:54:00 806

原创 系统架构设计

Web Application with Business component interfaces       In most cases, J2EE is used to build web applications. Thus, a J2EE web container can provide the entire infrastructure required by many appl

2010-04-13 23:35:00 789

原创 Design Exception System

错误处理需求什么是一个好的错误处理系统?抛开审美角度的考虑,一个好的错误处理系统通常要符合下面的条件:1、任何异常都不会导致应用系统的崩溃。2、在发生异常时,允许应用程序进行相应的处理。3、显示给用户的错误信息要清晰的描述发生了什么错误以及应该采取什么样的处理。4、如果需要辅助信息,错误信息还要帮助用户与帮助部门交互,为帮助部门团队提供必要的信息, 使他们能够快速的容易的重

2010-04-12 18:01:00 1047

原创 Error & Exception

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况.error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出,VirtualMachineError ,ThreadDeath ,LinkageError 。不可能指望程序能处理这样的情况。 另一方面,error 是虚拟机的问题(通常是这样,但也可能是操作系统的问题)。引用Jav

2010-04-10 13:25:00 578

原创 xml parsing(DOM SAX)

1)DOM(JAXP Crimson解析器)        DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的。DOM 以及广义的基于树的处理具有几个优点。首先,由于树在

2010-04-09 16:51:00 798

原创 JVM classLoader

 1)三个类加载器:bootstrap classloader - 引导(也称为原始)类加载器,它负责加载Java的核心类。extension classloader - 扩展类加载器,它负责加载JRE的扩展目录中JAR的类包。system classloader - 系统(也称为应用)类加载器,加载应用程序的类。bootstrap classloader不是一个真正的Clas

2010-04-09 16:37:00 694

原创 JDBC ResultSet数据更新

    JDBC 采用ResultSet方式更新数据库的时候,有机几点需要注意.首先,就是采用的select语句,当使用*作为搜索返回结果集的时候,JDBC将默认的将ResultSet强制设置为ReadOnly模式.    如果采用ResultSet的更新模式,需要将statement设置为ResultSet.CONCUR_UPDATABLE. Statement 的参数:默认

2010-03-22 16:59:00 1374

原创 httpServletResponse reset flushBuffer

httpServletResponse reset flushBufferreset():Clears any data that exists in the buffer as well as the status code and headers. If the response has been committed, this method throws an IllegalStat

2010-01-07 11:04:00 5295 2

原创 JSP 防止重复提交方法

在处理JSP页面重复提交之前,首先要明白request和session的概念.并且很清晰的知道他们各自的工作原理.Session,存在于服务器端的内寸中,当客户端发送request到服务端,包含的session信息为sessionId. request.getSession().这个方法是经常使用的一个方法,但是它并不是表示session就存在于request中,而是request通过se

2009-12-03 17:31:00 2407

原创 request 生命周期及参数信息

     当从一个jsp发出一个request,即表明了这个request生命周期的开始,当到达action之后一般有两种处理request的方式,一种为request.getDispatcher.forward,一种是response.sendRedirect.对于request的forward,该request的生命周期将会继续延续下去,当采用forward如果到达JSP页面,那么之前从第

2009-11-26 17:05:00 4404 1

原创 JDBC 事务的回滚 提交

JDBC中,采用事务首先需要设定connection.setAutoCommit(false);JDBC事务开启的第一步,如果不设置,connection会自动提交事物.rollback 和 commit的作用都完成对数据库的一次操作.并且释放当前的一些资源.对于commit之后的事务,是不能够再进行回滚,但是对于回滚之后的失误,在不同的情况下却可以选择提交.rollbac

2009-11-23 16:07:00 16708 2

原创 Java callBack方法

 Java 的callBack机制,实际上就是只提供一个接口,其实现可根据具体需求具体实现.相对于接口而言,通常的接口是只暴露接口而不暴露接口的具体实现,而callBack恰好相反,机暴露接口,并且接口的内部实现还需要根据不同的需求,由非接口的开发人员进行开发.简单的callBack,接口人员只需要提供一个接口即可:public interface CallBack {

2009-11-20 12:01:00 1771

原创 Taglib 方法的执行

 开发自定义标签的时候可以继承TagSupport或着BodyTagSupport,实际上bodyTagSupport已经继承了tagSupport这个类.TagSupport:当继承TagSupport后,需要至少重写doStartTag这个方法.这个方法将得到标签起始时的一些信息,这个方法的合理返回值有两个,分别为EVAL_BODY_INCLUDE和SKIP_BODY,前者的意思为执行标签体的

2009-11-18 17:25:00 743

转载 response.sendRedirect & request.getRequestDispatcher(path).forward(request, response);

尽管HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有着很大的区别。下面是HttpServletResponse.sendRedirect方法实现的请求重定向与RequestDispatcher.forward方法实现的请求转发的总结比较:(

2009-10-21 14:48:00 2439 1

原创 Ant 打War包

 工程的两种结构如图所示:<!-- WARNING: Eclipse auto-generated file. Any modifications will be overwritten. To include a user specific buildfile here, simply create one in the

2009-04-24 16:49:00 868

原创 web.xml 部署描述符元素

转自 :http://soft.zdnet.com.cn/software_zone/2007/1013/551300.shtml  在每一个Web应用程序路径的WEB-INF下和conf下存在一个Web.xml配置文件,  用来设定Web应用程序的配置。在Web.xml中的设定非常多,  接下来分段来说明它的各项设定:     PUBLIC"-//Sun Micros

2009-04-08 17:46:00 568

转载 Windows下Apache与Tomcat的整合

准备工作:1、 Apache 2.2.4下载地址:http://cztele1.skycn.com/down/apache_2.2.4-win32-x86-no_ssl.zip2、 Tomcat 6.0.16下载地址:http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.

2009-04-08 17:13:00 567

转载 request.getSession()

转自: http://www.blogjava.net/border/archive/2007/03/19/61073.html HttpRequest对象有两种形式的getSession方法调用:一个是getSession(),另一个是getSession(boolean isNew)这样的,前者会检测当前时候有session存在,如果不存在则创建一个,如果存在就返回当前的。getSes

2009-03-30 16:52:00 2825

转载 Hibernate缓存管理

 转自:http://www.qqread.com/java/2008/01/u390226.html 1、Cache简介缓存(Cache )是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,

2009-03-25 17:19:00 718

转载 JSP国际化配置

转自:http://xa-zbl.javaeye.com/blog/249385 国际化(Internationalization,又称il8n),是越来越多的应用软件必须面临的问题,Java语言采用Unicode编码,并且提供了强大的类库支持国际化编程。采用Java语言编程,可以方便地实现应用软件界面语言的国际化。 国际化编程常用类:使用Java语言进行国际化编程,经常要用到Lo

2009-03-25 16:54:00 12337

转载 成年人必看的六个故事

 转自:http://topic.csdn.net/u/20090316/11/cd18def3-cdd0-498c-826b-3dd5c4cce186.html 成年人必看的六个故事教你学会做人 1只小猪、一只绵羊和一头乳牛,被关在同一个畜栏里。有一次,牧人捉住小猪,它大声号叫,猛烈地抗拒。绵羊和乳牛讨厌它的号叫,便说:「他常常捉我们,我们并不大呼小叫。小猪听了回答道:「捉你们和

2009-03-20 11:16:00 757

原创 jQuery使用技巧汇总

 一.jQuery对图片的操作 <!-- $(document).ready(function(){ $("#next").click(function(){ var val=$("#image").attr("src"); if(val==more_3.gif) {

2009-03-05 17:32:00 520

转载 Hibernate &amp; Ibatis

1.库表的复杂度,首先取决于需求,不取决于设计,设计能力强的人,也要遵守库表设计的规范,从巴克斯三个范式上,原则上也要遵守。不能说用了Hibernate,自己的库表设计能力就强了。不能为了用Hibernate,就去一味批判复杂的关系不对。复杂的关系设计对不对,首先取决于是否有复杂的需求,其次才取决于设计者的能力。     2.只要你用的是关系数据库,就必须要明白,为什么叫

2009-03-05 16:08:00 1130 1

原创 static 与私有构造函数

  java中static是一个很有用的方法。  首先我们来看一个例子:package com.test.dao;public class Test { private static int i = 0; private Test() { // ************************* 1 } static { System.out.prin

2009-03-05 14:59:00 1915

Jboss下hibernate整合EJB

Jboss下hibernate整合EJB

2007-12-03

数据库联接

主流数据库连接代码,如SQLServer Oracle

2007-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除