<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>linde13652</title>
    <description>  学会自学才是真正的快乐！！</description>
    <link>http://linde13652.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>回归正常程序员的生活</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/180817" style="color:red;">http://linde13652.javaeye.com/blog/180817</a>&nbsp;
          发表时间: 2008年04月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          3月中旬开始猛面试了一轮，到现在也面试20来家啦，通知去上班一家，但是没有去，因为公司太小，最主要的是那里没有一个会java的，而且我的工作是做些许维护工作！到了4月，我发现招聘网上的招聘信息也比3月份要求更高啦。。总结啦一下3月的面试，主要是笔试不是很好，因为平常不是很注意的小细节方面，笔试的时候比如叫手写截取字符串的例子，这些东西以前倒是写过，而手写的话。。不参照api的话，方法都记不起来啦！有的公司都是笔试先，笔试答不好的话那就是相当于没有复试谈技术的机会！后来去网上下载啦面试题，猛看啦一番，后来感觉笔试还顺利多啦，可是前两天我去一家新开的公司面试的时候真的被打击啦一回，没有笔试，给你个需求，用struts和hibernate和mysql编写一个简单的用户登陆界面，用户名要根据userInfo.xml或者useInfo.propertise解析出来，用ajax和javascript进行校验登陆成功与否，时间是1个小时。我看啦看那台电脑，mysql是黑窗口的，汗。。。以前都是习惯用EMS界面的，而且propertise以前都是用备份的，javascript的标签也没有给，那机子也不可以联网，1个小时真的没有感觉就过去啦，我再看myeclipse还是空的，那就配置tomcat和jdk吧，汗。。8080被占用--我改。汗。。。8005被占用，那面试的都没有浪费我的时间，我说我还没有完成，然后说那我们去办公室谈谈吧，结果他说他只要结果，不考虑其他因素。回来后，心情慢慢平静的想啦想，最近主要的经历都花在面试上面啦，很多时候都是看面试题，看招聘网，而自己动代码的时候就少啦，还有以前备份的项目和练习的实例，都没有好好翻番看，呵呵，这才明白好多事情真的是顾此失彼啊！<br />     一个月啦，工作还是没有定下来，但是现在我想好啦，我是在寻找工作，但是我不能把精力全部放在笔试和面试上，我还应该回归比较正常的生活才对，每天看看自己以前的项目，适当的把3大框架多做些练习，还找了个哥们，把他们要做的电信大客户项目需求拿啦过来，有时间自己也做做。这一个多月，真的很辛苦我女朋友啦，同时也很感谢她的理解和支持，就像她说的，北京的交通，堵车是正常，但是不管这么堵，都有疏散的时候，堵车的时候，与其焦躁怨天尤人，不如心平气和的看看报纸！
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/180817#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Apr 2008 14:22:20 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/180817</link>
        <guid>http://linde13652.javaeye.com/blog/180817</guid>
      </item>
      <item>
        <title>面试总结</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/173492" style="color:red;">http://linde13652.javaeye.com/blog/173492</a>&nbsp;
          发表时间: 2008年03月18日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          3月初就是开始网上投简历，快一个月了，来来去去，也面试了不少家公司，其中复试了两家，感觉就是那样，有点汗了。。现在去招聘网上，都是招精通XXX技术或语言的，动不动就是3到5年工作经验，看了N久，我咋就没有看见说招普通程序员的呢！今天去面试了一家，题目都是hibernate的多，谈技术的时候我就问你们都是用什么框架。。struts。。汗。。我做的题目里面就没有struts的题。很气愤的是填写履历表的时候，有几个选项是：a保险是否上 1必须上 2无所谓 3不用上 b公司可能常常加班且不给加班费，你愿意吗？1可以接受 2不能接受 c你一分钟打多少个字 ⑴50个⑵100个⑶150个填完我真想走人，但是还是耐性子把5张卷子答完才闪的，早上约的9点面试，我7点坐车出发9点15分才到终点站，搞到11点多我肚子早咕咕叫了，就这样的公司下次打死我也不来，真有点恶心人！现在java面试真的不是很乐观，如果你也是求职大军中的一员。。o(∩_∩)o.。别灰心，我们还有钢七连呢！！
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/173492#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 18 Mar 2008 19:01:23 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/173492</link>
        <guid>http://linde13652.javaeye.com/blog/173492</guid>
      </item>
      <item>
        <title>去银行快速取钱方法</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/166256" style="color:red;">http://linde13652.javaeye.com/blog/166256</a>&nbsp;
          发表时间: 2008年02月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          先说说北京的各个银行，大街小巷是不少，可是当你想真正去哪家办理业务时才发现附近就是没有想要去的，我周围就是建设银行少， 每次要办业务都得转好几站地，那地方还特别小，办理业务的人满是火爆！<br />     好了，说说取钱的事情吧，事情是这样的，前几天我女朋友叫我去帮她去建设银行转钱到农行的一个朋友的卡上，我拿着她的工资卡就去了，我进大厅取号，好家伙，前面排着59个，就开着3个窗口，两个是办理RMB业务的，还有一个是办理特殊业务的，我站着看了下（没坐啦），2号窗口穿红夹克的仁兄大概20分钟还没有要办完的样子。。汗，我看自动取款机那人不多，就排了上去，到我了，插卡，输入密码，<img src="/images/smiles/icon_surprised.gif"/>错误！不对啊，我以为我输入错呢，我又输入一次，还是密码错误，这是我们通用的密码，应该没有错的啊，那应该就是以前她常用的密码吧！。。。还是错误，连续3次错误提示此卡已经被锁住了，<img src="/images/smiles/icon_cry.gif"/>坏了！赶紧给女友打电话。。没有人接，然后我问问他们的大堂经理，她说这卡被锁住了，必须要本人持本人身份证来解锁。<br />    没办法，周六我们到了银行取号，我们11点多到的，里面几乎坐满人，我们前面有29个，一会到来吃饭时间，就开两个窗口啦，天啊，平均一个人5分钟的话起码也要两个小时啊，下午我们还有事情去做呢，但是这钱又得转啊，真是郁闷，我们等到12点多，女友终于沉不住气了，焦躁的拉着我没好气的说走，路过取号机的时候我突然想到，我们解密码应该属于特殊业务的吧，于是我们就取了办理特殊业务的号，不到5分钟就轮到我们了，我们解了密码，那顺便把里面的钱也取出来吧，银行服务小姐很高兴的帮我们把钱取了出来，在我们办理的时候，大厅里面我明显感觉到有N多不解和要杀人的目光瞟向我们！o(∩_∩)o...哈哈，事情就这么巧，我们也没有办法！<br />    所以嘛，我说的快速度取钱方法是，你去自动取款机连续输入3次密码错误，然后你去大厅取号办理特殊业务（因为办理这个业务的人绝对比办理RMB业务的人少很多），当然，我觉得这样取巧很不好，但是如果有时候你赶上十万火急的事情，不妨试试，但是记得要带身份证哦！<img src="/images/smiles/icon_wink.gif"/>
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/166256#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Feb 2008 20:32:27 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/166256</link>
        <guid>http://linde13652.javaeye.com/blog/166256</guid>
      </item>
      <item>
        <title>去新开的公司面试</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/164366" style="color:red;">http://linde13652.javaeye.com/blog/164366</a>&nbsp;
          发表时间: 2008年02月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          前天去了一家新开的公司面试，到了是先是填下履历表，然后有个貌似HR助理给我们介绍一下公司的规模和所做的产品，然后进去跟一个项目经理谈，大概内容就是，我们是新开的公司，环境什么的都没有搭建起来呢，你能否自己搭建，我说可以；我们现在的产品是买来的，你能否看需求做些修改维护，我说可以；我们的产品现在刚刚推广，在面向客户时每个人都是销售者，你能接受吗？我说可以；你可以自己编写网页吗？我说可以；那好，我的助理那里现在需要解决一下小问题，你可以去帮看看。<br />    我过去，说要编写一个登陆界面，登陆成功就跳转成功页面，登陆失败就跳转到失败页面，我说用连接数据库吗，他说不用，我说那我就简单点吧，我想用MVC模式就OK，可是我建了一个web项目，那个小助理问我，你应该会struts吧，我说会，那你怎么不用他，我觉得它跳转更好，我说只是简单的登陆而且还不用到数据库的话用MVC模式就可以，我就接着手些代码，你为什么不用MyEclipse的视图模式编写，我觉得那样更方便，我说我以前用eclipse习惯了，MyEclipse也经常用到，但是很少用视图模式，因为出错不是很容易查找，我些了简单的一个login.jsp提交到servlet里面，定义一个admin，再写了两个跳转的jsp页面，ok了，运行，MyEclipse自带的tomcat跑不起来，我说你有独立的tomcat吗，他说有，然后我就配置了一个，运行，跑起来了，可是一连接我的登陆界面，500-error错误，找不到java编译器，我说环境变量你配置好了吧，他说昨天就配置好了，都是照书上配置的，我打开电脑属性看了看，其他都没有什么，就是他path路径原来系统属性都删除了，就留现在的jdk路径，我觉得问题也不是很大重新部署了下，再运行，还是老错误500-error，无奈了，我就觉得这么简单的程序报这个错误，我还是第一次碰见！哎呀，看来你技术还是不行啊，。。。。。我也无语，因为也刚好到了午饭时间，那个项目经理就说今天先到这吧，回去等我们的复试通知吧！<br />    在回来的路上，我都觉得很不爽，这么简单的程序都没有跑起来，到家都我马上打开自己的电脑，5分钟都不到，一样的程序我的电脑就能跑起来了！想想现在还不爽，呵呵！！也不知道是不是他们故意搞的小把戏！！
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/164366#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 22 Feb 2008 22:21:32 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/164366</link>
        <guid>http://linde13652.javaeye.com/blog/164366</guid>
      </item>
      <item>
        <title>Hibernate 原理与配置快速入门(转)</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/162777" style="color:red;">http://linde13652.javaeye.com/blog/162777</a>&nbsp;
          发表时间: 2008年02月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Hibernate 原理与配置快速入门<br /><a href="http://www.javafan.net" target="_blank">http://www.javafan.net</a> Java爱好者<br />Hibernate<br />原理与配置快速入门<br />作者：罗小虎<br />来自：天极网<br />在本文中，我向大家重点介绍Hibernate的核心API调用库，并讲解一下它的基本配置。<br />也许你听说过Hibernate 的大名，但可能一直不了解它，也许你一直渴望使用它进行开发，那<br />么本文正是你所需要的！在本文中，我向大家重点介绍Hibernate 的核心API 调用库，并讲解一下<br />它的基本配置。<br />看完本文后，我相信你对什么是ORM（对像/关系映射）以及它的优点会有一个深刻的认识，<br />我们先通过一个简单的例子开始来展现它的威力。<br />正如一些传统的经典计算机文章大都会通过一个“hello,world”的例子开始讲解一样，我们也<br />不例外，我们也将从一个相对简单的例子来阐述Hibernate的开发方法，但如果要真正阐述Hibernate<br />的一些重要思想，仅仅靠在屏幕上打印一些字符是远远不够的，在我们的示例程序中，我们将创建<br />一些对象，并将其保存在数据库中，然后对它们进行更新和查询。<br />阅读导航<br />“Hello World”<br />“Hello world”示例程序让您对Hibernate有一个简单的认识<br />理解Hibernate的架构 介绍Hibernate接口的主要功能。<br />核心接口<br />Hibernate 有5 个核心接口，通过这几个接口开发人员可<br />以存储和获得持久对象，并且能够进行事务控制<br />一个重要的术语：Type<br />Type 是Hibernate 发明者发明的一个术语，它在整个构架<br />中是一个非常基础、有着强大功能的元素，一个Type 对<br />象能将一个Java类型映射到数据库中一个表的字段中去。<br />策略接口<br />Hibernate 与某些其它开源软件不同的还有一点――高度<br />的可扩展性，这通过它的内置策略机制来实现。<br />基础配置<br />Hibernate可以配置成可在任何Java环境中运行，一般说<br />来，它通常被用在2－3 层的C/S 模式的项目中，并被部<br />署在服务端。<br />创建一个SessionFactory 对象<br />要创建一个SessionFactory对象，必须在Hibernate初始<br />化时创建一个Configuration 类的实例，并将已写好的映<br />射文件交由它处理。<br />“Hello World”<br />Hibernate应用程序定义了一些持久类，并且定义了这些类与数据库表格的映射关系。在我们这个“Hello world”示例程序中包含了一个类和一个映射文件。让我们看看这个简单的持久类包含有一些什么？映射文件是怎样定义的？另外，我们该怎样用Hibernate 来操作这个持久类。<br />我们这个简单示例程序的目的是将一些持久类存储在数据库中，然后从数据库取出来，并将其<br />信息正文显示给用户。其中Message 正是一个简单的持久类：，它包含我们要显示的信息，其源代<br />码如下：<br />列表1 Message.Java 一个简单的持久类<br /><pre name="code" class="java">package hello;
