JAVA EE的存档

几百年前的事情了.

2009-12-05 3:10 pm

这样就是几百年前的事情了.

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

AMF3,JSON and Flex XML的性能比较

2009-02-22 10:45 pm

推荐(3)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

hello,2009!

2009-01-03 4:04 am

************************

 

今天写了一篇很长的日志,结果因为网络的问题,发表时出问题,结果没了。

哎。。。

 

********************************

 

没事!

推荐(1)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

Tomcat类加载机制

2008-11-11 3:02 pm

Tomcat Server在启动的时候将构造一个ClassLoader树,以保证模块的类库是私有的
    Tomcat Server的ClassLoader结构图如下:


- Bootstrap - 载入JVM自带的类和/jre/lib/ext/*.jar
- System - 载入/*.class
- Common - 载入/common/...,它们对TOMCAT和所有的WEB APP都可见
- Catalina - 载入/server/...,它们仅对TOMCAT可见,对所有的WEB APP都不可见
- Shared - 载入/shared/...,它们仅对所有WEB APP可见,对TOMCAT不可见(也不必见)
- WebApp - 载入ContextBase?/WEB-INF/...,它们仅对该WEB APP可见

每个运行中的线程都有一个成员contextClassLoader,用来在运行时动态地载入其它类,系统默认的 contextClassLoader是systemClassLoader,所以一般而言java程序在执行时可以使用JVM自带的类、$ JAVA_HOME/jre/lib/ext/中的类和/中的类,可以使用Thread.currentThread(). setContextClassLoader(...);更改当前线程的contextClassLoader,来改变其载入类的行为ClassLoader被组织成树形,一般的工作原理是:
1) 线程需要用到某个类,于是contextClassLoader被请求来载入该类
2) contextClassLoader请求它的父ClassLoader来完成该载入请求
3) 如果父ClassLoader无法载入类,则contextClassLoader试图自己来载入

推荐(10)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

Callback & Template --Spring

2008-07-21 1:34 am

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

WRCommons

2008-07-19 1:11 am

纪念一下WRCommons诞生了。

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

话说OGNL

2008-06-25 8:45 pm

 都说OGNL很强大,强大的无缝不入,无所不能。

早就发现确实很强大,但今天才发现没有传说中的强大。

就说说这个标签吧:  ,今天我想做一个动态的selected,很简单就根据action里取来的一个Integer型的数据生成options。 可是value中只认实现了Iterable 接口的那些集合类。 如果是固定的循环得到是好办,比如说我想循环4次那可以这样。问题是我现在不能确定多少次,我只想要一个for循环的功能,可惜强大的OGNL居然不能办到。

老大叫我用js处理,可是想想很多地方要用这个东西,于是写了一个Integer转换成LIST的公用方法,这个方法很简单先for在add,放在action的基类里面。

现在可以在iterator就有了foreach的感觉了~~~

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

Hibernate 缓存问题

2008-06-25 8:22 pm

   今天做项目的时候,碰到了一个Hibernate二级缓存的问题。 在进行一个更新操作后,再想从数据库里取东西就会出现NullPointerException。相当郁闷,明明那个对象有封装了那个id。可是就是取不出来,开始以为是mapping的问题,结果查映射文件,没有问题。而如果不进行那个更新操作,就可以取到id,然后正常的使用那个po。苦苦调试,后来居然还以为是spring事务控制上的问题,苦查无果。

十分钟过后:

原来在UPDATE的时候,因为更新的只是部分数据所有没有把他上级的id保存下来,当然也没有设置hidden。然后我刚好要做的另外一个操作,也是用同一个POJO。这个时候问题就来了,因为update的时候,Hibernian缓存了那个对象。而我在此去取得时候,取得就是缓存的的东西,当然找不到id。

 解决的办法有两种,一种是在update表单的时候加上一个隐藏的字段。

另外一种是在update这个动作最后显示的clear缓存。各有优缺点,从安全性上我选择了第二种。

完了总结一下Hibrnate的缓存机制:

hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。

二级缓存是SessionFactory级别的全局缓存,我们项目用的是ehcache,所有设置如下:hibernate.cache.provider_class=net.sf.hibernate.cache.EhCacheProvider如果使用查询缓存,加上hibernate.cache.use_query_cache=true 。

 。。。。另外还有Class的缓存,查询缓存,Collection缓存 ,缓存策略太多了。要下班回家了。值得一提的是N+1的问题,有时间再具体写~~~

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

struts2 Servlet API 解耦

2008-06-13 8:00 pm

struts2提供了三种和servlet解耦的方式:

1: ActionContext  这个接口对应的ServletAPI是HttpServletRequest。其中有两个方法,get(),set()对于于HttpServletRequest的getAttribute(),setAttribute().使用方法为:

ActionContext.getContext().put(key,value);

ActionContext.getContext().get(key);

相当于:

HttpServletRequest.setAttribute(key,value);

HttpServletRequest.getAttribute(key);

另外还直接获得session.   ActionContext.getContext().getSession();

2:是基于IOC的方法实现的,在Action中必须实现ServletRequestAware,ServletResponseAware,ServletSessionAware. 不推荐使用。

3:ServletActionContext继承了ActionContext。

HttpServletRequest request = ServletActionContext.getRequest();

HttpServletResponse response = ServletActionContext.getPesponse();

HttpSession session = request.getSession();

总结:第二种方法因为要实现接口不推荐使用,一般如果要获得session,用第一种方法。但是ActionContext不能获得request和response所有要用第三种。。。

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

Exadel Flamingo - Flex with Seam and Spring

2008-06-09 11:46 am

The current state and direction of the software development seems to be going towards agile approaches.  This is mostly a resulted mostly from resurgence of the Internet itself with novel applications supporting Web 2.0 principles. In order to provide a quick response to market demands, the agile development approach seems to be displacing others as being the most efficient and effective. While agile development is not technology specific, there are technologies which are more conducive to agile development than others. Quite a few technologies exist for rapid development of traditional applications, but nothing to aid creation of rich internet application.

官方网站:http://www.exadel.com/web/portal/flamingo

开始关注这个框架!

推荐(0)
收藏
分享至: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 添加到饭否 QQ书签 POCO网摘 Digbuzz我挖网 

得到OpenID
使用OpenID提供商
35OpenID 35OpenID MyOpenID MyOpenID Flickr Flickr
Google Google Yahoo Yahoo! AOL AOL
Blogger Blogger LiveJournal LiveJournal Verisign Verisign
ClaimID ClaimID Technorati Technorati Vidoop Vidoop
OpenID OpenID 帮助