﻿<?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-daniel</title><link>http://www.blogjava.net/191499719/</link><description>Daniel  blog----&gt; 


                         有目标就意味着心中有一个梦想</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 06:05:25 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 06:05:25 GMT</pubDate><ttl>60</ttl><item><title>FreeMarker文档</title><link>http://www.blogjava.net/191499719/archive/2009/11/17/302715.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 17 Nov 2009 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2009/11/17/302715.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/302715.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2009/11/17/302715.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/302715.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/302715.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FreeMarker是一个模板引擎，一个基于模板生成文本输出的通用工具，使用纯Java编写                        l&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FreeMarker被设计用来生成HTML Web页面，特...&nbsp;&nbsp;<a href='http://www.blogjava.net/191499719/archive/2009/11/17/302715.html'>阅读全文</a><img src ="http://www.blogjava.net/191499719/aggbug/302715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2009-11-17 15:39 <a href="http://www.blogjava.net/191499719/archive/2009/11/17/302715.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>俞敏洪与大学生对话：“先就业再职业再事业”</title><link>http://www.blogjava.net/191499719/archive/2009/09/03/293771.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Thu, 03 Sep 2009 09:40:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2009/09/03/293771.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/293771.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2009/09/03/293771.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/293771.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/293771.html</trackback:ping><description><![CDATA[<p>俞敏洪与大学生对话：&#8220;先就业再职业再事业&#8221;</p>