public class Message {
private Long id;
private String text;
private Message nextMessage;
private Message() {}
public Message(String text) {
this.text = text;
}
public Long getId() {
return id;
}
private void setId(Long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public Message getNextMessage() {
return nextMessage;
}
public void setNextMessage(Message nextMessage) {
this.nextMessage = nextMessage;
}
}</pre>Message 类有三个属性：Message 的id 、消息正文、以及一个指向下一条消息的指针。其中id 属性让我们的应用程序能够唯一的识别这条消息，通常它等同于数据库中的主键，如果多个Message类的实例对象拥有相同的id，那它们代表数据库某个表的同一个记录。在这里我们选择了长整型作为我们的id值，但这不是必需的。Hibernate允许我们使用任意的类型来作为对象的id 值，在后面我们会对此作详细描述。<br />你可能注意到Message类的代码类似于JavaBean 的代码风格，并且它有一个没有参数的构造函数，在我们以后的代码中我将继续使用这种风格来编写持久类的代码。<br />Hibernate 会自动管理Message 类的实例，并通过内部机制使其持久化，但实际上Message对象并没有实现任何关于Hibernate 的类或接口，因此我们也可以将它作为一个普通的Java类来使用：<br />Message message = new Message("Hello World");<br />System.out.println( message.getText() );<br />以上这段代码正是我们所期望的结果：它打印“hello world”到屏幕上。但这并不是我们的最终目标；实际上Hibernate 与诸如EJB 容器这样的环境在持久层实现的方式上有很大的不同。我们的持久类(Message 类)可以用在与容器无关的环境中，不像EJB 必须要有EJB容器才能执行。为了能更清楚地表现这点，以下代码将我们的一个新消息保存到数据库中去：<br /><pre name="code" class="java">Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
Message message = new Message("Hello World");
session.save(message);
tx.commit();
session.close();</pre><br />以上这段代码调用了Hibernate 的Session 和Transaction 接口（关于getSessionFactory()方法我们将会马上提到）。它相当于我们执行了以下SQL语句：<br /><pre name="code" class="java">insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)
values (1, 'Hello World', null)</pre><br />在以上的SQL语句中，MESSAGE_ID字段到底被初始化成了什么值呢？由于我们并没有在先<br />前的代码中为message 对象的id 属性赋与初始值，那它是否为null 呢？实际上Hibernate 对id 属性作了特殊处理：由于它是一个对象的唯一标识，因此当我们进行save()调用时，Hibernate会为它自动赋予一个唯一的值（我们将在后面内容中讲述它是如何生成这个值的）。我们假设你已经在数据库中创建了一个名为MESSAGE的表，那么既然前面这段代码让我们将Message对象存入了数据库中，那么现在我们就要将它们一一取出来。下面这段代码将按照字母顺序，将数据库中的所有Message对象取出来，并将它们的消息正文打印到屏幕上：<br /><pre name="code" class="java">Session newSession = getSessionFactory().openSession();
Transaction newTransaction = newSession.beginTransaction();
List messages =newSession.find("from Message as m order by m.text asc");
System.out.println( messages.size() + " message(s) found:" );
for ( Iterator iter = messages.iterator(); iter.hasNext(); ) {
Message message = (Message) iter.next();
System.out.println( message.getText() );
}
newTransaction.commit();
newSession.close();</pre>在以上这段代码中，你可能被find()方法的这个参数困扰着："from Message as m order bym.text asc"，其实它是Hibernate自己定义的查询语言，全称叫Hibernate Query Language(HQL)。通俗地讲HQL与SQL 的关系差不多就是方言与普通话之间的关系，咋一看，你会觉得它有点类似于SQL语句。其实在find()调用时，Hibernate会将这段HQL语言翻译成如下的SQL语句：<br /><pre name="code" class="java">select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID
from MESSAGES m
order by m.MESSAGE_TEXT asc</pre>以下就是运行结果：<br /><pre name="code" class="java">1 message(s) found:

