君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
  1057 随笔 :: 381 文章 :: 141 评论 :: 169万 阅读

05 2012 档案

摘要:这里笔者介绍一种很常用,也比较专业的权限控制思路。这里用java语言描述,其实都差不多的。要换成其他的语言主,自己转一下就可以了。为了方便起见,我们这里定义a^b为:a的b次方。这里,我们为每一个操作设定一个唯一的整数值,比如: 删除A---0 修改A---1 添加A---2 删除B---3 修改B---4 添加B---5 理论上可以有N个操作,这取决于你用于储存用户权限值的数据类型了。 这样,如果用户有权限:添加A---2;删除B---3;修改B---4。那用户的权限值 purview =2^2+2^3+2^4=28,也就是2的权的和了。化成二进制可以表示为11100。这样,如果要验证用.. 阅读全文
posted @ 2012-05-24 05:52 刺猬的温驯 阅读(695) 评论(0) 推荐(0) 编辑

摘要:之前我们使用的是HibernateTemplate来进行对象的持久化的,其实在DAO实现类中我们还可以使用Hibernate的上下文Session来持久化对象。也就是通过SessionFactory对象的getCurrentSession()对象来获得Session,然后通过Session来进行操作。 我们调整一下代码:Java代码packageorg.ourpioneer.course.dao;importjava.util.List;importorg.hibernate.Query;importorg.hibernate.SessionFactory;importorg.ourpione 阅读全文
posted @ 2012-05-21 09:42 刺猬的温驯 阅读(297) 评论(0) 推荐(0) 编辑

摘要:今天看Alef Arendsen的一篇blog。一点收获!http://blog.interface21.com/main/2007/06/26/so-should-you-still-use-springs-hibernatetemplate-andor-jpatemplate/在spring2.0之前,我们在使用hibernate和spring的时候,都会被HibernateTemplate为我们提供 benefits(资源和事务管理以及把那个“丑陋”的checked exception转换为runtime exception-DataAccessException )而折服,在项目中不由 阅读全文
posted @ 2012-05-21 09:40 刺猬的温驯 阅读(507) 评论(0) 推荐(0) 编辑