<p>&nbsp;大学生择业就业该有怎样的心态?听俞敏洪与大学生展开对话——&#8220;先就业再职业再事业&#8221;</p>
<p>&nbsp;</p>
<p>　　他们或者即将毕业，正忙着找工作;或者已经毕业，就业出现了难题——今年，全国有611万名大学毕业生将走向社会，经济不景气的现实，无疑使他们的就业道路出</p>
<p>现了诸多障碍。新东方教育科技集团董事长兼总裁俞敏洪最近与大学生展开了一场对话，通过大学生就业、择业中的热门话题，他向人们传递着诸多人生经验。或许，这</p>
<p>对更多大学生会有启发。</p>
<p>&nbsp;</p>
<p>　　关于面试：&#8220;面试中愿意弯腰捡两张纸的细节，摆明了他的踏实认真和仔细，老板是不能不用他的&#8221;</p>
<p>&nbsp;</p>
<p>　　学生：我在就业时发现一个问题，就是去面试不知道如何展示自己。</p>
<p>　　俞敏洪：在面试以前接受一些面试技巧的培训，这是必要的。比如说如何面对老板，怎样做到有问必答，答得恰到好处，包括眼神脸色到底应该怎么展示。</p>
<p>　　但这只是一个表面上的东西。真正实在的内核，是把你真实的自我展现出来。曾经有家大公司面试时，故意在地上放两张纸，所有的学生进去面试，都不去捡那两张</p>
<p>纸，夸夸其谈说自己有什么才能。结果最后走进去一个学生，一句话没说，把两张纸捡起来放在总经理的桌上，然后才开始回答总经理的问题。结果总经理什么问题都没</p>
<p>问，说&#8220;我录取的就是你&#8221;。为什么?细节!愿意弯腰捡两张纸这个细节，就摆明了他做事的踏实认真和仔细，当你的品德和特质露出来的时候，老板是不能不用你的。</p>
<p>　　学生：我相信您也面试过很多本科生，您最不满意他们哪一点?</p>
<p>　　俞敏洪：现在我们遇到的麻烦，就是年轻人心态浮躁。看了碗里的、想着锅里的。我最烦听到的，就是有人来向我抱怨，说这个社会对他如此地不公平。其实，人的</p>
<p>出身由不得你自己选择，但人生的终点，是由你们自己选择的。人生不是百米赛跑，跑的是一辈子。所以，我完全不在乎现在你钱多我钱少，你有社会地位我没有社会地</p>
<p>位。钱和社会地位是你可以争取来的吗?福布斯榜上排着的那几百号人，我曾经查过，百分之六七十来自农村，来自身无分文的家庭。任何一个只要把社会和别人当做自</p>
<p>己敌人、当做自己生活不幸来源的人，他的人生一辈子都不会幸福，也不会成功。任何一个认为自己才是自己的主人，在社会中应该靠自己能力为自己争得一席之地的人</p>
<p>，才能够把事情做成功。</p>
<p>&nbsp;</p>
<p>　　关于第一份工作：&#8220;只顾耕耘不问收获是做第一份工作时最重要的心态&#8221;</p>
<p>&nbsp;</p>
<p>　　学生：即将毕业的一个大学生，应该以怎样的心态来面对第一份工作的成败?</p>
<p>　　俞敏洪：你面对第一份工作时，就不要去想成败，而是应该去想我怎么样全力以赴地把这份工作做好。你全力以赴以后做成功了，那表明你做这件事情是合适的。如</p>
<p>果说全力以赴以后依然做失败了，也很正常，因为你没有工作经验，也许这份工作不适合你做。只顾耕耘不回收获，是做第一份工作时最重要的心态。</p>
<p>　　现在这一代年轻人，大部分来自独生子女家庭，从小到大得到了父母较多的呵护。一旦面临找不到工作之类的考验，心里会有很多失落感。我想告诉大家几个要点。</p>
<p>　　第一，苦难让人成就自己;第二，你失去一样东西的同时也得到了另外一样东西，这就是得失。所以，我常常说失业能够知道生活的艰辛，失恋能够知道感情的珍贵</p>
<p>。</p>
<p>　　其实，我最担心的不是大学生的就业，而是大学生的心智和知识结构。我觉得浮躁本身不算一件坏事，为什么?因为只有一个想要往前走的国家和人，才会浮躁。浮</p>
<p>躁表明我们是充满了生命活力的标志。不浮躁死水一潭，就表明社会结构秩序已经全部完成，甚至带有某种意义上的僵化。但是大学生浮躁不是一个好事，因为，4年大</p>
<p>学生活中，大学生除了为工作做好准备外，还应该得到心灵净化和心灵提升。</p>
<p>　　学生：相对于本科毕业的时候，研究生毕业时肯定对职业的期望值更高，很可能第一份工作与内心期望之间的落差很大。对于这种情况您有什么建议?</p>
<p>　　俞敏洪：我每年都要面试几百个本科生。坦率地说，其中大部分人表现得&#8220;眼高手低&#8221;，恨不得上来就当总经理，恨不得上来给他的一份工作，就是全世界工资最高</p>
<p>的。这中间有很多爱面子的成分。其实，当一个人为别人活着时，就非常麻烦了。因为每个人的标准不一样，如果不坚持自己的追求，你的尊严和自尊同样得不到维护。</p>
<p>　　我在面试时，有时会试着问：&#8220;同学，你想要的工作，我这儿都没有了，但是有两个卫生间没人打扫，你愿意不愿意干?&#8221;几乎不会有学生说愿意，实际上他在拒绝</p>
<p>扫两个卫生间的时候，丢失了一个非常重要的机会。我让一个大学毕业生去打扫厕所，很明显是对你的考验。你在打扫卫生的时候，我绝对会关注你的一举一动。你的表</p>
<p>现是不是符合那种正常的坦然接受一份工作的心态?当你真的把两个卫生间打扫得很干净，你想我能让你一辈子打扫卫生间吗?至少我给你增加工资，我给你打扫四个卫生</p>
<p>间;当你把四个卫生间打扫干净以后，我会考虑，是不是把所有打扫卫生间的后勤人员都给你管理，你不是很自然变成管理者了吗?当你把这些打扫卫生间的人员管理得井</p>
<p>井有条，整个公司的环境因为你的管理变得赏心悦目，我不把你提到后勤主任这个位置上我提谁?你如果又干得非常出色的话，我不把你送到哈佛大学去读MBA我送谁去?</p>
<p>当我把你送到哈佛大学你MBA学完了，回来不当总裁谁当?</p>
<p>&nbsp;</p>
<p>　　关于专业：&#8220;就业、职业、事业做好了，失业就永远找不到你&#8221;</p>
<p>&nbsp;</p>
<p>　　学生：我本科是武汉大学国学实验班毕业，是一个非常非常冷的专业。</p>
<p>　　俞敏洪：你喜欢不喜欢你这个国学专业?</p>
<p>　　学生：我喜欢它，在读书的过程中我觉得自己非常快乐。</p>
<p>　　俞敏洪：你现在面临的问题是学这个东西找不到工作?</p>
<p>　　学生：对，我们的硕士和博士就业形势都不是很好，您对我们的建议是什么?您怎样看待这一问题?</p>
<p>　　俞敏洪：如果说实在找不到工作，你必须要有一个另外能找到工作的技能，假如说你在学国学的同时，你的英文水平很好的话就可以去当英文老师。</p>
<p>　　你现在的问题是你对国学感兴趣，但是你需要有一个养活自己的技能，大学生毕业以后首先就是要工作。我把它叫做先就业再职业再事业!先就业就是赶快先找一份</p>
<p>工作不要父母养活了。所谓的职业就是一辈子我想做的，当你做到一定程度，比如说你做了会计，最后自己出来开一个会计师事务所，这就变成你的事业了。你把前面的</p>
<p>就业、职业和事业做好了，失业就永远找不到你。</p>
<p>　　现在的大学生，最关键的问题就是自己所学的专业和未来工作不对接。解决的方法呢，第一就是大学生学专业的时候，和未来工作对接要思考得更多，尽可能在未来</p>
<p>找工作的时候，能够把自己在本科所学的专业用上。第二个情况，中国经济的发展速度比较快，各种中小企业和大型企业都在不断成长，招人的需求还是比较旺盛的。我</p>
<p>建议，大学生要有一个比较切实的心态，先找到工作再谋求发展，最后再去寻求自己的事业。</p>
<p>　　学生：我是去年毕业的，现在也在做传媒。很多人失业了或者说是没有找到工作会选择回学校继续读书，您觉得合适吗?</p>
<p>　　俞敏洪：这是一种逃避。已经找到了工作，在工作中有很多心得体会如果自己喜欢这个工作，发现自己专业知识和综合能力还不够，这个时候，可以继续回去读书。</p>
<p>大家进入社会以后一定要学会锻炼自己强大的心理承受能力，一堆面粉放在案板上，你用手去一拍这堆面粉就散了，这就是我们现在的心理承受能力，你把它加点水揉一</p>
<p>下，你再拍就不一定散了，但是还是一堆很松软的面粉，如果说你再不断地给它加水，把它揉到最后，就变成了一个面团，你再怎么拍都不散了。你继续给它揉，它就不</p>
<p>仅仅是一堆面团了，你即使用手给它拉，它也不断，这就变成拉面了。人的神经承受能力一定要达到这种状态，你才能去融入社会，在社会中间奋斗。遇到一点点事情就</p>
<p>拍案而起的人，肯定是没有度量和心胸的人，找工作一次被拒绝就不找了，那你说你能找到第二个工作吗?</p>
<p>&nbsp;</p>
<p>　　关于职业规划：&#8220;人生用六个字来表达，第一个叫经历，第二个叫体验，第三个叫升华&#8221;</p>
<p>&nbsp;</p>
<p>　　学生：有数据显示：2/3的大学生没有自己准确的奋斗目标和职业规划。您是如何规划自己的人生达到事业的巅峰的?</p>
<p>　　俞敏洪：对于现代大学生来说，确定自己一辈子事业的年龄是从20岁到30岁，所以中间可以做无数调整。我们现在很多人，为什么每天干活没劲呢?因为工作本身不</p>
<p>是一个目标。有的人把工作本身变成了一个自己每个月能够拿点工资，每天来上八小时班，完成任务就算完了的一件事情。如果这样的话，你的生命也同样失去了目标。</p>
<p>有目标就意味着心中有一个梦想，想去实现。</p>
<p>　　我觉得人生用6个字来表达比较恰当。第一个叫做经历，第二个叫做体验，第三个叫做升华。一辈子有很多不同的活法，你可以很懒散地过一辈子，什么也不做地活</p>
<p>下去，也可以做出惊天动地的事业来。你可以一辈子待在一个城市里，也可以一辈子走遍全世界。所有这一切的决定，全是来自你自己的这颗心。因为人是随着心来动的</p>
<p>，你心想走到哪里，你人就可以走到哪里。</p>
<p>　　大多数人一辈子只生活在一个地方，生活在一种习惯中间，生活在一种思想的禁锢之下，而没有任何创新，没有任何创意，没有任何激发自己生命的那种动感和令自</p>
<p>己感动的生活状态。其实仔细想想，你找不到工作是一件幸运的事情，因为你的生命得到了甜酸苦辣的体验。未来你找到一份工作的时候，你知道这份工作是多么的来之</p>
<p>不易、多么值得你去珍惜。如果我们有了这样一种心态，你找得到工作、找不到工作又有什么关系呢?</p>
<p>　　学生：我去年夏天毕业时，选择了一家电视制作公司。这个工作不是待遇最好的，但的确是我当时最喜欢的。但是这份工作我只做了四个月，就跳槽去了另外一家公</p>
<p>司。这是一个比较著名的韩国企业。他们当时给的职位、待遇更好，所以我受到了诱惑。可是去了之后我发现，我完全不能胜任市场部经理这个工作，最后辞职了。</p>
<p>　　俞敏洪：你是否问过自己，你到底喜欢做什么?当然第二份工作作为一种尝试，虽然最后你发现不适合，但其实是一种收获。我曾经遇到一个学生，她本来是商学院</p>
<p>毕业的，也能找到这方面的工作，但是她偏偏对电视节目主持人特别感兴趣，所以她就申请去为天津电视台制作组的人拎包，扛机器，帮着收拾东西，而且没有工资。她</p>
<p>的工作心态非常好也非常努力。一年后，大家觉得这小姑娘不错，就开始给她开工资了。后来又发现这个小姑娘说话也挺到位，所以就在小的新闻节目采访时候让她出镜</p>
<p>，后来她就变成了天津电视台很好的节目主持人之一。</p>
<p>　　当你决定了一辈子干什么以后，你就要坚定不移地干下去，就不要随便地换。你可以像一条河流一样越流越宽阔，但是千万不要再想去变成另外一条河流或者变成一</p>
<p>座高山。有了这样的一个目标以后，你生命就不会摇晃，这样你才能够做成事情。伟大与平凡的不同之处就在于，一个平凡的人每天过着琐碎的生活，但是他把琐碎堆砌</p>
<p>出来，还是一堆琐碎的生命。所谓伟大的人，是把一堆琐碎的事情，通过一个伟大的目标，每天积累起来以后，变成一个伟大的事业。 </p>
<p>　　俞敏洪感言</p>
<p>　　●每一位同学在大学的时候要做的四件事情：</p>
<p>　　第一就是一定要学到很必要的知识;第二要学会交到很好的朋友;第三如果有可能的话，体验一下爱情;第四要为未来就业做好准备。</p>
<p>　　●摔倒了10次就再也不愿爬起来，他就永远是失败。但是，他哪怕是摔倒了一万次，第一万零一次继续站起来往前走，实在站不起来了，爬也要爬着往前走，这就叫</p>
<p>成功。</p>
<p>　　●这个世界上失去什么东西都不可怕，唯一可怕的是失去你的勇气，只要你坚韧不拔地奋斗，只要你眼睛看向未来，生命就永远属于你，生命的辉煌也一定会属于你</p>
<p>。</p>
<p>　　●凡是想要一下子把一件事情干成的人，就算他干成这件事情也没有基础，因为这等于是沙滩上造房子，最后一定会倒塌。只有慢慢地一步一步把事情干成，每一步</p>
<p>都给自己打下坚实的基础，每一步都给自己一个良好的交代，再向未来更高一步去走的人，才能够把事情真正地做成功。</p>
<p>　　●人生的道路，其实是很不平坦的，靠你一个人绝对不行的。这个世界上只有你跟别人在一起，为了同一个目标，一起做事情的时候，才能把这件事情做成。一个人</p>
<p>的力量很有限，但是一群人的力量是无限的。当五个手指伸出来的时候，它是五个指头。但是当你把五个手指握起来的时候，它是一个拳头。跟别人团结在一起，形成&#8220;</p>
<p>我们&#8221;，你才能够把事情做成功!</p>
<p>&nbsp;</p>
<img src ="http://www.blogjava.net/191499719/aggbug/293771.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2009-09-03 17:40 <a href="http://www.blogjava.net/191499719/archive/2009/09/03/293771.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java类加载机制</title><link>http://www.blogjava.net/191499719/archive/2008/12/02/244037.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 02 Dec 2008 15:14:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/12/02/244037.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/244037.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/12/02/244037.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/244037.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/244037.html</trackback:ping><description><![CDATA[一、在JDK1.2以后，类加载是通过委托来完成的，这意味着如果 ClassLoader 不能找到类，它会请求父代 ClassLoader 来执行此项任务，所有 ClassLoaders 的根是系统 ClassLoader，它会以缺省方式装入类 -- 即，从本地文件系统。今天我们就来探讨一下在jvm中这些机制是怎样运行的。让我们假设有一个class字节码文件（比如Hello.class文件），那么在应用程序中，他是如何被加载进来，并形成一个类对象的呢？我们这篇文章的目的就是为了解释这个问题。<br />
<br />
　　在Java.lang包里有个ClassLoader类，ClassLoader 的基本目标是对类的请求提供服务。当 JVM 需要使用类时，它根据名称向 ClassLoader 请求这个类，然后 ClassLoader 试图返回一个表示这个类的 Class 对象。通过覆盖对应于这个过程不同阶段的方法，可以创建定制的 ClassLoader。其中有个loadClass(String name, boolean resolve)方法，该方法为ClassLoader的入口点，在jdk1.2以后，loadClass方法将缺省调用findClass方法，详细内容可以参考API文档，我们编写的ClassLoader主要就是为了覆盖以上两个方法。回到我们刚才的问题，怎样读进字节码文件，并把它构成一个类对象呢？在ClassLoader里有个方法，Class defineClass(String name, byte[] b, int off, int len)，答案就在这里了，我们根据把class字节码文件（如Hello.class)读进一个字节数组里，byte[] b,并把它转化为Class对象，而这些数据可以来源于文件，网络等，神奇吧:)<br />
<br />
　　defineClass管理 JVM 的许多复杂、神秘和倚赖于实现的方面 -- 它把字节码分析成运行时数据结构、校验有效性等等。不必担心，您无需亲自编写它。事实上，即使您想要这么做也不能覆盖它，因为它已被标记成最终的。<br />
<br />
　　其他一些方法：<br />
<br />
　　findSystemClass方法：从本地文件系统装入文件。它在本地文件系统中寻找类文件，如果存在，就使用 defineClass 将原始字节转换成 Class 对象，以将该文件转换成类。<br />
<br />
　　findClass方法：jdk1.2以后loadClass 的缺省实现调用这个新方法。findClass 的用途包含您的 ClassLoader 的所有特殊代码，而无需要复制其它代码（例如，当专门的方法失败时，调用系统 ClassLoader）。 <br />
<br />
　　getSystemClassLoader： 如果覆盖 findClass 或 loadClass，getSystemClassLoader 使您能以实际 ClassLoader 对象来访问系统 ClassLoader（而不是固定的从 findSystemClass 调用它）。<br />
<br />
　　getParent：为了将类请求委托给父代 ClassLoader，这个新方法允许 ClassLoader 获取它的父代 ClassLoader。当使用特殊方法，定制的 ClassLoader 不能找到类时，可以使用这种方法。<br />
<br />
　　resolveClass: 可以不完全地（不带解析）装入类，也可以完全地（带解析）装入类。当编写我们自己的 loadClass 时，可以调用 resolveClass，这取决于 loadClass 的 resolve 参数的值。<br />
findLoadedClass:充当一个缓存,当请求 loadClass 装入类时，它调用该方法来查看 ClassLoader 是否已装入这个类，这样可以避免重新装入已存在类所造成的麻烦。应首先调用该方法。 <br />
<br />
　　二、工作流程：<br />
<br />
　　1)调用 findLoadedClass(String) 来查看是否存在已装入的类,如果没有，那么采用那种特殊的神奇方式来获取原始字节。<br />
<br />
　　2）通过父类ClassLoader调用loadClass方法，如果父类ClassLoader是null，那么按缺省方式装入类，即系统ClassLoader。<br />
<br />
　　3）调用findClass(String)去查找类并获取类；<br />
<br />
　　4）如果loadClass 的 resolve 参数的值为true，那么调用 resolveClass 解析 Class 对象.<br />
<br />
　　5）如果还没有类，返回 ClassNotFoundException。<br />
<br />
　　6）否则，将类返回给调用程序。<br />
<br />
　　三、一个实现了ClassLoader的例子：<br />
<br />
/**<br />
*CompilingClassLoader.java<br />
*Copyright 2005-2-12<br />
*/<br />
import java.io.*;<br />
<br />
public class CompilingClassLoader extends ClassLoader{<br />
//读取一个文件的内容<br />
private byte[] getBytes(String filename) throws IOException{<br />
　File file=new File(filename);<br />
　long len=file.length();<br />
　byte[] raw=new byte[(int)len];<br />
<br />
　FileInputStream fin=new FileInputStream(file);<br />
<br />
　int r=fin.read(raw);<br />
　if(r!=len) throw new IOException("Can't read all,"+r+"!="+len);<br />
<br />
　fin.close();<br />
<br />
　return raw;<br />
}<br />
<br />
private boolean compile(String javaFile) throws IOException{<br />
　System.out.println("CCL:Compiling "+javaFile+"...");<br />
　//调用系统的javac命令<br />
　Process p=Runtime.getRuntime().exec("javac "+javaFile);<br />
　try{<br />
　　//其他线程都等待这个线程完成<br />
　　p.waitFor();<br />
　}catch(InterruptedException ie){<br />
　　System.out.println(ie);<br />
　}<br />
　int ret=p.exitValue();<br />
<br />
　return ret==0;<br />
}<br />
<br />
public Class loadClass(String name,boolean resovle) throws ClassNotFoundException{<br />
　Class clas=null;<br />
<br />
　clas=findLoadedClass(name);<br />
<br />
　//这里说明了包的表示<br />
　String fileStub=name.replace('.','/');<br />
<br />
　String javaFilename=fileStub+".java";<br />
　String classFilename=fileStub+".class";<br />
<br />
　File javaFile=new File(javaFilename);<br />
　File classFile=new File(classFilename);<br />
<br />
　//如果存在class文件就不编译<br />
　if(javaFile.exists()&amp;&amp;(!classFile.exists()||javaFile.lastModified()&gt;classFile.lastModified())){<br />
　　try{<br />
　　　if(!compile(javaFilename)||!classFile.exists()){<br />
　　　　throw new ClassNotFoundException("ClassNotFoundExcetpion:"+javaFilename);<br />
　　　}<br />
　　}catch(IOException ie){<br />
　　　throw new ClassNotFoundException(ie.toString());<br />
　　}<br />
　}<br />
<br />
　try{<br />
　　byte[] raw=getBytes(classFilename);<br />
<br />
　　//通过读入数据来构造一个类结构，这是核心<br />
　　clas=defineClass(name,raw,0,raw.length);<br />
　}catch(IOException ie){<br />
　　//<br />
　}<br />
<br />
　if(clas==null){<br />
　　clas=findSystemClass(name);<br />
　}<br />
<br />
　System.out.println("findSystemClass:"+clas);<br />
<br />
　if(resovle &amp;&amp; clas!=null){<br />
　　resolveClass(clas);<br />
　}<br />
<br />
　if(clas==null){<br />
　　throw new ClassNotFoundException(name);<br />
　}<br />
<br />
　return clas;<br />
}<br />
}<br />
测试该loader：<br />
/**<br />
*TestRun.java<br />
*Copyright 2005-2-11<br />
*/<br />
import java.lang.reflect.*;<br />
<br />
public class TestRun{<br />
　public static void main(String[] args) throws Exception{<br />
　　String progClass=args[0];<br />
<br />
　　String progArgs[]=new String[args.length-1];<br />
　　System.arraycopy(args,1,progArgs,0,progArgs.length);<br />
<br />
　　CompilingClassLoader ccl=new CompilingClassLoader();<br />
<br />
　　Class clas=ccl.loadClass(progClass);<br />
<br />
　　//返回一个class的type<br />
　　Class[] mainArgType={(new String[0]).getClass()};<br />
　　Method main=clas.getMethod("main",mainArgType);<br />
<br />
　　Object argsArray[]={progArgs};<br />
<br />
　　main.invoke(null,argsArray);<br />
<br />
　}<br />
} <br />
<br />
　　以上的核心内容已经编写完了，编译后，我们得到两个文件：<br />
<br />
CompilingClassLoader.class,TestRun.class<br />
<br />
　　四、编写一个例子，然后运行我们的ClassLoader<br />
<br />
/**<br />
*Hello.java<br />
*/<br />
public class Hello{<br />
　public static void main(String[] args){<br />
　　if(args.length!=1){<br />
　　　System.err.println("Error,exit!");<br />
　　　System.exit(1); <br />
　　}<br />
　　String name=args[0];<br />
　　System.out.println("Hello,"+name);<br />
　}<br />
}&nbsp; <br />
<img src ="http://www.blogjava.net/191499719/aggbug/244037.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-12-02 23:14 <a href="http://www.blogjava.net/191499719/archive/2008/12/02/244037.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>男生泡MM的话经典,女生回答的更是绝</title><link>http://www.blogjava.net/191499719/archive/2008/09/02/226275.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 02 Sep 2008 01:57:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/09/02/226275.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/226275.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/09/02/226275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/226275.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/226275.html</trackback:ping><description><![CDATA[<font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;我可以向你问路吗？&#8221;</font><wbr> <wbr><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;到那里？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;到你心里&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;抱歉，此路不通&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="display: inline-block; filter: glow(color=#D3F1FD,strength=3); color: #ffffff"></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;你的腿一定很累吧!&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;为什么？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;因为你在我脑海中跑了一整天&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;我觉得还行，因为你的脑子实在是太小了&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="line-height: 1.3em" face="楷体_GB2312"><u><wbr><font style="font-size: large; line-height: 1.3em"></font><wbr></u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：(看着她衬衫的标签)</font><wbr>&nbsp;&nbsp; </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;你在做什么？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;想知道你是不是天堂制造的&#8221;</font><wbr> 　　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;难道你是地狱出品？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="line-height: 1.3em" face="楷体_GB2312"><u><wbr><font style="font-size: large; line-height: 1.3em"></font><wbr></u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;我今天很不顺利，看见漂亮女生微笑</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">会让我心情好一点，你可以为我笑一下吗？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;你想让我今天也不顺利吗？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="display: inline-block; filter: glow(color=#D3F1FD,strength=3); color: #ffffff"></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;抱歉，我是艺术家，凝视美女是我的工作&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;抱歉，我是饲养员，被别人看着我会很不舒服&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="line-height: 1.3em" face="楷体_GB2312"><u><wbr><font style="font-size: large; line-height: 1.3em"><font style="line-height: 1.3em" color="#ff00ff">　 </font><wbr></font><wbr></u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;小姐可以借我五元吗？&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;你要做啥？？&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;我要打电话给我妈说我今天看到了一个绝世大美女。&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;很抱歉我不能借给你。&#8221;</font><wbr> 　　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;为什么。&#8221;</font><wbr> 　　 </u><wbr></font><wbr><br />
<font style="font-size: large; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;因为我要打电话到医院，说自己被一个青蛙吓到了。&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="line-height: 1.3em" face="楷体_GB2312"><u><wbr><font style="font-size: medium; line-height: 1.3em"><font style="line-height: 1.3em" color="#ff00ff"><font style="font-size: large; line-height: 1.3em"><font style="line-height: 1.3em" color="#ff00ff">　</font><wbr></font><wbr> </font><wbr></font><wbr></u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;今天的雨真大。&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;是啊。&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;那是因为老天对着你流口水。&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;这么说刚才刮的那阵风是老天在对你放P了？&#8221;</font><wbr> </u><wbr></font><wbr><br />
<br />
<br />
<font style="line-height: 1.3em" face="楷体_GB2312"><u><wbr><font style="font-size: medium; line-height: 1.3em"></font><wbr></u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;相信我&#8230;&#8230;我会让你成为世界上第二幸福的人!&#8221;</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;为什么不是第一啊&#8230;&#8230;&#8221;(装可爱貌)</font><wbr> 　　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;有了你&#8230;&#8230;我就是最幸福的人!&#8221;(浅浅的微笑)</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;我想我很快就能成为世界第一幸福的人了。&#8221;(遐想状)</font><wbr> 　 </u><wbr></font><wbr><br />
<font style="font-size: medium; line-height: 1.3em" face="楷体_GB2312" color="#ff00ff"><u><wbr>　&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">男：&#8220;为什么？&#8221;(疑惑)</font><wbr> 　　 </u><wbr></font><wbr><br />
<font style="line-height: 1.3em" face="楷体_GB2312"><u><wbr><font style="font-size: medium; line-height: 1.3em"><font style="line-height: 1.3em" color="#ff00ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font style="display: inline-block; filter: glow(color=#BC8CBF,strength=3); color: #ffffff">女：&#8220;因为我就要摆脱你的纠缠了。&#8221;(大步离开) </font></font></font></u></font>
<img src ="http://www.blogjava.net/191499719/aggbug/226275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-09-02 09:57 <a href="http://www.blogjava.net/191499719/archive/2008/09/02/226275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts 中使用Tiles</title><link>http://www.blogjava.net/191499719/archive/2008/09/02/226274.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 02 Sep 2008 01:56:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/09/02/226274.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/226274.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/09/02/226274.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/226274.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/226274.html</trackback:ping><description><![CDATA[<p>Struts的tiles<br />
&nbsp;&nbsp; 1.在使用Plugin加载Tiles插件，在Struts-config.xml中配置<br />
&nbsp;&nbsp; &lt;plug-in className="org.apache.struts.tiles.TilesPlugin"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set-property value="/WEB-INF/mytiles.xml" property="definitions-config" /&gt;<br />
&nbsp;&nbsp; &lt;plug-in&gt;<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 2。定义一个模板文件名为:layout.jsp,如：<br />
&nbsp;&nbsp; &lt;%@ taglib prefix="tiles" rui="/WEB-INF/struts-tiles.tld" %&gt;<br />
&nbsp;&nbsp; &lt;%@ page language="java" import ="java.util.*" pageEncoding="utf-8" %&gt;<br />
&nbsp;&nbsp; &lt;%<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String path=request.getContextPath();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String basePath=request.getScheme()+"//"+request.getServerName()+":"+request.getServerPort()+path+"/"; <br />
&nbsp;&nbsp; %&gt;</p>
<p>&nbsp;&nbsp; &lt;html&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;body&gt;&lt;/body&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;body&gt;<br />
&nbsp;&nbsp; &lt;tiles:insert name="main"&gt;&lt;/tiles:insert&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tiles:getAsString name="title"&gt;&lt;/tiles:getAsString&gt; //直接取title属性的value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tiles:insert name="content"&gt;&lt;/tiles:insert&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tiles:insert name="footer"&gt;&lt;/tiles:insert&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/body&gt;<br />
&nbsp;&nbsp; &lt;/html&gt;<br />
&nbsp;&nbsp;&nbsp; 其他页面<br />
&nbsp;&nbsp;&nbsp; main.jsp&nbsp; 这是主页面<br />
&nbsp;&nbsp;&nbsp; header.jsp&nbsp; 这是标题<br />
&nbsp;&nbsp;&nbsp; footer.jsp&nbsp; 这是尾<br />
&nbsp;&nbsp;&nbsp; content1.jsp 这是内容one<br />
&nbsp;&nbsp;&nbsp; content2.jsp 这是内容two</p>
<p>&nbsp;&nbsp; 3.定义一个tiles配置文件:名称mytiles.xml<br />
&nbsp;&nbsp;&nbsp; &lt;?xml version="1.0" encoding="utf-8"?&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;!DOCTYPE tiles-definitions PUBLIC<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"&gt;<br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;tiles-definitions&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;definition name="page1" path="/layout.jsp" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;put name="main" value="main.jsp" &gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;put name="title" value="中华人民共和国"&gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;put name="content" value="content1.jsp"&gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;put name="footer"&nbsp; value="footer.jsp" &gt;&lt;/put&gt;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/definition&gt;</p>
<p>&nbsp;&lt;definition name="page2" path="/layout.jsp" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;put name="main" vlaue="main.jsp"&gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;put name="title" value="你好&#183;中国"&gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;put name="content" value="content1.jsp"&gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;put name="footer" value="footer.jsp"&gt;&lt;/put&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/tiles-definitions&gt; </p>
<p>&nbsp;&nbsp;&nbsp; 4.使用<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名称：page1.jsp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tiles:insert definition="page1" &gt;&lt;/tiles:insert&gt; //这个</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 名称: page2.jsp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tiles:insert definition="page2" &gt;&lt;/tiles:insert&gt;<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp; <br />
</p>
<img src ="http://www.blogjava.net/191499719/aggbug/226274.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-09-02 09:56 <a href="http://www.blogjava.net/191499719/archive/2008/09/02/226274.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lunce的简单应用</title><link>http://www.blogjava.net/191499719/archive/2008/09/02/226273.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 02 Sep 2008 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/09/02/226273.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/226273.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/09/02/226273.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/226273.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/226273.html</trackback:ping><description><![CDATA[<p>private static final path="c:\\index";<br />
Document doc1=new Document(); //要进行索引的单元，任何可以想要被索引的文件都必须转化为Document对象才能进行索引。<br />
doc1.add(new Field("name","lighter javaeye com",Field.Store.Yes,Field.Index.TOKENIZED)); <br />
Document doc2=new Document();<br />
doc2.add(new Field("name","daniel&nbsp; java&nbsp; eye com",Field.Store.YES,Field.Index.TOKENIZED));//Field字段</p>
<p>IndexWriter writer=new IndexWriter(FSDirectory.getDirecotory(path,true),new StandardAnalyzer(),ture);&nbsp; //<strong>FSDirectory.getDirecotory(path,true)索引存放的位置,没有就create；StandardAnalyzer是分析器，主要用于分析搜索引擎遇到的各种文本。常用的有StandardAnalyzer分析器、</strong><br />
writer.setMaxFieldLength(3);<br />
writer.addDocument(doc1); //将文档加入索引<br />
writer.setMaxFieldLength(3);<br />
writer.addDocument(doc2);//将文档加入索引<br />
writer.close();</p>
<p>IndexSearcher searcher=new IndexSearcher(path); //检索工具<strong>。指定路径</strong><br />
Hits hits =null; //搜索返回结果<br />
Query query=null; //查询<br />
QueryParser qp=new QueryParser("name",new StandardAnalyzer()); //一个解析用户输入的工具，可以通过扫描用户输入的字符串，生成Query对象。<br />
query=qp.parser("java");<br />
hits=searcher.search(query);<br />
System.out.println(hits.length());<br />
query=qp.parser("daniel");<br />
hits=searcher.search(query);<br />
System.out.println("搜索的个数："+hits.length());</p>
<img src ="http://www.blogjava.net/191499719/aggbug/226273.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-09-02 09:55 <a href="http://www.blogjava.net/191499719/archive/2008/09/02/226273.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Dwr 简单应用</title><link>http://www.blogjava.net/191499719/archive/2008/09/02/226269.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 02 Sep 2008 01:47:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/09/02/226269.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/226269.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/09/02/226269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/226269.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/226269.html</trackback:ping><description><![CDATA[// 得到WebContext对象<br />
&nbsp;&nbsp;WebContext webcontext = WebContextFactory.get();<br />
&nbsp;webcontext.getHttpServletRequest(); //得到Request对象<br />
&nbsp;webcontext.getHttpServletResponse();//得到Response对象<br />
&nbsp;webcontext.getSession();得到Session对象<br />
<br />
在WEB.xml中配置<br />
<p>&nbsp;&lt;servlet&gt;<br />
&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&lt;servlet-class&gt;uk.ltd.getahead.dwr.DWRServlet&lt;/servlet-class&gt;<br />
&nbsp;&nbsp;&lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-name&gt;debug&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-value&gt;true&lt;/param-value&gt; //是否打开degug调式..true打开<br />
&nbsp;&nbsp;&lt;/init-param&gt;<br />
&nbsp;&nbsp;&lt;init-param&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-name&gt;config-Article&lt;/param-name&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;param-value&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;/WEB-INF/classes/dwr/Session.xml //指定dwr的配置文件<br />
&nbsp;&nbsp;&nbsp;&lt;/param-value&gt;<br />
&nbsp;&nbsp;&lt;/init-param&gt;<br />
&nbsp;&lt;/servlet&gt;</p>
<p>&nbsp;&lt;servlet-mapping&gt;<br />
&nbsp;&nbsp;&lt;servlet-name&gt;dwr-invoker&lt;/servlet-name&gt;<br />
&nbsp;&nbsp;&lt;url-pattern&gt;/dwr/*&lt;/url-pattern&gt;<br />
&nbsp;&lt;/servlet-mapping&gt;<br />
<br />
Session.xml的配置<br />
&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />
&lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd"&gt;<br />
&lt;dwr&gt;<br />
&nbsp;&lt;allow&gt;<br />
&nbsp;&nbsp;&lt;create creator="spring" javascript="Session"&gt; //由Spring来管理<br />
&nbsp;&nbsp;&nbsp;&lt;param name="beanName" value="sessionHandler"&gt;&lt;/param&gt;//value=Spring配置的<em>ID</em><br />
&nbsp;&nbsp;&nbsp;&lt;include method="getCurrentBean"/&gt; //暴露的方法<br />
&nbsp;&nbsp;&nbsp;&lt;include method="checkAccountSession"/&gt;//<br />
&nbsp;&nbsp;&lt;/create&gt;<br />
&nbsp;&lt;/allow&gt;<br />
&lt;/dwr&gt;</p>
<img src ="http://www.blogjava.net/191499719/aggbug/226269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-09-02 09:47 <a href="http://www.blogjava.net/191499719/archive/2008/09/02/226269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 上传图片加个图片水印，文字水印的功能</title><link>http://www.blogjava.net/191499719/archive/2008/09/02/226265.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Tue, 02 Sep 2008 01:36:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/09/02/226265.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/226265.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/09/02/226265.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/226265.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/226265.html</trackback:ping><description><![CDATA[<ol class="dp-j">
    <li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">class</span><span> ImageUtils { </span></span>
    <li class=""><span><span class="keyword">public</span><span> ImageUtils() { </span></span>
    <li class="alt">
    <li class=""><span>} </span>
    <li class="alt">
    <li class=""><span><span class="keyword">public</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">static</span><span> String getPressImgPath(){ </span></span>
    <li class="alt"><span><span class="keyword">return</span><span> ApplicationContext.getRealPath(</span><span class="string">"/template/data/util/shuiyin.gif"</span><span>); </span></span>
    <li class=""><span>} </span>
    <li class="alt">
    <li class=""><span><span class="comment">/**</span> </span>
    <li class="alt"><span><span class="comment">* 把图片印刷到图片上</span> </span>
    <li class=""><span><span class="comment">* @param pressImg -- 水印文件</span> </span>
    <li class="alt"><span><span class="comment">* @param targetImg -- 目标文件</span> </span>
    <li class=""><span><span class="comment">* @param x</span> </span>
    <li class="alt"><span><span class="comment">* @param y</span> </span>
    <li class=""><span><span class="comment">*/</span><span> </span></span>
    <li class="alt"><span><span class="keyword">public</span><span> </span><span class="keyword">final</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> pressImage(String pressImg, String targetImg, </span><span class="keyword">int</span><span> x, </span><span class="keyword">int</span><span> y) { </span></span>
    <li class=""><span><span class="keyword">try</span><span> { </span></span>
    <li class="alt"><span>File _file = <span class="keyword">new</span><span> File(targetImg); </span></span>
    <li class=""><span>Image src = ImageIO.read(_file); </span>
    <li class="alt"><span><span class="keyword">int</span><span> wideth = src.getWidth(</span><span class="keyword">null</span><span>); </span></span>
    <li class=""><span><span class="keyword">int</span><span> height = src.getHeight(</span><span class="keyword">null</span><span>); </span></span>
    <li class="alt"><span>BufferedImage image = <span class="keyword">new</span><span> BufferedImage(wideth, height, </span></span>
    <li class=""><span>BufferedImage.TYPE_INT_RGB); </span>
    <li class="alt"><span>Graphics g = image.createGraphics(); </span>
    <li class=""><span>g.drawImage(src, <span class="number">0</span><span>, </span><span class="number">0</span><span>, wideth, height, </span><span class="keyword">null</span><span>); </span></span>
    <li class="alt">
    <li class=""><span><span class="comment">// 水印文件</span><span> </span></span>
    <li class="alt"><span>File _filebiao = <span class="keyword">new</span><span> File(pressImg); </span></span>
    <li class=""><span>Image src_biao = ImageIO.read(_filebiao); </span>
    <li class="alt"><span><span class="keyword">int</span><span> wideth_biao = src_biao.getWidth(</span><span class="keyword">null</span><span>); </span></span>
    <li class=""><span><span class="keyword">int</span><span> height_biao = src_biao.getHeight(</span><span class="keyword">null</span><span>); </span></span>
    <li class="alt"><span>g.drawImage(src_biao, wideth - wideth_biao - x, height - height_biao -y, wideth_biao, </span>
    <li class=""><span>height_biao, <span class="keyword">null</span><span>); </span></span>
    <li class="alt"><span><span class="comment">// /</span><span> </span></span>
    <li class=""><span>g.dispose(); </span>
    <li class="alt"><span>FileOutputStream out = <span class="keyword">new</span><span> FileOutputStream(targetImg); </span></span>
    <li class=""><span>JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); </span>
    <li class="alt"><span>encoder.encode(image); </span>
    <li class=""><span>out.close(); </span>
    <li class="alt"><span>} <span class="keyword">catch</span><span> (Exception e) { </span></span>
    <li class=""><span>e.printStackTrace(); </span>
    <li class="alt"><span>} </span>
    <li class=""><span>} </span>
    <li class="alt">
    <li class=""><span><span class="comment">/**</span> </span>
    <li class="alt"><span><span class="comment">* 打印文字水印图片</span> </span>
    <li class=""><span><span class="comment">* @param pressText --文字</span> </span>
    <li class="alt"><span><span class="comment">* @param targetImg -- 目标图片</span> </span>
    <li class=""><span><span class="comment">* @param fontName -- 字体名</span> </span>
    <li class="alt"><span><span class="comment">* @param fontStyle -- 字体样式</span> </span>
    <li class=""><span><span class="comment">* @param color -- 字体颜色</span> </span>
    <li class="alt"><span><span class="comment">* @param fontSize -- 字体大小</span> </span>
    <li class=""><span><span class="comment">* @param x -- 偏移量</span> </span>
    <li class="alt"><span><span class="comment">* @param y</span> </span>
    <li class=""><span><span class="comment">*/</span><span> </span></span>
    <li class="alt">
    <li class=""><span><span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> pressText(String pressText, String targetImg, String fontName,</span><span class="keyword">int</span><span> fontStyle, </span><span class="keyword">int</span><span> color, </span><span class="keyword">int</span><span> fontSize, </span><span class="keyword">int</span><span> x, </span><span class="keyword">int</span><span> y) { </span></span>
    <li class="alt"><span><span class="keyword">try</span><span> { </span></span>
    <li class=""><span>File _file = <span class="keyword">new</span><span> File(targetImg); </span></span>
    <li class="alt"><span>Image src = ImageIO.read(_file); </span>
    <li class=""><span><span class="keyword">int</span><span> wideth = src.getWidth(</span><span class="keyword">null</span><span>); </span></span>
    <li class="alt"><span><span class="keyword">int</span><span> height = src.getHeight(</span><span class="keyword">null</span><span>); </span></span>
    <li class=""><span>BufferedImage image = <span class="keyword">new</span><span> BufferedImage(wideth, height, </span></span>
    <li class="alt"><span>BufferedImage.TYPE_INT_RGB); </span>
    <li class=""><span>Graphics g = image.createGraphics(); </span>
    <li class="alt"><span>g.drawImage(src, <span class="number">0</span><span>, </span><span class="number">0</span><span>, wideth, height, </span><span class="keyword">null</span><span>); </span></span>
    <li class=""><span><span class="comment">// String s="www.qhd.com.cn";</span><span> </span></span>
    <li class="alt"><span>g.setColor(Color.RED); </span>
    <li class=""><span>g.setFont(<span class="keyword">new</span><span> Font(fontName, fontStyle, fontSize)); </span></span>
    <li class="alt">
    <li class="">
    <li class="alt"><span>g.drawString(pressText, wideth - fontSize - x, height - fontSize/<span class="number">2</span><span> - y); </span></span>
    <li class=""><span>g.dispose(); </span>
    <li class="alt"><span>FileOutputStream out = <span class="keyword">new</span><span> FileOutputStream(targetImg); </span></span>
    <li class=""><span>JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); </span>
    <li class="alt"><span>encoder.encode(image); </span>
    <li class=""><span>out.close(); </span>
    <li class="alt"><span>} <span class="keyword">catch</span><span> (Exception e) { </span></span>
    <li class=""><span>System.out.println(e); </span>
    <li class="alt"><span>} </span>
    <li class=""><span>} </span>
    <li class="alt">
    <li class=""><span><span class="keyword">public</span><span> </span><span class="keyword">static</span><span> </span><span class="keyword">void</span><span> main(String[] args) { </span></span>
    <li class="alt"><span>pressImage(<span class="string">"C:/shuiyin/shuiyin.gif"</span><span>, </span><span class="string">"c:/shuiyin/DSC02342.JPG"</span><span>, </span><span class="number">20</span><span> ,</span><span class="number">20</span><span>); </span></span>
    <li class=""><span>} </span>
    <li class="alt"><span>} </span></li>