Hello World</pre>如果你以前没有ORM（对象－关系映射）的开发经验，那你可能想在代码的某个地方去寻找这<br />段SQL 语句，但在Hibernate 中你可能会失望：它根本不存在！所有就SQL 语句都是Hibernate动态生成的。也许你会觉得还缺点什么，对！仅凭以上代码Hibernate 是无法将我们的Message类持久化的。<br />我们还需要一些更多的信息，这就是映射定义表！这个表在Hibernate中是以XML格式来体现的，它定义了Message 类的属性是怎样与数据库中的MESSAGES 表的字段进行一一对应的，列表2<br />是这个示例程序的映射配置文件清单：<br />列表2：示例程序的对象－关系映射表<br /><pre name="code" class="java">&lt;?xml version="1.0"?>
&lt;!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
&lt;hibernate-mapping>
&lt;class name="hello.Message" table="MESSAGES">
&lt;id name="id" column="MESSAGE_ID">
&lt;generator class="increment"/>
&lt;/id>
&lt;property name="text" column="MESSAGE_TEXT"/>
&lt;many-to-one name="nextMessage" cascade="all" column="NEXT_MESSAGE_ID"/>
&lt;/class>
&lt;/hibernate-mapping></pre>以上这个文档告诉Hibernate 怎样将Message 类映射到MESSAGES 表中，其中Message 类的id 属性与表的MESSAGE_ID 字段对应，text 属性与表的MESSAGE_TEXT 字段对应，<br />nextMessage属性是一个多对一的关系，它与表中的NEXT_MESSAGE_ID相对应。<br /><br />相对于有些开源项目来说，Hibernate的配置文件其实是很容易理解的。你可以轻松地修改与维护它。只要你定义好了持久类与数据库中表字段的对应关系就行了，Hibernate 会自动帮你生成SQL<br />语句来对Message 对象进行插入、更新、删除、查找工作，你可以不写一句SQL 语句，甚至不需要懂得SQL语言！<br />现在让我们做一个新的试验，我们先取出第一个Message对象，然后修改它的消息正文，最后<br />我们再生成一个新的Message 对象，并将它作为第一个Message 对象的下一条消息，其代码如下：<br />列表3 更新一条消息<br /><pre name="code" class="java">Session session = getSessionFactory().openSession();
Transaction tx = session.beginTransaction();
// 1 is the generated id of the first message
Message message =(Message) session.load( Message.class, new Long(1) );
message.setText("Greetings Earthling");
Message nextMessage = new Message("Take me to your leader (please)");
message.setNextMessage( nextMessage );
tx.commit();
session.close();</pre>以上这段代码在调用时，Hibernate内部自动生成如下的SQL语句：<br /><pre name="code" class="java">select m.MESSAGE_ID, m.MESSAGE_TEXT, m.NEXT_MESSAGE_ID
from MESSAGES m
where m.MESSAGE_ID = 1
insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)
values (2, 'Take me to your leader (please)', null)
update MESSAGES
set MESSAGE_TEXT = 'Greetings Earthling', NEXT_MESSAGE_ID = 2
where MESSAGE_ID = 1</pre><br /><br />当第一个Message 对象的text 属性和nextMessage 被程序修改时，请注意Hibernate是如何检测到这种变化，并如何在数据库中自动对它更新的。这实际上是Hibernate 的一个很有价值的特色，我们把它称为“自动脏数据检测”，Hibernate 的这个特色使得当我们修改一个持久对象的属性后，不必显式地通知Hibernate去将它在数据库中进行更新。同样的，当第一个Message 对象调用setNextMessage()方法将第二个Message对象作为它的下一条消息的引用时，第二条消息会无需调用save()方法，便可以自动地保存在数据库中。这种特色被称为“级联保存”，它也免去了我们显式地对第二个Message对象调用save()方法之苦。如果我们再运行先前的那段将数据库中所有的Message 对象都打印出来的代码，那它的运行结<br />果如下：<br /><pre name="code" class="java">2 message(s) found:
Greetings Earthling
Take me to your leader (please)</pre>“Hello world”示例程序现在介绍完毕。我们总算对Hibernate 有了一个简单的认识，下面我们将回过头来，对Hibernate 的主要API调用作一下简要的介绍：<br />理解Hibernate 的架构当你想用Hibernate 开发自己的基于持久层的应用时，第一件事情应当是熟悉它的编程接口。<br />Hibernate的API接口设计得尽量简洁明了，以方便开发人员。然而实际上由于ORM的复杂性，它的API 一般都不可能设计得很简单。但是别担心，你没有必要一下子了解所有的Hibernate 的API接口。下面这张图描述了Hibernate 在应用层和持久层中的一些重要的接口类：<br /><br />在上图中，我们将应用层放在了持久层的上部，实际上在传统的项目中，应用层充当着持久层<br />的一个客户端角色。但对于一些简单的项目来说，应用层和持久层并没有区分得那么清楚，这也没什么，在这种情况下你可以将应用层和持久层合并成了一层。<br />在上图中，Hibernate的接口大致可以分为以下几种类型：<br />· 一些被用户的应用程序调用的，用来完成基本的创建、读取、更新、删除操作以及查询操作的接口。这些接口是Hibernate实现用户程序的商业逻辑的主要接口，它们包Session、Transaction和Query。<br />· Hibernate用来读取诸如映射表这类配置文件的接口，典型的代表有Configuration类。<br />· 回调(Callback)接口。它允许应用程序能对一些事件的发生作出相应的操作，例如Interceptor、Lifecycle和Validatable都是这一类接口。<br />· 一些可以用来扩展Hibernate的映射机制的接口，例如UserTypeCompositeUserType 和IdentifierGenerator。这些接口可由用户程序来实现（如果有必要）。<br /><br />Hibernate 使用了J2EE 架构中的如下技术：JDBC、JTA、JNDI。其中JDBC 是一个支持系<br />数据库操作的一个基础层；它与JNDI 和JTA 一起结合，使得Hibernate 可以方便地集成到J2EE应用服务器中去。<br />在这里，我们不会详细地去讨论Hibernate API 接口中的所有方法，我们只简要讲一下每个主要接口的功能，如果你想了解得更多的话，你可以在Hibernate的源码包中的net.sf.hibernate子包中去查看这些接口的源代码。下面我们依次讲一下所有的主要接口：<br />核心接口<br />以下5 个核心接口几乎在任何实际开发中都会用到。通过这些接口，你不仅可以存储和获得持久对象，并且能够进行事务控制。<br />Session 接口<br />Session 接口对于Hibernate 开发人员来说是一个最重要的接口。然而在Hibernate 中，实例化的Session是一个轻量级的类，创建和销毁它都不会占用很多资源。这在实际项目中确实很重要，因为在客户程序中，可能会不断地创建以及销毁Session 对象，如果Session 的开销太大，会给系统带来不良影响。但值得注意的是Session 对象是非线程安全的，因此在你的设计中，最好是一个线程只创建一个Session对象。<br />在Hibernate 的设计者的头脑中，他们将session看作介于数据连接与事务管理一种中间接口。<br />我们可以将session想象成一个持久对象的缓冲区，Hibernate能检测到这些持久对象的改变，并及时刷新数据库。我们有时也称Session是一个持久层管理器，因为它包含这一些持久层相关的操作，诸如存储持久对象至数据库，以及从数据库从获得它们。请注意，Hibernate 的session不同于JSP应用中的HttpSession。当我们使用session这个术语时，我们指的是Hibernate 中的session，而我们以后会将HttpSesion 对象称为用户session。<br />SessionFactory 接口<br /><br />这里用到了一个设计模式――工厂模式，用户程序从工厂类SessionFactory中取得Session 的实例。令你感到奇怪的是SessionFactory并不是轻量级的！实际上它的设计者的意图是让它能在整个应用中共享。典型地来说，一个项目通常只需要一个SessionFactory就够了，但是当你的项目要操作多个数据库时，那你必须为每个数据库指定一個SessionFactory。<br />SessionFactory在Hibernate中实际起到了一个缓冲区的作用，它缓冲了Hibernate自动生成的SQL语句和一些其它的映射数据，还缓冲了一些将来有可能重复利用的数据。<br />Configuration 接口<br />Configuration 接口的作用是对Hibernate 进行配置，以及对它进行启动。在Hibernate 的启动过程中，Configuration 类的实例首先定位映射文档的位置，读取这些配置，然后创建一个SessionFactory对象。<br />虽然Configuration 接口在整个Hibernate 项目中只扮演着一个很小的角色，但它是启动<br />hibernate 时你所遇到的每一个对象。Transaction 接口<br />Transaction 接口是一个可选的API，你可以选择不使用这个接口，取而代之的是Hibernate 的设计者自己写的底层事务处理代码。 Transaction 接口是对实际事务实现的一个抽象，这些实现包括JDBC的事务、JTA 中的UserTransaction、甚至可以是CORBA 事务。之所以这样设计是能让开发者能够使用一个统一事务的操作界面，使得自己的项目可以在不同的环境和容器之间方便地移值。<br />Query 和Criteria接口<br />Query接口让你方便地对数据库及持久对象进行查询，它可以有两种表达方式：HQL语言或本<br />地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量，并最终执行查询操作。<br /><br />Criteria接口与Query接口非常类似，它允许你创建并执行面向对象的标准化查询。<br />值得注意的是Query接口也是轻量级的，它不能在Session之外使用。<br />Callback 接口<br />当一些有用的事件发生时――例如持久对象的载入、存储、删除时，Callback 接口会通知<br />Hibernate去接收一个通知消息。一般而言，Callback接口在用户程序中并不是必须的，但你要在你的项目中创建审计日志时，你可能会用到它。<br />一个重要的术语：Type<br />Hibernate 的设计者们发明了一个术语：Type，它在整个构架中是一个非常基础、有着强大功能的元素。一个Type对象能将一个Java类型映射到数据库中一个表的字段中去（实际上，它可以映射到表的多个字段中去）。持久类的所有属性都对应一个type。这种设计思想使用Hibernate 有着高度的灵活性和扩展性。<br />Hibernate 内置很多type 类型，几乎包括所有的Java 基本类型，例如Java.util.Currency、<br />Java.util.calendar、byte[]和Java.io.Serializable。<br />不仅如此，Hibernate 还支持用户自定义的type，通过实现接口UserType 和接口<br />CompositeUserType，你可以加入自己的type。你可以利用这种特色让你的项目中使用自定义的诸如Address、Name这样的type，这样你就可以获得更大的便利，让你的代码更优雅。自定义type在Hibernate中是一项核心特色，它的设计者鼓励你多多使用它来创建一个灵活、优雅的项目！<br />策略接口<br />Hibernate与某些其它开源软件不同的还有一点――高度的可扩展性，这通过它的内置策略机制来实现。当你感觉到Hibernate 的某些功能不足，或者有某些缺陷时，你可以开发一个自己的策略来替换它，而你所要做的仅仅只是继承它的某个策略接口，然后实现你的新策略就可以了，以下是它的策略接口：<br />· 主键的生成 (IdentifierGenerator 接口)<br />· 本地SQL语言支持 (Dialect 抽象类)<br />· 缓冲机制 (Cache 和CacheProvider 接口)<br />· JDBC 连接管理 (ConnectionProvider接口)<br />· 事务管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口)<br />· ORM 策略 (ClassPersister 接口)<br />· 属性访问策略 (PropertyAccessor 接口)<br />· 代理对象的创建 (ProxyFactory接口)<br />Hibernate为以上所列的机制分别创建了一个缺省的实现，因此如果你只是要增强它的某个策略的功能的话，只需简单地继承这个类就可以了，没有必要从头开始写代码。<br />以上就是Hibernate 的一些核心接口，但当我们真正开始用它进行开发时，你的脑海里可能总会有一个疑问：我是通过什么方式，并从哪里取得Session 的呢？以下我们就解答这个问题。<br />基础配置<br />现在回顾一下我们先前的内容：我们写出了一个示例程序，并简要地讲解了Hibernate 的一些核心类。但要真正使你的项目运行起来，还有一件事必须要做：配置。Hibernate可以配置成可在任何Java环境中运行，一般说来，它通常被用在2－3层的C/S 模式的项目中，并被部署在服务端。<br />在这种项目中，Web浏览器、或Java GUI程序充当者客户端。尽管我们的焦点主要是集中在多层web应用，但实际上在一些基于命令行的应用中也可以使用Hibernate。并且，对Hibernate的配置在不同的环境下都会不同，Hibernate 运行在两种环境下：可管理环境和不可管理环境<br />· 可管理环境――这种环境可管理如下资源：池资源管理，诸如数据库连接池和，还有事务管<br />理、安全定义。一些典型的J2EE 服务器（JBoss、Weblogic、WebSphere）已经实现了这些。<br />· 不可管理环境――只是提供了一些基本的功能，诸如像Jetty或Tomcat 这样的servlet 容器环境。一个普通的Java 桌面应用或命令行程序也可以认为是处于这种环境下。这种环境不能提供自动事务处理、资源管理或安全管理，这些都必须由应用程序自己来定义。<br />Hibernate的设计者们将这两种环境设计了一个统一的抽象界面，因此对于开发者来说只有一种环境：可管理环境。如果实际项目是建立在诸如Tomcat 这类不可管理的环境中时，那Hibernate 将会使用它自己的事务处理代码和JDBC 连接池，使其变为一个可管理环境。<br />对于可管理的环境而言，Hibernate 会将自己集成在这种环境中。对于开发者而言，你所要做的工作非常简单：只需从一个Configuration类中创建一个SessionFactory类就可以了。<br />创建一个SessionFactory对象<br />为了能创建一个SessionFactory 对象，你必须在Hibernate 初始化时创建一个Configuration类的实例，并将已写好的映射文件交由它处理。这样，Configuration 对象就可以创建一个SessionFactory 对象，当SessionFactory 对象创建成功后，Configuration 对象就没有用了，你可以简单地抛弃它。如下是示例代码：<br /><pre name="code" class="java">Configuration cfg = new Configuration();
cfg.addResource("hello/Message.hbm.xml");
cfg.setProperties( System.getProperties() );
SessionFactory sessions = cfg.buildSessionFactory();</pre><br /><br />在以上代码中，Message.hb.xml 这个映射文件的位置比较特殊，它与当前的classpath相关。例如classpath包含当前目录，那在上述代码中的Message.hbm.xml 映射文件就可以保存在当前目录下的hello目录中。<br />作为一种约定，Hibernate的映射文件默认以.htm.xml 作为其扩展名。另一个约定是坚持为每一个持久类写一个配置文件，想一想如果你将所有持久类的映射写入一个单独的配置文件中的话，那这个配置文件肯定非常庞大，不易维护。但这里又出现了一个新问题：如果为每个类写一个配置文件的话，这么多的配置文件应该存放在哪里呢？<br />Hibernate推荐你将每个映射文件保存在与持久类相同的目录下，并且与持久类同名。例如我们第一个示例程序中的Message 持久类放在hello 目录下，那你必须在这个目录下存放名为Message.hbm.xml 的映射文件。这样一个持久类都有自己的一个映射文件，避免了出现像struts项目中的“struts-config.xml地狱”的情况。如果你不遵循这种规定，那你必须手动地用addResource()方法将一个个的映射文件载入；但你如果遵循这种规定，那你可以方便地用addClass()方法同时将持久类和它的映射文件载入，以下是体现这种便利性的示例代码：<br /><pre name="code" class="java">SessionFactory sessions = new Configuration()
.addClass(org.hibernate.auction.model.Item.class)
.addClass(org.hibernate.auction.model.Category.class)
.addClass(org.hibernate.auction.model.Bid.class)
.setProperties( System.getProperties() )
.buildSessionFactory();</pre>当然，Hibernate的映射文件还有很多其它的配置选项，比如数据库连接的设定，或是能够改变Hibernate运行时行为的一些设定。所有的设置可能是非常庞杂的，足以让你喘不过气来，但是不必担心，因为Hibernate 为绝大多数值都设定了一个合理缺省值，你只需要修改这些配置文件中的极小一部分值。<br />你可以通过以下几种方式来修改Hibernate的系统配置参数：<br />· 将一个Java.util.Properties实例作为参数传给Configuration 类的setProperties()方法。<br />· 在Hibernate 启动时用Java –Dproperty=value 的方式设置值。<br />· 在classpath可以找到的路径下创建一个名为hibernate.properties的配置文件。<br />· 在classpath可以找到的路径下创建一个名为hibernate.cfg.xml 的文件，并在其&lt;property><br />标签中定义属性值。<br />以上就是对Hibernate 的一个大致介绍，如果你想知道得更多，那本文还是远远不够的，我将陆续推出更多关于Hibernate 的资料。但有一点是毫无疑问的：它的确是一个非常优秀的持久层解决方案！<br />附件中有完整的pdf电子书，包括hibernate中文文档和开发指南，想收藏的朋友可以下来保存，事先声明，博客中我所转的帖子或书籍，只是想跟大家分享下，同时也是很好的备份，方便我随时可以查阅！！
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/162777#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 17 Feb 2008 14:16:41 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/162777</link>
        <guid>http://linde13652.javaeye.com/blog/162777</guid>
      </item>
      <item>
        <title>小巧的Lingoes翻译家</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/161927" style="color:red;">http://linde13652.javaeye.com/blog/161927</a>&nbsp;
          发表时间: 2008年02月12日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我的电脑重装了下系统，没有翻译软件，去google上搜索一下，金山大多都要注册码，而且还是几百兆，后来在论坛里面异常大哥帮忙找到了小巧的翻译小软件，就是灵格斯翻译家，才不到8M，功能都挺齐全的，而且不受防火墙的影响，的确是不错的翻译小工具，大家有兴趣的可以去下载体验一下，下载连接<a href="http://www.lingoes.cn/zh/" target="_blank">http://www.lingoes.cn/zh/</a>
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/161927#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 12 Feb 2008 03:06:50 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/161927</link>
        <guid>http://linde13652.javaeye.com/blog/161927</guid>
      </item>
      <item>
        <title>如何在三个月掌握三年的经验(转载)</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/157911" style="color:red;">http://linde13652.javaeye.com/blog/157911</a>&nbsp;
          发表时间: 2008年01月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          刚刚在google上面看到了一篇很不错的经验文章，我就转载到这上面吧。原文章出处是<a href="http://www.blogjava.net/zolly/archive/2007/10/06/Experience.html" target="_blank">http://www.blogjava.net/zolly/archive/2007/10/06/Experience.html</a><br /><br />很多职场新人都谈到了工作经验的问题，似乎招聘公司不给你机会，你就没办法获得必要的工作经验，其实并不一定。 <br /><br />　　很多资料在网上都是可以找到的，只是看你具备不具备足够的信息收集与处理能力，而这个收集与处理信息的过程，也能极大的提升你的职业能力。 <br /><br />　　我一直有个感觉，在“模仿中成长，在创新中成功”，其实在真正的职业工作中，大多数的工作都是模仿重复，强调的是工作效率，而不是创新。对于企业而言，过度的创新必然导致过多的失败，以及效率的低下。 <br /><br />　　以下方式是我的成长中曾经做过的，也是我用来训练新员工的方案。你们也可以试试。 <br /><br />　　看到很多谈应聘技巧的帖子，其实并不实用，有菜谱并不代表能做出好菜，能不能做出好菜仍要看你天天炒，日日炒，炒出来的本事。 <br /><br />　　所以，我这里要强调的一点是，你收集到的任何资料都不能只是看看，而必须自己手把手，动手去整理、去归类，去建立新的结构，这个信息收集与处理的过程甚至比你最后总结成文的文字更重要。 <br /><br />　　何谓“学习”？学习学习，学而习，习而成习惯。光学不习，那知识还只是书上的，老师教的，不是你自己的，只有你重复练习了，经过量变，才会有质变，当你形成条件反射时，你就真正掌握这个东西了。 <br /><br />　　这个过程需要维持两至三个月的时间，一定要坚持下去，你会看到自己的变化的。否则，你会用你最青春的两三年来慢慢沉淀出这些你两三个月就能掌握的东西。 <br /><br />　　一切一切，其实，你们比的不是其它的东西，只是比的速度。 <br /><br />　　这也是为什么我那么强调基本功的原因。 <br />　　　　 <br />　　　　 <br />　　　　1. 职业分析： <br />　　　　A. 分析性格——分析长处和短处——分析大家都有的长处——确定自己最终发展的专业 <br />　　　　B. 确定兴趣——分析竞争的激烈程度和发展的空间大小——寻找相对优势—确定自己最终进入的行业 <br />　　　　C. 确定行业内自己的专业方向，继续保持自身的专业优势。 <br />　　　　 <br />　　　　2. 编写行业报告——着重对行业全面性的把握。 <br />　　　　A. 通过上网查询和购买行业报刊，收集不少于三十万字的行业、重点企业的有效资料，在电脑中进行资料分析、分类、汇总。 <br />　　　　B. 参考同类行业书籍，确定写作提纲，确定文章结构和逻辑方向，培养文字表达能力和逻辑能力，以及熟练的电脑使用技能。 <br />　　　　C. 将三十万字资料浓缩成十至十五万字，写成一本符合出版行文格式要求的行业报告。如果选题好，还真的有出版的可能性。如果有一定的独特见解，也可以写成文章争取在专业刊物上发表，树立个人专业形象。 <br />　　　　 <br />　　　　3. 编写讲座报告——着重对专业系统性的把握。 <br />　　　　A. 根据你希望从事的专业岗位，从报告中选择两到三个重点，将书稿压缩成两万字的讲座稿（按每分钟150字的演讲速度，即两个小时）。 <br />　　　　B. 将演讲稿再浓缩成两千字的提纲和重要内容，使用PPT软件编成演讲用演示文件，并根据相关内容配以精彩图片。 <br />　　　　C. 培养职业化的公众表达能力和表达方式，练习普通话，使用讲座稿进行互动讲座和演讲练习，只到脱口而出。 <br />　　　　 <br /><br />　　告诉大家两个名人是这么成长的． <br />　　 <br />　　一个是教英语的李阳，他读大学时成绩不好，英语不及格，然后他做什么去了？他跑到没人的地方大声喊英语去了． <br />　　 <br />　　一个是做广告的叶茂中，他卖广告卖不出去了，他跑回家写书．别人看到的和他自己说的是拿着书出版出了名，发达了．其实做过这个事的人才会知道，当他把这本书写出来时，能不能出版已经不重要的，因为他知道他变化了． <br />　　 <br />　　我当时也是没办法了，把所有的钱买了台电脑，在家里做了三个月这个事，三个月后的变化是惊人的，我的父母、我兼职的公司的老总，最重要的是我自己，都感觉到了自己的变化。 <br />　　 <br />　　完全不同了。 <br /><br />　　其实我写的已经不是理论了，其实什么都没有技巧的，只是多看书，然后多做，硬磕，坚持下去，刚开始觉得没变化，没感觉，很累，坚持不下去，然后做着做着，就越来越快了，然后慢慢的有变化． <br /><br />　　而且有意思的是，我在家呆了三个月，做的事其实根本与我所从事的工作没有一点关系．只是这三个月的训练，对于我的逻辑、结构、全局性、文字表达能力、口头表达能力有了极大的提升。 <br /><br />　　至于收入翻５翻，当年一个月也就八百块钱，然后做完这个训练后整个人的状态都变了，有自信了，然后写了一个方案去应聘，结果进了一家大公司，当然，开始我还不想去，因为对方只给我800/月，还要自己租房子，吃饭，觉得不好，但是对方连续四个月三次打电话找我，于是我去了，结果去了就后悔了，真正好的公司根本不在乎工资的，重要的是你自己的能力。第一个月，我就挣了八千块，我以前想都不敢想的。然后两个月就转了正，而有一个有关系的同事，呆了一年还没能转正。然后每个月的收入超过工资几倍，还有年终奖两万，出国旅游，其实也不累，我到这个家公司的同时，还到另一家广告公司兼职，呵呵，很回忆的过去。 <br /><br />　　现在看到太多的人谈工资，我确实不喜欢，我这几年都不和老板谈工资的，因为说出来好笑，帐面工资高了，还要多扣税． <br /><br />　　我只在意公司的分配方式，怎么样算提成和奖金，年薪． <br />　　 <br />　　上个月有一个和我同龄的名牌大学MBA来我现在所在的小公司应聘,不愿意和人事小姐谈,老板不在,我就来谈了,我说好呀,以你的资历我不能和你谈给谁做副手的问题了,我跟你谈谈公司的分配方式吧,其实我们公司普通员工的收入都不高的,长沙平均水平,只是不忙,周末休两天,工作满一年还有一个星期的年休假. <br />　　 <br />　　但是公司几个部门负责人还是有钱的,象我三十岁,一年18万左右的年薪,其它的我就不清楚了,有几个我一个星期才见一次的,比我还小,只怕拿得比我还多.你应该也是这样的吧. <br />　　 <br />　　他要求6千一个月的月薪,我说这倒不重要,重要的是公司不会给你安排业务的,你自己找业务回来,公司给你平台,给你配团队,能挣多少钱是你的本事. <br />　　 <br />　　我说完了,问,你有什么想法吗?他说没想法,起身走人. <br />　　 <br />　　太有意思了,你在长沙想拿六千一个月,你等别人找事给你做,你为什么不能自己找到项目呀?六千是底薪呀,差不多7万2千的底薪,如果是这样的,那我自己算我应该拿到二十五万以上的年薪了. <br />　　 <br />　　从来拿底薪和拿年薪的人就是不一样的. <br />　　 <br />　　如果你不敢拿年薪,你就不要想着谈什么老板给你少了. <br />　　 <br />　　企业是要盈利的,资本家是要剥削的.问题是,如果你是一个真正能创造价值的人,你自己所创造的价值你是可以拿到手的. <br />　　 <br />　　大学毕业生,如果什么经验也没有,只有知识,没有技能,能找到一个给你几百块钱,让你在这里呆着学东西的企业就应该感谢了,如果你觉得这种企业不是你所向往的,你在上大学时就老老实实努力学,少玩,多练. <br />　　 <br />　　我工作有一个总结,钱永远不会是目标,但是它会是结果. <br /><br />　　谈到职业规划，有人说过职业可以规划的，我也相信未来可以计划的，问题是，你是不是这个能不能计划出你未来的人，以及，你身边有没有熟悉你的高人指点，如果没有，那你自己都不会明白你自己的未来是什么的，就象象你去做所谓的性向测试，说不定是你自己在自欺欺人了，这种事多了，没人会把自己算成一个坏人的。 <br /><br />　　所以重要的还是那一句话，复杂的生活简单过，简单的事情重复做。 <br />　　 <br />　　你是中文系的，如果你的年纪还不是很大，建议你凭你自己的能力，哪怕是工资少点，你都要进最好的广告公司，去呆上一年半载，按我说的方法偷师，基本能力提升了，慢慢的你会遇到一些贵人的，还有你会涉及一些行业，慢慢的，你会发觉你内心深处喜欢的行业。 <br />　　 <br />　　呵呵，特别是哦，女孩子，只有努力才能进大公司，只有进了大公司才能遇到优秀的男生。好男生都关在写字楼里上班下班加班的，呵呵。生活圈子都小的，你选择的工作圈在你努力的阶段就是你的生活圈。 <br /><br />　　在你的成长过程中，有五个人非常重要。 <br />　　　　 <br />　　第一个，导师，教练。 <br />　　他教给你实用的技巧、一定的工作经验，而不是知识。他可以给你指明方向。 <br />　　这个人可能是你的上司、前辈、学长。 <br />　　　　 <br />　　第二个，陪练，同路人。 <br />　　任何人的成长都不是学出来的，而是学而习，习而成习惯，练出来的。在这个练的过程中，是一件很苦的过程，是一系列简单动作的重复重复再重复，由量变到质变的过程，在这个过程中，一个人很难坚持下来，这时你需要一个同路人。 <br />　　他可以是和你共同兴趣，共同目标的朋友，最好是你生命中所爱的人。 <br />　　　　 <br />　　第三个，榜样，他是你人生的标杆。 <br />　　在你一生中，在不同阶段，会有不同的标杆，你向他学习，受他鼓舞，一步一步向他靠扰。 <br />　　最重要的是那个你看得到摸得着的人，你知道，不需要通过机遇，只需要通过努力就可以达到的榜样。 <br />　　　　 <br />　　第四个，敌人，看不起你的人，拒绝过你的人。 <br />　　人不到绝境是不会有斗志的，你要证明他是错的，他会给你真正的动力。 <br />　　　　 <br />　　第五个，最重要的是第五个，你们觉得第五个人是你自己。 <br />　　世界上没有救世主，任何希望当别人救世主的人不是疯子就是傻子，只有自己才可以救自己。 <br />　　这个世界上，失败的人除了天分太差之外，只有以下几点，懒，方向不对，方法不对，没有坚持。 <br />　　如果你自己做不到，你不要怪别人。 <br /><br />　　基本功是你自己的，细节所积累下来的，能让你迅速融入新环境． <br />　　 <br />　　 <br />　　不知道怎么跟大家谈基本功这个问题． <br /><br />　　很多东西大家都没把它当基本功了． <br /><br />　　比如说，我想要的人，他打字很快，他很少很少写错别字，有丰富的词汇量，逻辑很清晰，用词很准确，这些看上去难不难？ <br />　　 <br />　　但是在我这两年见过的应聘的策划文案来看，只有两个人做到了．一个是做了三年文案的女孩子，慢慢磨的．一个是中文硕士生，还没毕业． <br />　　 <br />　　其实大学到底教给大家什么了？ <br />　　知识？ <br />　　 <br />　　大学阶段必须打好你的基本功，这些决定了你就业后的学习能力，阶层简单工作的工作效率． <br />　　 <br />　　如果谁还说打字、排版是文员做的事，那只能说他是真正不明白真正的职场需要。 <br />　　 <br />　　你们在大学所学到的知识，都是同质化的了，如果将知识变为通用的、标准化的技能才是重要的。 <br />　　 <br />　　既然学的东西没用，那在大学还要不要认真学习呢？ <br />　　 <br />　　当然要，因为这些东西是系统性的，这个学习过程能培养你的学习能力。 <br />　　 <br />　　知识不能改变你的命运了，但是它可以改变你的气质。 <br />　　 <br />　　如果你读个四年大学出来，你的气质还不能好一点，那你的大学就真的白读了。 <br />　　 <br />　　经常有人在问面试穿什么衣服呀？ <br />　　 <br />　　穿什么衣服重要吗？ <br />　　 <br />　　重要的是什么人在穿这些衣服。 <br />　　 <br />　　重要的是你的精气神，你的气质。 <br />　　 <br />　　有一天有一个应聘文案的来了，我叫设计总监先和他聊聊。 <br />　　 <br />　　聊完了，我说这个人不行吧，设计总监说为什么？ <br />　　 <br />　　我说我们调性不符，我们多少都有点书卷气，而他是一脸的江湖气。 <br />　　 <br />　　果然，呵呵。 <br />　　 <br />　　招聘方当然是要看应聘者的外形条件的，但并不是丑的就不招，重要的是能力和你的气质，是不是符合公司要求的。 <br /><br />　　重要的是兴趣。 <br />　　 <br />　　然后是狂练基本功，简单重复积累。 <br />　　 <br />　　学打拳，你先站三个月桩再说。 <br />　　 <br />　　面对新人，我说很多东西，你会发现，每个字你都认识，每句话你都看得懂，但是你理解吗？ <br />　　 <br />　　领悟，是教不了的。 <br />　　 <br />　　自己努力吧，自己重复做，再会明白自己最想要的是什么。 <br />　　 <br />　　你考公员员如果死活考不上，那你应该去想想，这种机械性的考试你都过不了，那是不是学习方法，或者兴趣不对呀？ <br />　　 <br />　　做销售，同样的，从基阶做起吧。 <br />　　 <br />　　你的财政学对你有没有帮助？ <br />　　 <br />　　当然有，你对销售的认识会不同的。 <br />　　 <br />　　象十年前我卖保险，人人都跟银行比，算利息，都算得没有银行高，只能说死了人有赔了。 <br />　　 <br />　　而我是怎么算呢？我用递增，还是增减年金公式算，呵呵，比银行高呢。 <br />　　 <br />　　另外，别人说死了人有赔，最多是说得婉转点。 <br />　　 <br />　　我可没把它当死人卖呀，我把它当礼物卖，当成父母送给孩子的礼物卖，卖得可好了，呵呵。 <br />　　 <br />　　现在哪个做人寿险的人敢说他一年做两百多单？ <br />　　 <br />　　呵呵，我好象一年做了二百四十单左右，全是年缴哦。 <br /><br />　　这个世界上最穷的和最富的人都在做销售． <br />　　 <br />　　做销售的人底薪很低的，大多数人拼的只是体力罢了，如果你想做好，你多花心思就可以了．多想多跑，还是在一个行业里多坚持，找到高手做师父带你． <br /><br />　　我说说当年我混日子的时候怎么过来的． <br />　　 <br />　　那年头电脑还紧俏，我只要一有机会就到别人电脑上练东西，终于练成了今天的电脑基本功，一方面要多学，一方面要多用心． <br />　　 <br />　　然后，我每天做记录，记下工作的流程，记下别人说过的工作中重要的话，其实什么叫行业经验，很多老手随便说的话，都是行话了，有它的意思的，听了就要想，就要去查，很多东西就知道了． <br />　　 <br />　　为什么要记录，因为什么叫职业化？职业化就是标准化、流程化，模式化，你多看多记多想就能明白了，这些东西在很多地方都是通用的。 <br />　　 <br />　　有一点，如果这里收入还可以的话，你好好学吧，任何工作都要呆一两年，你才会有认识的，跳来跳去的对你不好，真的，你还在磨性情的时候，只要你保持学习的能力，别下班玩去了就可以了，有压力才有动力，好好留心心仪的公司招聘的要求，按那个要求去做一个一年的训练与学习计划，一年后，那个公司在等你。
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/157911#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 20 Jan 2008 23:31:59 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/157911</link>
        <guid>http://linde13652.javaeye.com/blog/157911</guid>
      </item>
      <item>
        <title>Struts和Spring整合方案</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/157904" style="color:red;">http://linde13652.javaeye.com/blog/157904</a>&nbsp;
          发表时间: 2008年01月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Struts和Spring整合方案有两种：<br /><br />   方案一：<br />   使用委托方式，将struts中的Action配置到spring中，然后通过委托方式来调用Action<br /><br />   方案二：<br />   将spring上下文启动配置到struts中，通过struts运行来加载spring的配置以及让spring工作起来。<br />   不管采用那种方案，都需要在struts的配置文件中，将spring配置进来，，目的就是当请求到达struts后，可以与spring协同工作。
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/157904#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 20 Jan 2008 22:51:28 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/157904</link>
        <guid>http://linde13652.javaeye.com/blog/157904</guid>
      </item>
      <item>
        <title>DataSource实现连接池的好处</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/151026" style="color:red;">http://linde13652.javaeye.com/blog/151026</a>&nbsp;
          发表时间: 2007年12月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          物理连接和逻辑连接 <br /><br />不使用DataSource的连接池:<br /><br />    1. 需要操作连接池专有API借出物理连接<br />    2. 用后不得关闭连接, 再使用专有API归还连接 <br /><br />使用DataSource的连接池:<br /><br />    1. 通过getConnection方法返回逻辑连接;<br />    2. 连接对象使用代理模式, 覆盖连接接口的close方法, 用于归还连接;<br />    3. 上述过程对jdbc开发者透明, 原来的代码不需要任何改变
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/151026#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 26 Dec 2007 19:11:42 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/151026</link>
        <guid>http://linde13652.javaeye.com/blog/151026</guid>
      </item>
      <item>
        <title>Eclipse和MyEclipse怎么配置derby数据库</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/150571" style="color:red;">http://linde13652.javaeye.com/blog/150571</a>&nbsp;
          发表时间: 2007年12月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天看到一个文档，里面给了一个例子，使用的是derby数据库，开发工具是Eclipse（3.3.0）在做项目用的是MyEclipse（6.0）为了能看看其功能，我就照配了下环境，发现了几个容易出错的问题，首先是把derby的插件复制到MyEclipse的plugins包下，然后在MyEclipse目录打开mylipse.ini配置文件：<br /><span style="color: darkred">[color=darkred][color=darkred][color=darkred][color=blue]-showsplash<br />com.genuitec.myeclipse.product<br />--launcher.XXMaxPermSize<br />256M<br />-vmargs<br />-Dosgi.requiredJavaVersion=1.5<br />-Xms128m<br />-Xmx512m    <br />-Dosgi.splashLocation=e:\MyEclipse 6.0.0 M1\eclipse\MyEclipseSplash.bmp<br />-Duser.language=en <br />-XX:PermSize=128M <br />-XX:MaxPermSize=256M</span>[/color][/color][/color][/color]   在256M下加入-clean，这里注意了，刚刚开始我是加在256M上面，但是重启了几回MyEclipse，就是加不进来，后来加在下面就好了，原因我现在还没弄明白呢，有高手望指教！配置好后，重启MyEclipse，右击项目，如果出现Apache Derby选项就是配置成功了！然后把它加载到项目中， 在运行的时候要注意，一定要先启动MyEclipse的tomcat，然后才启动derby数据库，因为MyEclipse比较霸道，总认为自己是第一个启动的连接，所有如果先启动derby数据库，MyEclipse的tomcat就无法启动了！<br />   另外，如果是Eclipse的话，配置基本一样，就是在运行项目时，可以不分先后启动derby数据库和Eclipse的tomcat，因为Eclipse的tomcat不抢占第一连接！
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/150571#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 24 Dec 2007 19:26:58 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/150571</link>
        <guid>http://linde13652.javaeye.com/blog/150571</guid>
      </item>
      <item>
        <title>中文过滤器---Filter</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/150373" style="color:red;">http://linde13652.javaeye.com/blog/150373</a>&nbsp;
          发表时间: 2007年12月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在jsp页面传接收中文字符时，常常会出现乱码问题，解决起来很简单，只要加一个中文过滤器的类就可以，值得注意的是，此类是实现Filter类，所有起类名时要与其有区别才 可以（例如:EncodingFilter）,简单代码如下：<br /><span style="color: red">import</span> java.io.IOException;<br /><span style="color: red">import</span> javax.servlet.Filter;<br /><span style="color: red">import</span> javax.servlet.FilterChain;<br /><span style="color: red">import</span> javax.servlet.FilterConfig;<br /><span style="color: red">import</span> javax.servlet.ServletException;<br /><span style="color: red">import</span> javax.servlet.ServletRequest;<br /><span style="color: red">import</span> javax.servlet.ServletResponse;<br /><br /><span style="color: blue">/**<br /> * 编码过滤器, 默认UTF-8<br /> * <br /> * @author linde13652<br /> * <br /> */</span><br /><span style="color: red">public class</span> EncodingFilter <span style="color: red">implements</span> Filter {<br /><br />	<span style="color: red">private</span> String <span style="color: blue">encoding</span> = <span style="color: blue">"UTF-8";</span><br /><br />	<span style="color: red">public void </span>destroy() {<br />	}<br /><br />	<span style="color: red">public void </span>doFilter(ServletRequest request, ServletResponse response,<br />			FilterChain chain) <span style="color: red">throws</span> IOException, ServletException {<br />		request.setCharacterEncoding(<span style="color: red">this</span>.<span style="color: blue">encoding</span>);<br />		chain.doFilter(request, response);<br />	}<br />	<span style="color: red">public void </span>init(FilterConfig config) throws ServletException {<br />		String encoding = config.getInitParameter("<span style="color: blue">encoding</span>");<br /><br />		<span style="color: red">if</span> (encoding != <span style="color: red">null</span> && encoding.trim().length() > 0) {<br />			<span style="color: red">this</span>.<span style="color: blue">encoding</span> = encoding;<br />		}<br />	}<br /><br />}
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/150373#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 24 Dec 2007 09:11:08 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/150373</link>
        <guid>http://linde13652.javaeye.com/blog/150373</guid>
      </item>
      <item>
        <title>用javascript小工具实现日期简洁输入</title>
        <author>linde13652</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://linde13652.javaeye.com">linde13652</a>&nbsp;
          链接：<a href="http://linde13652.javaeye.com/blog/150071" style="color:red;">http://linde13652.javaeye.com/blog/150071</a>&nbsp;
          发表时间: 2007年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在用户登陆界面通过javascript实现日期的简单输入，首先要在jsp的web根目录下导入时间的包文件（注：附件里带有）然后在jsp页面的&lt;head>&lt;/head>之间倒入注释：<br /><br /><pre name="code" class="java"> &lt;!-- calendar stylesheet --> 
 &lt;link rel="stylesheet" type="text/css" media="all"
