May
11

mother's day
2008-05-11 11:11 am 作者:firepig

虽然老妈可能不会来关注我的blog。。。可是还是要在这祝妈妈母亲节快乐。另外还有一个秘密要告诉你哦。。。你永远是儿子心中最伟大的人。哈哈,晚上电话你的时候在甜言蜜语吧。

   

 也祝全天下的母亲节日快乐,你们辛苦了。

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

西江月-井冈山-My hometown
2008-05-09 11:58 pm 作者:firepig

jgs.gif

这些天一直忙碌,今天闲下来一个晚上。本来想看看家乡是谁来当奥运火炬手。上网,看新闻,逛网页却看到这首诗,熟悉的诗词引起了更多对家乡的思念,激起了浓浓的乡愁,好想家。上网搜了一些井冈山的美景,发现家乡真的非常的漂亮。想家,一个游子。。。 附上家乡的美景图:

井冈山瀑布:

jgds.gif

阅读全文... 

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

struts2 文件上传问题
2008-05-07 9:53 am 作者:firepig

今天碰到一个小问题。忘记在web.xml 配置struts2-cleanup了,如果要用到上传,这个一定要配置上。。。

 
        < filter-name > struts-cleanup
        < filter-class >
            org.apache.struts2.dispatcher.ActionContextCleanUp
       
     
    
