﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-xiaodaoxiaodao——蓝小刀的自言自语-随笔分类-个人学习笔记</title><link>http://www.blogjava.net/xiaodaoxiaodao/category/20656.html</link><description>黑夜给了我寂寞的心情，我却用它来寻找爱情~~</description><language>zh-cn</language><lastBuildDate>Mon, 24 Sep 2007 01:52:33 GMT</lastBuildDate><pubDate>Mon, 24 Sep 2007 01:52:33 GMT</pubDate><ttl>60</ttl><item><title>关于项目框架设计的一点学习</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/08/04/134384.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Sat, 04 Aug 2007 04:09:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/08/04/134384.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/134384.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/08/04/134384.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/134384.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/134384.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 这两天又在接触一个新项目，对于如何设计一个项目的框架有了点概念，关于web项目（对于oa系统来说）的主体感觉比较需要设计的几部分为：<br><br>1．  页面模板定义：关于view层展示，无论对于top（顶层菜单）+left（左边树状菜单）+right（主体内容）结构还是left+right结构，都需要首先定制一些模板，如struts中可使用tiles定义。<br>2．  分页标签：自定义一个比较通用的分页标签或者使用一些框架中自带的（如struts-menu或者JSF中的t:dataScroller），不过比较好的做法是基于其源码编写自己的分页标签。<br>3．  DB设计：可使用Power Deisign等设计数据库表结构，产生相关的表。<br>4．  代码自动生成：编写代码生成脚本如build.xml文件的编写（根据DB生成代码，也可以忽略3，先建model，再从model生成代码和数据库schema），生成Struts、Spring、Hibernate相关文件。&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/08/04/134384.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/134384.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-08-04 12:09 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/08/04/134384.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts学习笔记之Action</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Sun, 10 Jun 2007 01:02:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/123141.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/123141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/123141.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 下面是Struts中的一些常用Action如DispatchAction/LookupDispatchAction/MappingDispatchAction/ForwardAction/IncludeAction的总结<br><br>1．DispatchAction extends BaseAction<br>一般的Action如<action path="/createUser" type="examples.UserAction">，在这里UserAction只需要继承父类（extends Action类），然后重写父类的execute方法，在execute中实现具体的控制转向。<br>对于同一个formbean上进行的新增、修改、删除等，我们需要分发不同的Action，这里有两种做法。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/123141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-06-10 09:02 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/10/123141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java对象初始化顺序</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/06/122383.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Wed, 06 Jun 2007 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/06/122383.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/122383.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/06/122383.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/122383.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/122383.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 由此可知当新建一java对象（上面main方法中new B()）时，它的内部初始化顺序为：<br>1．	父类静态成员和静态初始化块，按在代码中出现的顺序依次执行<br>2．	子类静态成员和静态初始化块，按在代码中出现的顺序依次执行<br>3．	父类实例成员和实例初始化块，按在代码中出现的顺序依次执行<br>4．	父类构造方法<br>5．	子类实例成员和实例初始化块，按在代码中出现的顺序依次执行<br>6．	子类构造方法<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/06/122383.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/122383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-06-06 15:59 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/06/06/122383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts学习笔记之ActionForm</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Thu, 31 May 2007 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/121264.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/121264.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/121264.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ActionForm中比较常用的两个方法是reset()和validator()：<br>// 恢复ActionForm属性的默认值，如把boolean型设为true/false，字符串设为null。<br>public void reset( ActionMapping mapping, HttpServletRequest request ) { }<br>// validate只检查数据格式和语法，不检查数据是否符合业务逻辑。<br>public ActionErrors validate( ActionMapping mapping, HttpServletRequest request ) { return (null); }<br>这两个方法的默认实现是不执行任何操作，我们可以重写这两个方法来实现相关逻辑。<br><br>注：对于每个request，控制器都会先调用ActionForm的reset()方法，然后表单数据组装到ActionForm中。如ActionForm在request范围内，那么对于每个新的request请求都会创建新的ActionForm实&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/121264.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-05-31 23:04 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/05/31/121264.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码学习之ActionServlet(二)</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Thu, 26 Apr 2007 04:37:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/113744.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/113744.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/113744.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: ④ 调用initChain(); 读取web.xml中命令链文件初始值chainConfig<br>protected String chainConfig = "org/apache/struts/chain/chain-config.xml"; <br>//④initChain();<br><br>// 如没有chainConfig参数，则使用默认"org/apache/struts/chain/chain-config.xml"<br>String value;<br>value = getServletConfig().getInitParameter("chainConfig");<br>if (value != null) {<br>    chainConfig = value;<br>}&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/113744.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-04-26 12:37 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113744.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts源码学习之ActionServlet(一)</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Thu, 26 Apr 2007 00:24:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/113666.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/113666.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/113666.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Struts源码最新版本为struts-1.3.8-src.zip （12-Mar-2007 00:06）<br>学习笔记使用struts-1.3.5-src.zip 的源码，<br>下载地址：http://archive.apache.org/dist/struts/source/<br><br>2．	下面研究一下struts的源码，由于servlet设置了load-on-startup，所以tomcat启动时会加载ActionServlet，也就是会执行ActionServlet中的init()方法，Struts 的初始化实现就是在这里实现的。<br><br>注：由于servlet的生命周期为 web容器加载和实例化类/init()初始化/service()请求处理/destroy()四个阶段，而init()方法在tomcat启动后只执行一次，所以如果想在tomcat启动后用debug模式查看ActionServlet中init()方法的执行，可以把上面的<load-on-startup>2</load-on-startup>注释掉就可以了（不过真正开发时还是需要的）。&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/113666.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-04-26 08:24 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/04/26/113666.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Struts学习笔记之MVC模式</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Mon, 26 Mar 2007 13:05:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/106522.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/106522.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/106522.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: View：由JSP、Struts自定义标记库、资源文件（MessageResources.properties）共同组成，通过ActionForm实现JSP表单的封装，并映射到Model部分中JavaBean的相应属性中，完成用户数据的封装。<br><br>注意：关于ActionForm，有些人认为它属于Model层（仁者见仁，智者见智）。<br>事实上它不是Model，真正的Model应该是一个封装了业务逻辑的的对象。<br>而ActionForm仅仅是一个form-bean，封装了用户提交的表单数据（物理View），可以在其中进行一些非业务逻辑的验证，并没有真正的映射到模型数据，因为与层的关系比较密切，所以实际上它应该算是View层（逻辑View）。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/106522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-03-26 21:05 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/26/106522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Axis学习笔记</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/24/106122.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Sat, 24 Mar 2007 14:10:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/24/106122.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/106122.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/24/106122.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/106122.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/106122.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 实例（参考了axis-bin-1_4.zip\axis-1_4\samples\userguide中的例子）使用版本为Axis1.4，axis-bin-1_4.zip下载地址：<br>http://www.apache.org/dist/ws/axis/1_4/<br>目录说明如下：<br>jws：存放*.jws文件<br>src：java源码<br>WEB-INF/classes：java编译后的class文件<br>WEB-INF/lib：需要用到的jar包<br>Axis支持三种web service开发方式，分别为:<br>1、Dynamic Invocation Interface ( DII)<br>2、Dynamic Proxy方式<br>3、Stubs方式&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/24/106122.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/106122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-03-24 22:10 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/24/106122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SCJP1.4 and SCWCD1.4学习笔记整理下载</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/14/103863.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Wed, 14 Mar 2007 11:25:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/14/103863.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/103863.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/14/103863.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/103863.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/103863.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: SCJP 1.4  score：81%<br>SCWCD 1.4 score：91%<br><br>下载地址：<br>蓝小刀的学习笔记_SCJP1.4<br>蓝小刀的学习笔记_SCWCD1.4&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/14/103863.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/103863.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-03-14 19:25 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/03/14/103863.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSP tag学习</title><link>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/01/05/103438.html</link><dc:creator>蓝小刀</dc:creator><author>蓝小刀</author><pubDate>Fri, 05 Jan 2007 08:52:00 GMT</pubDate><guid>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/01/05/103438.html</guid><wfw:comment>http://www.blogjava.net/xiaodaoxiaodao/comments/103438.html</wfw:comment><comments>http://www.blogjava.net/xiaodaoxiaodao/archive/2007/01/05/103438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/xiaodaoxiaodao/comments/commentRss/103438.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/xiaodaoxiaodao/services/trackbacks/103438.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在以上接口和类中，定义了一些静态常量，如下：<br>Tag中定义：<br>SKIP_BODY = 0;          // 不处理标签体，直接调用doEndTag()方法<br>EVAL_BODY_INCLUDE = 1;   // 解析标签体,但绕过doInitBody()和setBodyContent()方法<br>SKIP_PAGE = 5;          // 不解析标签后面的JSP内容<br>EVAL_PAGE = 6;          // 解析标签后,继续解析标签后面的JSP内容<br><br>IterationTag中定义：<br>EVAL_BODY_AGAIN = 2;<br>BodyTag中定义：<br>EVAL_BODY_TAG = 2;         // deprecated<br>EVAL_BODY_BUFFERED = 2;    //&nbsp;&nbsp;<a href='http://www.blogjava.net/xiaodaoxiaodao/archive/2007/01/05/103438.html'>阅读全文</a><img src ="http://www.blogjava.net/xiaodaoxiaodao/aggbug/103438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/xiaodaoxiaodao/" target="_blank">蓝小刀</a> 2007-01-05 16:52 <a href="http://www.blogjava.net/xiaodaoxiaodao/archive/2007/01/05/103438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>