href="${pageContext.request.contextPath }/calendar/calendar-win2k-cold-1.css" title="win2k-cold-1" />
&lt;link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath }/css/list.css" /> &lt;!-- main calendar program --> 	
 &lt;script type="text/javascript"
src="${pageContext.request.contextPath }/calendar/calendar.js">&lt;/script> 		
&lt;!-- language for the calendar -->	
script type="text/javascript"
src="${pageContext.request.contextPath }/calendar/calendar-en.js">&lt;/script>	
 &lt;!-- the following script defines the Calendar.setup helper function, which makes
       adding a calendar a matter of 1 or 2 lines of code. --> 	
[&lt;script type="text/javascript"
src="${pageContext.request.contextPath }/calendar/calendar-setup.js">&lt;/script> </pre><br /> 完成了上面步骤，就可以在日期的&lt;input/>后面加入触发器代码:<br /><br /><pre name="code" class="java">&lt;script type="text/javascript">
Calendar.setup({
	inputField:"birthday",
					
         ifFormat:"%Y-%m-%d",
	
         button:"birthday_trigger"});

      &lt;/script></pre><br />这样，鼠标一点击日期的输入框，就会跳出时间供我们选择，很方便！！
          <br/>
          <span style="color:red;">
            <a href="http://linde13652.javaeye.com/blog/150071#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 21 Dec 2007 21:40:51 +0800</pubDate>
        <link>http://linde13652.javaeye.com/blog/150071</link>
        <guid>http://linde13652.javaeye.com/blog/150071</guid>
      </item>
  </channel>
</rss>