< filter-mapping >
        < filter-name > struts-cleanup
        < url-pattern > /*
   

这样,那个未知的错误就没有了。。

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

struts2拦截器学习心得
2008-05-06 4:04 pm 作者:firepig

Struts2的拦截器是基于AOP思想的,采取可配置的方式控制(可插销式)。 拦截器的使用解耦了对servlet的依赖,不在依赖Servlet API。而Struts1.x Action中的execut中有HttpServletRequest和HttpSerletResponse方法。对于Struts2的Action来说其实就是一个POJO。。。

话题回到拦截器,Strut.xml中可以定义拦截器,也可以定义一个拦截器栈,格式是:

配置好之后就可以在具体的Action引用改拦截器,引用的格式是 在定义和引用的时候都可以配置默认的参数 value 值得注意的是如果在定义和引用的时候都配置了相同的参数,那么Action中的引用参数将会覆盖默认的配置。 还有一个要注意的地方是,如果Action中指定了自己要用的拦截器,那么就必须显示的指定默认的拦截器。 有的拦截器是每个Action都要用到的,那么一个个去配置的话,就显得太麻烦了,也不符合软件复用这个指导思想。这个时候可以配置包下默认拦截器,既可以是拦截器也可以是拦截器栈, 也可以在配置参数param。这样的话这些拦截器就应用到了包中的每一个Action。虽然Struts2中的拦截器基本是帮我们完成了70%的拦截任务,但是我们很多的时候还是要自己写一个拦截器的。

怎么写一个拦截器呢,庆幸的是在struts2中这是一件简单而且愉快的事情。

首先要实现com.opensymphony.xwork2.interceptor.Interceptor接口。

public Interface Interceptor extends Serializable {

//销毁该拦截器之前的回调方法

void destory();

//初始化该拦截器的回掉方法(主要是打开一些资源)

void init();

// 拦截器实现拦截的逻辑方法

String intercept(ActionInvocation invocation) throws Exception;

}

intercept这个方法是我们需要实现的拦截动作。就像Action的execute一样,intercept方法会返回一个字符串的逻辑视图。ActionInvocation参数包含了被拦截的Action的应用,调用invoke方法,将控制权交给下一个拦截器,或者转个Action的execute方法。

跟java的API一样,大家都知道很多时候一个接口对应的会有一个抽象类实现这个接口,然后在抽象类提供接口一些方法的空实现,这样在我们在用的时候,就可以直接继承那个abstract的类,不用在实现那些我们不要的方法。 那么Struts2也提供了这样的一个方法AstractIntercepor类,这个类对init()和destory()方法进行了空实现,以为并不是我们每次实现拦截器的时候都要申请资源。ActionInvocation可以做的事情很多,我复制一段API

Method Summary
void addPreResultListener(PreResultListener listener)
Register a com.opensymphony.xwork2.interceptor.PreResultListener to be notified after the Action is executed and before the Result is executed.
Object getAction()
Get the Action associated with this ActionInvocation
ActionContext getInvocationContext()
Gets the ActionContext associated with this ActionInvocation.
ActionProxy getProxy()
Get the ActionProxy holding this ActionInvocation
Result getResult()
If the ActionInvocation has been executed before and the Result is an instance of ActionChainResult, this method will walk down the chain of ActionChainResults until it finds a non-chain result, which will be returned.
String getResultCode()
Gets the result code returned from this ActionInvocation
ValueStack getStack()

String invoke()
Invokes the next step in processing this ActionInvocation.
String invokeActionOnly()
Invokes only the action (not interceptors or results).
boolean isExecuted()
阅读全文... 

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

我说愉快的五一啊
2008-05-03 12:04 am 作者:firepig

很怀恋7天的五一呀。。。

不过这个五一感觉过的比以往更有意义。

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

面向对象-面向职责
2008-04-30 12:35 am 作者:firepig

一些进来的学习心得,可能理解的不够透彻。不过随便写写,算是总结一下。不过感觉对oop还是有了更深的了解。

其实面向对象的内容不多,就三个名词,封装,继承,多态,但是要真正的弄清楚这些也不是一件容易的事情。面向对象的基本是封装,有了封装才有继承,有了继续才有多态。 对于面向对象的编程其实从另外一个角度也可以理解为面向职责的编程。就是有了这些思想之后,程序员开发的时候职责更加的明确了。每个人都有自己专注的任务,比如说可以让精通页面的人只做页面,精通业务逻辑的人只做业务,精通数据库的人只做数据库的操作。做业务的人可以不懂web得一些知识,甚至对数据库他也不需要去关注。  那就需要分层,分层从这个角度来说也是更好的体现出职责,当然从软件工程的概念来说是一个解耦的过程,也是一个可以更好的软件复用的过程,这也是软件开发这么多年来苦苦追求的。

分层有两种一种是学院派,一种是广义派的。对于学院派来说,是很严格的,上层只需要调用下面一层的接口。而下一层则完全不依赖于上一层,它更本不需要知道上面发生了什么事情,它只要做好自己的事情就可以了。  这样做的好处还有在项目更改的时候,你只需要改一层的代码,比如说持久层,因为它完全不依赖于上一层(一般是业务逻辑层)那么它的改动也就不会影响上面的层次,打个比方出于对市场的考虑,一个产品既要支持mysql又要支持oracle,那么对于上面的层次是不是根本就不需要改动。 除了解耦,这样最大的好处就改变了软件开发的工作发式和降低了维护的成本。以往的开发发式,比如说php,我们在做wordpressmu的二次开发的时候都是按模块的方式进行,一个人负责一个模块或者说功能点,从头到尾。而java ee中是用层的方式去分工的,当架构师把整个架构设计好之后,就可以很好的分工了,各自发挥自己的特长,而且是并发进行的,每个开发人员只要把自己的事做好,就跟前面说的一样。 那么还有什么好处呢,就是debug的时候了,这样很容易就可以找到bug。 当然这些是我理解的好处,对于javaee的妙处自然不是这些能概括的。

那么说说广义派吧,这个就没有学院派那么严格了,他允许跨层次的接口和少量的依赖。因为这也有他们的理由,他们的理由是一个特定的项目就有一个特定的环境,比如说我这个项目定了用mysql,那就没必要再去考虑别的数据库,等等。 因为我对这个学派不是很赞同,所以就不说这个了。

。。。。

现在每次写东西都是写了一半就不想写了。。 越写越发觉自己懂得东西太少了,理解的太太不够了。

这些天一直在理解oop,ioc,aop这样的一些原理。 也发了很多时间重新的看reflection这一块,整体上有一点认识,不过如果不用struts2,spring这样的框架,要怎样去自己实现这样的思想,还是有点晕,像依赖注入这样的东西,其实当系统足够复杂要是不用框架,要自己去实现是很难控制的。其实很多东西还是要理解的够透彻就行,比如说struts2确实很简单,如果只是会用的会而不去了解其背后的原理,那么项目中出现的一些怪异问题时候,就无法解决了,像那“神奇”的拦截器,不仅仅要会自己写一个拦截器还要理解它的运行机制等等。 不过现在能用好那些开源框架就可以了,其他的等用好了这些东西在考虑把。

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

mysql start service error
2008-04-28 1:40 am 作者:firepig

cannot create windows service for mysql.error:0

解决方法:

C:>sc delete mysql

[SC] DeleteService SUCCESS

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

给自己的建议
2008-04-25 12:35 am 作者:firepig

希望自己每天晚上可以抽出半个小时或者一个小时来看英文的技术文档。

android的学习要继续,不过目前可能要暂停一会,因为先要学别的东西。

然后呢,就是要合理的利用时间。

嗯。

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

累并快乐着
2008-04-22 10:36 pm 作者:firepig

我开始渐渐明白那个道理.

人的一生总是要有一段时间要很努力的去付出,很辛苦很辛苦的过着每一天.可是辛苦后的回报就是快乐和享受人生.你的快乐和享受的程度可以说是和你的辛苦成正比的. 所以不要担心你付出多少,因为你付出的越多得到的其实也就越多.

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

Android Architecture
2008-04-18 3:03 am 作者:firepig

system-architecture.jpg

推荐(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 帮助