</ol>
<img src ="http://www.blogjava.net/191499719/aggbug/226265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-09-02 09:36 <a href="http://www.blogjava.net/191499719/archive/2008/09/02/226265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java 自定义回调函数</title><link>http://www.blogjava.net/191499719/archive/2008/08/08/220937.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Fri, 08 Aug 2008 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/08/08/220937.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/220937.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/08/08/220937.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/220937.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/220937.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>public class TestMain {</p>
<p>&nbsp;<br />
&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;//回调函数..<br />
&nbsp;&nbsp;TestMain.getBack(new CallBack(){<br />
&nbsp;&nbsp;&nbsp;public void excute() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("这就是回调函数...");<br />
&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;});</p>
<p>&nbsp;}<br />
&nbsp;<br />
&nbsp;public static&nbsp; void getBack(CallBack callback)<br />
&nbsp;{<br />
&nbsp;&nbsp;System.out.println("时间1"+new Date().toLocaleString());<br />
&nbsp;&nbsp;System.out.println("时间2"+System.currentTimeMillis());<br />
&nbsp;&nbsp;&nbsp; callback.excute();<br />
&nbsp;}<br />
}</p>
<p>interface CallBack<br />
{<br />
&nbsp;&nbsp; public void excute();&nbsp;<br />
}<br />
</p>
<img src ="http://www.blogjava.net/191499719/aggbug/220937.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-08-08 15:47 <a href="http://www.blogjava.net/191499719/archive/2008/08/08/220937.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Reflection（反射）Introspection（内省、内观）</title><link>http://www.blogjava.net/191499719/archive/2008/07/03/212325.html</link><dc:creator>YF</dc:creator><author>YF</author><pubDate>Thu, 03 Jul 2008 06:30:00 GMT</pubDate><guid>http://www.blogjava.net/191499719/archive/2008/07/03/212325.html</guid><wfw:comment>http://www.blogjava.net/191499719/comments/212325.html</wfw:comment><comments>http://www.blogjava.net/191499719/archive/2008/07/03/212325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/191499719/comments/commentRss/212325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/191499719/services/trackbacks/212325.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 有时候我们说某个语言具有很强的动态性，有时候我们会区分动态和静态的不同技术与作法。我们朗朗上口动态绑定（dynamic binding）、动态链接（dynamic linking）、动态加载（dynamic loading）等。然而&#8220;动态&#8221;一词其实没有绝对而普遍适用的严格定义，有时候甚至像对象导向当初被导入编程领域一样，一人一把号，各吹各的调。一般而言，开发者社群说到动...&nbsp;&nbsp;<a href='http://www.blogjava.net/191499719/archive/2008/07/03/212325.html'>阅读全文</a><img src ="http://www.blogjava.net/191499719/aggbug/212325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/191499719/" target="_blank">YF</a> 2008-07-03 14:30 <a href="http://www.blogjava.net/191499719/archive/2008/07/03/212325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>