摘要:packageorg.springframework.web.servlet.theme;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.web.util.WebUtils;/***ImplementationofThemeResolverthatusesacookiesentbacktotheuser*incaseofacustomsetting,w 阅读全文
posted @ 2012-05-17 21:36 刺猬的温驯 阅读(449) 评论(0) 推荐(0) 编辑

摘要:在写iframe完成长连接获取上传状态的时候,有两次请求,一次上传,一次获取状态的。发现第一次上传上传的请求和获取状态的请求是不同的session,再次上传时就没问题了。找了资料,都说是放jsessionid,或者加P3P头信息。这些都不是我现在的真正问题。在google的bug工具中,看到原因了。我的iframe写得是<iframe name="uploadinputName"src=""id="upload{inputName}" style="display:none"></if 阅读全文
posted @ 2012-05-17 06:30 刺猬的温驯 阅读(4674) 评论(1) 推荐(0) 编辑

摘要:LocaleSpring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 Accept-Language 来确定访客的local。对于前端jsp页面上,spring提供了标签<spring:message>来提供从resource文件中获取的文字的动态加载功能。例如修改servlet context xml文件中的messageSource部分,增加对多国语言message的code resource的引入。Xml代码<beanid="messageSource"class="org.sp 阅读全文
posted @ 2012-05-17 04:24 刺猬的温驯 阅读(8066) 评论(2) 推荐(1) 编辑

摘要:Servlet中的输入参数为都是string类型,而spring mvc通过data bind机制将这些string 类型的输入参数转换为相应的command object(根据view和controller之间传输数据的具体逻辑,也可称为model attributes, domain model objects)。在这个转换过程中,spring实际是先利用java.beans.PropertyEditor中的 setAdText方法来把string格式的输入转换为bean属性,亦可通过继承java.beans.PropertyEditorSupport来实现自定义的PropertyEdit 阅读全文
posted @ 2012-05-17 02:47 刺猬的温驯 阅读(2270) 评论(0) 推荐(0) 编辑

摘要:延迟加载过滤器Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常。Spring 为此专门提供了一个 OpenSessionInViewFilter 过滤器,它的主要功能是使每个请求过程绑定一个 Hibernate Session,即使最初的事务已经完成了,也可以在 Web 层进行延迟加载的 阅读全文
posted @ 2012-05-16 21:02 刺猬的温驯 阅读(471) 评论(0) 推荐(0) 编辑

摘要:1、通过继承JDK 中的 java.beans.PropertyEditorSupport类来实现自己的编辑器类,该类用于实现将String 类型转换成您需要的数据类型。然后我们只需要在Spring 的容器中对这个编辑器进行有效的“注册”便可以实现Spring 在装配Bean 时自动的将String 类型转换成我们自定义的类型。如何编辑自己的PropertyEditor,其实需要了解一点java.beans包的知识,在该包中,有一个 java.beans.PropertyEditor的接口,它定义了一套接口方法(12个),即通过这些方法如何将一个String变成内部的一个对 象,这两个方法是比 阅读全文
posted @ 2012-05-16 20:58 刺猬的温驯 阅读(1154) 评论(0) 推荐(0) 编辑

摘要:Java代码publicclassPerson{privateStringname;privateintid;privateintage;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}}importjava.beans.Pro 阅读全文
posted @ 2012-05-16 20:57 刺猬的温驯 阅读(3797) 评论(0) 推荐(0) 编辑

摘要:基于spring-framework-3.1.1.RELEASE7.1、简介在编写可视化界面项目时,我们通常需要对数据进行类型转换、验证及格式化。一、在Spring3之前,我们使用如下架构进行类型转换、验证及格式化:流程:①:类型转换:首先调用PropertyEditor的setAsText(String),内部根据需要调用setValue(Object)方法进行设置转换后的值;②:数据验证:需要显示调用Spring的Validator接口实现进行数据验证;③:格式化显示:需要调用PropertyEditor的getText进行格式化显示。使用如上架构的缺点是:(1、PropertyEdito 阅读全文
posted @ 2012-05-16 20:05 刺猬的温驯 阅读(6786) 评论(0) 推荐(0) 编辑

摘要:Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用Xml代码<!--json--><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-core-lgpl</artifactId><version>1.8.1</version></dependency><dependency><groupI 阅读全文
posted @ 2012-05-16 19:52 刺猬的温驯 阅读(565) 评论(0) 推荐(0) 编辑

摘要:Spring mvc 目前支持5个tag,分别是mvc:annotation-driven,mvc:interceptors,mvc:view-controller, mvc:resources和mvc:default-servlet-handlermvc:annotation-driven 注册 DefaultAnnotationHandlerMapping 和AnnotationMethodHandlerAdapter两个bean,及一系列缺省的messageconverter(需要classpath中有相应的lib包的支持。)相当于以下配置的效果。Xml代码<beanclass=& 阅读全文
posted @ 2012-05-16 19:49 刺猬的温驯 阅读(323) 评论(0) 推荐(0) 编辑

摘要:Customizing WebDataBinder initializationTo customize request parameter binding with PropertyEditors, etc. via Spring's WebDataBinder, you can either use @InitBinder-annotated methods within your controller or externalize your configuration by providing a custom WebBindingInitializer.Customizing 阅读全文
posted @ 2012-05-16 19:39 刺猬的温驯 阅读(328) 评论(0) 推荐(0) 编辑

摘要:Servlet中的输入参数为都是string类型,而spring mvc通过data bind机制将这些string 类型的输入参数转换为相应的command object(根据view和controller之间传输数据的具体逻辑,也可称为model attributes, domain model objects)。在这个转换过程中,spring实际是先利用java.beans.PropertyEditor中的 setAdText方法来把string格式的输入转换为bean属性,亦可通过继承java.beans.PropertyEditorSupport来实现自定义的PropertyEdit 阅读全文
posted @ 2012-05-16 19:30 刺猬的温驯 阅读(440) 评论(0) 推荐(0) 编辑

摘要:@InitBinderpublicvoidinitBinder(WebDataBinderbinder){SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-dd");dateFormat.setLenient(false);binder.registerCustomEditor(Date.class,newCustomDateEditor(dateFormat,true));binder.registerCustomEditor(SystemInfo.class,newPropertyEditorSupport( 阅读全文
posted @ 2012-05-16 19:28 刺猬的温驯 阅读(492) 评论(0) 推荐(0) 编辑

摘要:[java]view plaincopymodel对象:User.java:[java]view plaincopypublicclassUser{privateintid;privateStringname;//0:男,1:女,页面上表现为radiobuttonprivateintgender;privateintage;//0:没毕业,1:已经毕业,页面上表现为checkboxprivateintgraduted;//0:没结婚,1:已经结婚,页面上表现为checkboxprivateintmarried;}form表单:<form:form id="user" 阅读全文
posted @ 2012-05-16 19:27 刺猬的温驯 阅读(3720) 评论(0) 推荐(0) 编辑

摘要:今天碰到一个问题,页面表单上是一个id,但在表单控制器的command里是一个javabean,如果将一个String转换成javabean呢?因为已经有了一个服务于hibernate的javabean,我可不想再写一个javabean,然后再笨笨的转换。在查看SimpleFormController的API的时候,发现它有一个来自父类BaseCommandController的方法——initBinder:BaseCommandController (Spring Framework)initBinderprotected void initBinder(HttpServletRequest 阅读全文
posted @ 2012-05-16 19:26 刺猬的温驯 阅读(466) 评论(0) 推荐(0) 编辑

摘要:Cygwin is a Unix-like environment for windows.It can be obtained from:www.cygwin.comBelow are notes on how to install and setup cygwin for access to group computers.Installation Notes:Download setup.exefromwww.cygwin.com.Run application from your local harddrive.Chose next on first screen.Select &qu 阅读全文
posted @ 2012-05-16 02:57 刺猬的温驯 阅读(389) 评论(0) 推荐(0) 编辑

摘要:I thought that it was time to take a look at Spring’s MVC interceptor mechanism, which has been around for a good number of years and is a really useful tool.A Spring Interceptor does what it says on the tin: intercepts an incoming HTTP request before it reaches your Spring MVC controller class, or 阅读全文
posted @ 2012-05-15 06:08 刺猬的温驯 阅读(1880) 评论(0) 推荐(0) 编辑

摘要:一、Servlet Filter与Spring interceptor的执行顺序 Filter有顺序吗?我们怎么控制filter的执行顺序。通过Tomcat的代码分析,servlet在Filter执行完成后才调用,如有多个filter怎么控制执行顺序,首先会想到在web.xml配置某个参数,例如order之类的,但查找一下一番,servlet并没有这个参数。试试filter Mapping的配置的先后顺序,果然有效,原来filter的执行顺序就考filter mapping在web.xml中的顺序。spring interceptor也是这样的执行顺序,不过interceptor多一个配置参数 阅读全文
posted @ 2012-05-15 05:15 刺猬的温驯 阅读(484) 评论(0) 推荐(0) 编辑

摘要:在当今的MVC framework里,似乎Webwork2逐渐成为主流, Webwork2+SpringFramework的组合变得越来越流行。这似乎意味着Spring自带的MVC framework远比Webwork2差,所以大家纷纷用Webwork2来代替。确实,Spring的MVC framework不算是整个Spring的核心部件,但它的威力却超过了很多人的想象。很多人包括xiecc认为Spring的MVC framework是非常优秀的,甚至比Webwork2更优秀。下面列举一下Spring的MVC framework在设计时做出的一些重要的决定,并将之和相关的MVC framewo 阅读全文
posted @ 2012-05-15 05:14 刺猬的温驯 阅读(316) 评论(0) 推荐(0) 编辑

摘要:假如我们在写一个基于Spring的普通应用程序,不管我们用了多么精妙的设计模式,进行了如何巧妙的设计,我们必须在某个地方执行这样的代码:ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml", "applicationContext-part2.xml"});appContext.getBean("…");也许这样的代码算不上丑陋,但是它无疑破坏了程序的纯洁 阅读全文
posted @ 2012-05-15 05:13 刺猬的温驯 阅读(411) 评论(0) 推荐(0) 编辑

摘要:其实每个MVC framework的执行过程都是大同小异的,当个request过来时,它都通过一个Servlet来响应request,再根据request的路径名和配置将这个request dispatch给一个Controller执行,最后将之返回配置文件里对应的页面。在Spring MVC里,这个Servlet的名字叫DispatchServlet。稍看一下它的源码会发现这是一很简单的类。下面是DispatchServlet的类图:简单吧,这是典型的Template Method模式。每个类都会完成一些自己的本职工作,把不属于自己的工作延迟到子类来完成。这些类的子职责在下面会有分析。其实整 阅读全文
posted @ 2012-05-15 05:11 刺猬的温驯 阅读(395) 评论(0) 推荐(0) 编辑

摘要:目前的Web应用开发基本上都是围绕富互联网应用(Rich Internet Application,RIA)展开。RIA的实现技术有很多种:Ajax、Flash、JavaFX和Sliverlight等。Ajax技术的优点在于它是构建在开放标准之上,不存在厂商锁定的问题;同时也不需要额外的浏览器插件支持。Ajax应用对搜索引擎也比较友好。对开发者来说,Ajax所需技术的学习曲线也较平滑,容易上手。本文简要介绍了Ajax应用开发的各个方面以及相关的最佳实践,但对一些细节内容没有展开讨论。Ajax简介Ajax 技术的出发点在于改变传统Web应用使用时的“操作-等待页面加载-操作”的用户交互模式。这种 阅读全文
posted @ 2012-05-13 21:55 刺猬的温驯 阅读(266) 评论(0) 推荐(0) 编辑

摘要:1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保 存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。 2、什么情况下需要序列化 a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对象的时候; 6、相关注意事项 a)序列化时,只对对象的状态进行保存,而不管对象的方法; b)当一个父类实现序列化,子类自动实现序列化,不需要显式实... 阅读全文
posted @ 2012-05-11 01:30 刺猬的温驯 阅读(330) 评论(0) 推荐(0) 编辑

摘要:1.WHY名词:风险:(1)未来可能发生的某一件事,该事件将导致不好的结果(2)不好的结果本身风险是尚未发生的问题,问题是业已成真的风险。区分风险管理(管理风险)和危机管理(问题的补救措施)风险转化:风险发生(具现)了转化事件,通常不可见,可见的为转化指标,通过指标看转化事件。风险缓解:“必须在风险转化前做的工作”风险管理包括:风险发现,暴露分析,应急计划,风险缓解,持续转化控制。风险管理的理由:使积极的风险承担成为可能使风险合法化使项目向着成功出发为不确定性划定边界提供成本的最低保护能防止隐蔽的责任推诿能够亡羊补牢为个人成长提供最大的机会能防止掩耳盗铃的管理关注需要关注的地方2.WHY NO 阅读全文
posted @ 2012-05-10 17:19 刺猬的温驯 阅读(438) 评论(0) 推荐(0) 编辑

摘要:这个问题,我把对象赋值为NULL,也是很好用的.在我的系统中,更新好用了,可是插入不好用了.没改前,是插入好用,而更新不好用.本来是系统中的问题,可是,catch只是捕捉到,从但是,没有把log打印出来,找原因实在是难找.在高度数据库时,最好把异常捕捉中的信息打印出来.org.springframework.orm.hibernate.HibernateSystemException: a different object with the same identifier value was already associated with the session: 4443398, of cl 阅读全文
posted @ 2012-05-10 05:21 刺猬的温驯 阅读(13570) 评论(0) 推荐(0) 编辑

摘要:用c++写成,可反编译class文件,支持jar包级的反编译,可将整个jar包直接保存为*.src.zip源代码包,反编译迅速,错误率极少,详细的看下面下载地址:http://java.decompiler.free.fr/?q=jdguiIntroductionThe aim of “Java Decompiler” project is to develop tools to decompile and analyze Java 5, and upper, “.class” files.JD-Core is a freeware library that reconstructs Java 阅读全文
posted @ 2012-05-10 04:38 刺猬的温驯 阅读(528) 评论(0) 推荐(0) 编辑

摘要:引子:前几天,小胖和我说他们公司CTO批他了,说他写的代码不够OO,不够DDD。细问才知道他们CTO在推DDD(领域模型驱动设计).我当时给他的观点是,JavaEE应用是天生贫血的,并不能像ruby之类的语言做到很好的富血,做到DDD。因为这些观点也是N年前讨论过的问题,我记得冒似robbin当年还下过定论:Java天生是贫血的。所以有了ruby之流做RAD快速开发。但当seam到spring roo的出现与完善,富血DDD在Java里也变得可行起来(此论言之尚早,拭目以待)。我以前也和别人争吵过哪个更好,现在我的思想又受到了一些冲击,你呢?世界在发展,我们的思想是不是也应该与时俱进呢?贫血v 阅读全文
posted @ 2012-05-10 02:47 刺猬的温驯 阅读(597) 评论(0) 推荐(0) 编辑

摘要:在软件开发过程中,经常忽略的一个因素——风险。风险是一把双刃剑,因为风险的另一面就是价值,我们不能因为它的负面影响避而不谈。这书就围绕着风险这个东西展开阐述。此书作者是一个实践家而不是思想家。在文中他指出了为什么风险管理会给忽略,跟着谈了如何做合理的风险管理。我认为,在现实的环境中,影响风险最关键的还是人,因此作者在序编里面就引用了英国以为思想家William K. Clifford的论文《信仰的论理学》,这篇论文的确提高了此书的思想深度。看到后面,经过反思才觉得这篇论文才最能说明关于风险的问题。一切都是人左右风险,试想一下如果所有人都有风险的意识,那还担心用什么方法去管理吗?所以此书只是风险 阅读全文
posted @ 2012-05-08 00:28 刺猬的温驯 阅读(793) 评论(0) 推荐(0) 编辑

摘要:最后期限(Deadline)是软件从业人员必须面临的最大困难与挑战,准确地说,它是所有程序员包括项目管理者的可怕梦魇。当堂吉珂德看到郊野之上的数十架风车,风车的翅翼如巨人的胳膊,正耀武扬威地奚落着这位中世纪后期没落的骑士时,堂吉珂德如勇敢的斗士一般,跃马而上,用长枪狠狠地刺向风车,换来的却是长枪折断,人仰马翻,最后大败而归。没错,最后期限之于程序员,正如风车之于堂吉珂德,确实是太强大以至于无法战胜。 那么,我们真的要知其不可为而为之吗?就像孟子老夫子说的那般,虽千万人吾往矣!虽然充满了风萧萧兮易水寒的悲壮,但铩羽而归的感觉,无疑会一次次挫败程序员的信心。更重要的是,IPO变成了负值,投资方是. 阅读全文
posted @ 2012-05-07 23:21 刺猬的温驯 阅读(283) 评论(0) 推荐(0) 编辑

摘要:1.级联CASCADE属性的意义:只有“关系标记”才有cascade属性:OneToOne ,OneToMany ,ManyToOne ,ManyToMany.级联指的是当主控方执行操作时,关联对象(被动方)是否同步执行同一操作。一个操作因级联cascade可能触发多个关联操作。前一个操作叫“主控操作”,后一个操作叫“关联操作”。 cascade属性的可选值:all: 所有情况下均进行关联操作。none:所有情况下均不进行关联操作。这是默认值。save-update:在执行save/update/saveOrUpdate时进行关联操作。delete:在执行delete时进行关联操作。 具体执行 阅读全文
posted @ 2012-05-01 23:34 刺猬的温驯 阅读(296) 评论(0) 推荐(0) 编辑

摘要:“Nearly 80 to 85 percent of database performance problems arise from the application database's design or the application's own code. Good transaction throughput requires an application designed from the database up, with performance and scalability in mind.”----DB2 MagazineP6Spy & SQL P 阅读全文
posted @ 2012-05-01 23:16 刺猬的温驯 阅读(432) 评论(0) 推荐(0) 编辑

摘要:Hibernate QBC语言文章分类:Java编程节 8.01 基本查询以下是HQL/QBC/Native SQL三种查询策略HQL策略:Java代码session.createQuery("FROM Category c where c.name like 'Laptop%'");session.createQuery("FROM Category c where c.name like 'Laptop%'");QBC策略:Java代码session.createCriteria(Category.class).add 阅读全文
posted @ 2012-05-01 23:13 刺猬的温驯 阅读(5229) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示