<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>典典滴滴</title>
    <description>2000年开始一直从事java开发，经历了程序员、架构师、技术经理、项目经理等职位，带着学习的态度来到javaEye，希望能和更多人沟通并成为朋友！</description>
    <link>http://selectme-2008.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>IT资讯</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/216467" style="color:red;">http://selectme-2008.javaeye.com/blog/216467</a>&nbsp;
          发表时间: 2008年07月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          计世资讯的报告显示，2007年中国SaaS市场的规模为157.5亿元。官方统计显示，2007年整个中国软件产业规模已达5834亿元，仅次于美国、欧美、日本，位居全球第四位
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/216467#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 19 Jul 2008 11:32:55 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/216467</link>
        <guid>http://selectme-2008.javaeye.com/blog/216467</guid>
      </item>
          <item>
        <title>一个有价值的创意</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/212026" style="color:red;">http://selectme-2008.javaeye.com/blog/212026</a>&nbsp;
          发表时间: 2008年07月06日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近经常在网上逛，看到了不少好的文章和对自己可能有用的咨询，想把它收藏起来，但苦于没有便捷的工具难以如愿，IE等浏览器一般是收藏在本地，而我希望的是把收藏的内容放在网络上，这样我随时随地可能拿出来温习，或以后用于参考。<br />我希望便捷到通过邮件菜单或浏览器菜单，就可以将选中的文本或联系存到默认的网上。
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/212026#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 06 Jul 2008 13:55:24 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/212026</link>
        <guid>http://selectme-2008.javaeye.com/blog/212026</guid>
      </item>
          <item>
        <title>六度分割理论</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/208860" style="color:red;">http://selectme-2008.javaeye.com/blog/208860</a>&nbsp;
          发表时间: 2008年06月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1967年，哈佛大学的心理学教授Stanley Milgram(1933～1984)创立了六度分割理论，简单地说：“你和任何一个陌生人之间所间隔的人不会超过六个，也就是说，最多通过六个人你就能够认识任何一个陌生人。”按照六度分隔理论，每个个体的社交圈都不断放大，最后成为一个大型网络。这是社会性网络(Social Networking)的早期理解。后来有人根据这种理论，创立了面向社会性网络的互联网服务，通过“熟人的熟人”来进行网络社交拓展，比如Friendster，Wallop,adoreme等
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/208860#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 28 Jun 2008 01:57:07 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/208860</link>
        <guid>http://selectme-2008.javaeye.com/blog/208860</guid>
      </item>
          <item>
        <title>彼得原理</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/203877" style="color:red;">http://selectme-2008.javaeye.com/blog/203877</a>&nbsp;
          发表时间: 2008年06月15日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          彼得原理：每一个职工由于在原有职位上工作成绩表现好（胜任），就将被提升到更高一级职位；其后，如果继续胜任则将进一步被提升，直至到达他所不能胜任的职位。由此导出的彼得推论是，“每一个职位最终都将被一个不能胜任其工作的职工所占据。层级组织的工作任务多半是由尚未达到不胜任阶层的员工完成的。”
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/203877#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 15 Jun 2008 23:15:26 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/203877</link>
        <guid>http://selectme-2008.javaeye.com/blog/203877</guid>
      </item>
          <item>
        <title>跟下属的一段谈话</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/203231" style="color:red;">http://selectme-2008.javaeye.com/blog/203231</a>&nbsp;
          发表时间: 2008年06月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          曾经跟我的管理团队谈过的一段话，值得我铭记于心，也想跟大家分享一下：<br />也许我不算是一个聪明的人，但是我可以向大家保证，我会尽我所能不埋没各位的才能，这个舞台属于我们所有人，我希望大家都能放开手脚尽情舞蹈，而我将会是你们最忠实的fans，一定会给予你们最热烈的掌声和全力的支持。
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/203231#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 14 Jun 2008 13:28:43 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/203231</link>
        <guid>http://selectme-2008.javaeye.com/blog/203231</guid>
      </item>
          <item>
        <title>无线局域网安全现状与安全威胁</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/196632" style="color:red;">http://selectme-2008.javaeye.com/blog/196632</a>&nbsp;
          发表时间: 2008年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          　　计算机通信网络随着互联网技术的飞速发展而发展，从传统的有线网络发展到今天的无线网络，作为无线网络主要网络之一的无线局域网WLAN(Wireless Local Area Network)，满足了人们实现移动办公的梦想，为用户创造了一个丰富多彩的自由天空，让人能够真正体会到网络无处不在的奇妙感觉。<br /><br />　　无线局域网(WLAN)是利用无线通信技术在一定的局部范围内建立的网络，是计算机网络与无线通信技术相结合的产物，它以无线传输介质(无线多址信道、微波、卫星等)作为传输媒介，提供传统有线局域网LAN(Local Area Network)的功能，能够使用户真正实现随时、随地、随意的宽带网络接入。<br /><br />　　关于无线局域网安全现状与安全威胁问题，国家网络工程师，资深网络安全专家张敏波先生在他的新书《网络安全实战(企业专用版)》中进行了详细的剖析，并给无线局域网工作者提出一些合理的指导。<br /><br />　&nbsp; 一、无线局域网安全现状<br /><br />　　张先生说，WLAN开始是作为有线局域网的延伸而存在的，各团体、企事业单位广泛地采用了WLAN技术来构建其办公网络。随着应用的进一步发展，WLAN正逐渐从传统意义上的局域网技术发展成为“公共无线局域网”，成为国际互联网宽带接入手段。无线局域网之间传递消息不依赖于物理布线，这无疑给用户带来了极大的方便，但同时也使得无线局域网比传统局域网面临更多的安全威胁。而无线网络安全问题，主要表现在如下几个方面的问题。<br /><br />　　(1)WEP密钥的发布问题<br /><br />　　802.11本身并未规定密钥如何分发。所有安全性考虑的前提是假定密钥已通过与802.11无关的安全渠道送到了工作站点上，而在实际应用中，一般都是手工设置，并长期固定使用4个可选密钥之一。因此，当工作站点增多时，手工方法的配置和管理将十分烦琐并效率低下，而且密钥一旦丢失，WLAN将无安全性可言。<br /><br />　　(2)WEP用户身份认证方法的缺陷<br /><br />　　802.11标准规定了两种认证方式：开放系统认证和共享密钥认证。前者是默认的认证方法，任何移动站点都可加入BSS(Basic Service Set，基本服务集)，并可以跟AP(Access Point，接入点)通信，能“听到”所有未加密的数据，可见，这种方法根本没有提供认证，当然，也就不存在安全性。后者是一种请求响应认证机制：AP在收到工作站点STA的请求接入消息时发送询问消息，STA对询问消息使用共享密钥进行加密并送回AP，AP解密并校验消息的完整性，若成功，则允许STA接入WLAN。攻击者只需抓住加密前后的询问消息，加以简单的数学运算就可得到共享密钥生成的伪随机密码流，然后伪造合法的响应消息通过AP认证后接入WLAN。<br /><br />　　(3)WEP服务集标识SSID和MAC地址过滤<br /><br />　　WEP服务集标识SSID由Lucent公司提出，用以对封闭网络进行访问控制。只有与AP有相同的SSID的客户站点才允许访问WLAN。MAC地址过滤的想法是AP中存有合法客户站点的MAC地址列表，拒绝MAC地址不在列表中的站点接入被保护的网络。但由于SSID和MAC地址很容易被窃取，因此安全性较低。<br /><br />　　(4)WEP加密机制的天生脆弱性<br /><br />　　WEP加密机制的天生脆弱性是受网络攻击的最主要原因，目前，消除WEP算法安全性方面缺陷的工作正在加紧进行，其中IEEE Group i开发了WEP2算法作为802.11i的安全标准，它对现有系统改进相对较小并易于实现。<br /><br />&nbsp;&nbsp;&nbsp; 二、无线局域网的安全威胁<br /><br />　　现在，除了有线网络常见的网络安全威胁以外，无线网络安全的威胁也越来越多，作为工作人员如何发现存在的威胁，并如何做处理时，张先生的书中也作了详细的的回答，主要有以下方面：<br /><br />　　(1)私接AP<br /><br />　　无线局域网接入点(WLAN AP)是便宜的，容易安装，小巧而容易携带。非法的WLAN AP可以无意地或者在IT管理人员无法察觉的情况下恶意地接入到企业网络。只需要把一个小巧的WLAN AP带到企业内部，然后连接到以太网接口上就行了。<br /><br />(2)不当设置的AP<br /><br />　　WLAN AP支持多种安全特性和设置。许多时候，IT管理人员都会让合法的AP仍旧保持出厂时的默认设置或者没有恰当地对它进行设置，这会使AP在没有加密或在弱加密(如WEP)的条件下工作。也有些时候，一个AP在没有设置任何口令的情况下与客户端连接，于是整个企业网络就都在没有任何口令情况下建立了无线连接。<br /><br />　　(3)客户端不当连接<br /><br />　　客户端不当连接就是企业内合法用户与外部AP建立连接，也存在不安全因素，这又怎样发生的呢?一些部署在工作区周围的AP可能没有做任何安全控制，企业内的合法用户的Wi-Fi卡就可能与这些外部AP建立连接。一旦这个客户端连接到外部AP，企业内可信赖的网络就置于风险之中，外部不安全的连接通过这个客户端就接入到了用户的网络。因此，要防止在不知情的状况下发生合法用户与外部AP建立连接或内部信息外露的情况。<br /><br />　　(4)非法连接<br /><br />　　非法连接是指企业外的人员与企业内合法的AP建立连接，这通常发生在无线空间没有安全控制的情况下。如果一个非法用户与合法AP建立连接，就意味着用户的网络向外部开放了，这会导致重要数据和信息外泄。<br /><br />　　(5)直连网络<br /><br />　　802.11 WLAN标准提供一种在无线客户端间建立点对点无线连接的方式。无线客户端之间可以借此建立一个直连网络(Ad Hoc)。但是，这种直连网络带来了安全漏洞，攻击者可以在网络周边隐藏区内与企业内一个合法的笔记本电脑建立无线连接。比如：如果这台笔记本电脑与其他合法用户共享了某些资源(文件或目录等)，攻击者也可以通过直接连接获得这些资源。<br /><br />　　总之，无线网络安全问题对利用无线上网的企业形成的威胁，其严重性决不可小视。非法设备通过AP与企业网络连接会导致数据失窃、数据重路由、数据崩溃、身份模拟、DoS、病毒感染，以及其他类型在企业有线网络中存在的网络安全威胁。其中无线局域网传输作为开放的传输介质很容易被用来发动DoS攻击。例如以下的DoS攻击：authentication, association, de-authentication或disassociation flood, NAV attack, CTS flood, and EAP and EAPOL message floods就可以轻易发动而造成整个企业无线局域网瘫痪。
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/196632#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 25 May 2008 08:46:18 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/196632</link>
        <guid>http://selectme-2008.javaeye.com/blog/196632</guid>
      </item>
          <item>
        <title>SaaS给了我们什么好处</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/196631" style="color:red;">http://selectme-2008.javaeye.com/blog/196631</a>&nbsp;
          发表时间: 2008年05月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          简介<br /><br />　　SaaS是Software-as-a-service(软件即服务)的简称，它是一种通过Internet提供软件的模式，用户不用再购买软件，而改用向提供商租用基于Web的软件，来管理企业经营活动，且无需对软件进行维护，服务提供商会全权管理和维护软件，对于许多小型企业来说，SaaS是采用先进技术的最好途径，它消除了企业购买、构建和维护基础设施和应用程序的需要，近年来，SaaS的兴起已经给传统套装软件厂商带来真实的压力。<br /><br />　　SaaS服务提供模式<br /><br />　　SaaS服务提供商为中小企业搭建信息化所需要的所有网络基础设施及软件、硬件运作平台，并负责所有前期的实施、后期的维护等一系列服务，企业无需购买软硬件、建设机房、招聘IT人员，只需前期支付一次性的项目实施费和定期的软件租赁服务费，即可通过互联网享用信息系统。服务提供商通过有效的技术措施，可以保证每家企业数据的安全性和保密性。企业采用SaaS服务模式在效果上与企业自建信息系统基本没有区别，但节省了大量用于购买IT产品、技术和维护运行的资金，且像打开自来水龙头就能用水一样，方便地利用信息化系统，从而大幅度降低了中小企业信息化的门槛与风险。<br /><br />　　SaaS服务的优势<br /><br />　　对企业来说，SaaS的优点在于：<br /><br />　　⒈ 从技术方面来看：企业无需再配备IT方面的专业技术人员，同时又能得到最新的技术应用，满足企业对信息管理的需求。<br /><br />　　⒉ 从投资方面来看：企业只以相对低廉的“月费”方式投资，不用一次性投资到位，不占用过多的营运资金，从而缓解企业资金不足的压力;不用考虑成本折旧问题，并能及时获得最新硬件平台及最佳解决方案。<br /><br />　　⒊ 从维护和管理方面来看：由于企业采取租用的方式来进行物流业务管理，不需要专门的维护和管理人员，也不需要为维护和管理人员支付额外费用。很大程度上缓解企业在人力、财力上的压力，使其能够集中资金对核心业务进行有效的运营。
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/196631#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 25 May 2008 08:39:14 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/196631</link>
        <guid>http://selectme-2008.javaeye.com/blog/196631</guid>
      </item>
          <item>
        <title>管理是一种服务</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/194674" style="color:red;">http://selectme-2008.javaeye.com/blog/194674</a>&nbsp;
          发表时间: 2008年05月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          管理是一种服务，为团队、组员、项目利益相关者服务，为了他们能够达成同一个项目目标而服务，项目经理就是这些服务的提供者。<br />事实上，项目经理应当站在团队之外来看待这个团队及其目标，项目经理的职责就是提供一种外力使得这个团队内部产生合力并最终完成团队任务，而这种外力可以简单地理解为协调、沟通和指导，包括资源的合理配置。切忌亲力亲为，比如亲自去承担一些具体的攻关任务，攻关任务是团队成员所做的事情，项目经理其实不是项目团队的成员。
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/194674#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 20 May 2008 00:32:53 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/194674</link>
        <guid>http://selectme-2008.javaeye.com/blog/194674</guid>
      </item>
          <item>
        <title>在JBoss下开发、部署EJB</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/191811" style="color:red;">http://selectme-2008.javaeye.com/blog/191811</a>&nbsp;
          发表时间: 2008年05月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>在JBoss下开发、部署EJB</strong><br /><br />JBoss是一个开放源码的EJB服务器，它与其它服务器整合后可以提供一个完整的J2EE平台。本文介绍如何在Linux环境下安装和配置JBoss，以及如何在JBoss平台上实现EJB的开发和部署。 <br /><br />作为J2EE架构中最重要的构件，EJB是实现服务器端分布式计算的核心。EBJ服务器是EJB的容器，它控制着EJB的运行，并为其提供事务处理、数据库访问、安全控制等一系列系统级的服务。 <br /><br />EJB服务器是J2EE应用服务器的一个重要组成部分。Sun公司的J2EE SDK、IBM公司的WebSphere，以及BEA公司的WebLogic等J2EE实现都内嵌了EJB服务器。虽然JBoss目前还不是一个完整的J2EE应用服务器，但它却是一个完整的EJB服务器，在与Tomcat、Jetty等Web服务器整合后，能够提供一个完整的J2EE平台。 <br /><br />JBoss最大的优点在于它是源代码开放的自由软件，并完全遵循J2EE规范。由于JBoss强大的功能和优异的性能，以及与Linux等GNU项目的结合，目前已经成为J2EE服务器端企业级应用的一股强大力量。 <br />创建EJB<br /><br />下面以一个简单的无状态会话Bean为例，讲述如何为JBoss平台编写EJB。按照EJB规范，一个EJB中至少应该包含如下三个类的实现： <br /><br />◆远程接口 <br />远程接口暴露了整个EJB对外界的接口，在本例中远程接口封装在greet.Greet类中。 <br /><br />◆本地接口 <br />本地接口描述了创建、管理和销毁EJB时的行为，在本例中本地接口封装在greet.GreetHome类中。 <br /><br />◆Bean类 <br />Bean类实现了远程接口中定义的所有方法，在本例中Bean类封装在greet.GreatBean类中。 <br /><br />EJB在发布时是以一个JAR包的形式提供的。EJB服务器要求该JAR包中必须包含所有的类文件和相应的部署文件，并且要按照EJB开发时的目录结构进行组织。在我们的例子中，所有的类文件都位于greet目录下，部署文件则位于META-INF目录下<br /> <br />部署描述符<br /><br />根据EJB规范，要想将EJB成功地部署到EJB服务器上，必须为EJB服务器提供相应的部署描述符。部署描述符对所要部署的EJB进行了说明，包括该EJB的远程描述符、本地描述符和Bean类等信息。由于EJB服务器只有在获得这些基本信息后才能正确完成EJB的部署，因此编写EJB描述符是开发EJB时必不可少的一个环节。 <br /><br />对于不同的EJB服务器来说，部署同一EJB时所需的部署描述符可能并不相同。在JBoss平台上，任何将要被部署的EJB都必须提供ejb-jar.xml和jboss.xml两个文件，这两个文件均位于JAR包中的META-INF目录下，用于对将要部署的EJB进行简要的说明。 <br /><br />ejb-jar.xml <br /><br />ejb-jar.xml是EJB规范定义的标准部署描述符，在任何EJB服务器上部署EJB时都需要用到该部署描述符。本例中用到的ejb-jar.xml代码如下所示： <br /><span style="color: red">&lt;?xml version="1.0" encoding="Cp1252"?> &lt;ejb-jar> &lt;description>jBoss test application &lt;/description> &lt;display-name>Test&lt;/display-name> &lt;enterprise-beans> &lt;session> &lt;ejb-name>GreetEJB&lt;/ejb-name> &lt;home>greet.GreetHome&lt;/home> &lt;remote>greet.Greet&lt;/remote> &lt;ejb-class>greet.GreetBean&lt;/ejb-class> &lt;session-type>Stateless&lt;/session-type> &lt;transaction-type>Bean&lt;/transaction-type> &lt;/session> &lt;/enterprise-beans> &lt;/ejb-jar></span><br /><br /><br />jboss.xml <br /><br />虽然ejb-jar.xml对所有的EJB服务器都是通用的，但它并没有为EJB服务器提供将要被部署的EJB的全部信息。为了能够对EJB的部署进行更灵活的控制，大部分EJB服务器都要求EJB开发者同时提供另外一个文件来对将要部署的EJB进行描述，在JBoss中该文件为jboss.xml，它也位于JAR包中的META-INF目录中。jboss.xml中可以对EJB对应的JNDI名字以及相应的持久性进行说明，在本例中用到的jboss.xml如下所示： <br /><span style="color: red">&lt;?xml version="1.0" encoding="ISO-8859-1"?> &lt;jboss> &lt;enterprise-beans> &lt;session> &lt;ejb-name>GreetEJB&lt;/ejb-name> &lt;jndi-name>GreetingEJB&lt;/jndi-name> &lt;/session> &lt;secure>false&lt;/secure> &lt;/enterprise-beans> &lt;resource-managers/> &lt;/jboss></span><br /><br />部署EJB<br />开发EJB的最后一步是将其中所有的类文件和相应的部署描述符压缩成JAR包，然后部署到EJB服务器上。在本例中，JAR包的生成可以通过下面这条命令来实现： <br /><span style="color: red">jar cf greetejb.jar greet/*.class META-INF/*.xml</span><br /><br /><br />该命令将greet目录下的.class文件和META-INF目录下的.xml文件压缩成greetejb.jar文件。如果想知道生成的JAR包是否正确地包含了所有的文件，可以用命令： <br /><span style="color: red">jar cvf greetejb.jar</span><br /><br /><br />来查看greetejb.jar中包含的文件。如果得到如下的类似信息，则说明所需的文件都已经被正确地包含在该压缩包中了，信息如下： <br /><span style="color: red">0 Sun May 24 15:32:10 CST 2002 META-INF/ 68 Sun May 24 15:32:10 CST 2002 META-INF/MANIFEST.MF 1007 Sun May 24 14:35:46 CST 2002 greet/GreetBean.class 209 Sun May 24 14:35:46 CST 2002 greet/Greet.class 251 Sun May 24 14:35:46 CST 2002 greet/GreetHome.class 493 Sun May 24 08:40:00 CST 2002 META-INF/ejb-jar.xml 303 Sun May 24 08:43:22 CST 2002 META-INF/jboss.xml</span><br /><br />生成的JAR包在JBoss上的部署相当简单，只需要将该文件复制到JBoss的deploy目录下就可以了，命令如下： <br /><span style="color: red">cp greetejb.jar /usr/jb_tom/jboss/deploy/</span><br /><br /><br />JBoss支持热部署，deploy目录下所有文件的改变都会被JBoss自动检测到，并根据检测结果对相应的EJB进行 <br /><span style="color: red">[INFO,ContainerFactory] Deploying GreetEJB [INFO,GreetEJB] Initializing [INFO,GreetEJB] Initialized [INFO,GreetEJB] Starting [INFO,GreetEJB] Started</span><br /><br />至此，EJB在JBoss平台上的部署就全部完成了，如果想知道该EJB能否正常地工作，则需要为其编写专门的客户端程序进行测试。 <br />测试EJB<br /><br />EJB存在的价值在于为其客户提供相应的服务，EJB客户包含的范围相当广泛，可以是另外的EJB、普通的JavaBean、JSP页面、Applet或者标准的Java应用程序。GreetClient.java是已经部署好的EJB的客户程序，其完整的源码如下所示： <br /><span style="color: red">import javax.naming.*; import java.util.Hashtable; import javax.rmi.PortableRemoteObject;&nbsp; import greet.*; class GreetClient {&nbsp; public static void main(String[] args) {&nbsp;&nbsp; System.setProperty("java.naming.factory.initial",&nbsp; "org.jnp.interfaces.Naming ContextFactory");&nbsp;&nbsp; System.setProperty("java.naming.provider.url",&nbsp; "localhost:1099"); try {&nbsp;&nbsp;&nbsp; // Get a naming context&nbsp;&nbsp;&nbsp; InitialContext jndiContext = new InitialContext();&nbsp;&nbsp; System.out.println（"Got context"）;&nbsp; Object ref&nbsp; = jndiContext.lookup("GreetingEJB");&nbsp;&nbsp; System.out.println("Got reference");&nbsp; GreetHome home = (GreetHome)&nbsp;&nbsp;&nbsp;&nbsp; PortableRemoteObject.narrow (ref, GreetHome.class);&nbsp;&nbsp;&nbsp; Greet greet = home.create();&nbsp;&nbsp;&nbsp; System.out.print("The magic number from server is "); System.out.println(greet.calculateMagic(123.456));&nbsp;&nbsp; } catch(Exception e) {&nbsp;&nbsp;&nbsp; System.out.println(e.toString());&nbsp;&nbsp; }&nbsp; } }</span><br /><br /><br />用下面的命令对EJB客户端程序进行编译： <br /><span style="color: red">javac GreetClient.java \ -classpath /usr/jb_tom/jboss/lib/ext/jboss-j2ee.jar:.</span><br /><br /><br />如果一切正常，就可以运行客户端程序来对EJB进行测试了，命令如下： <br /><span style="color: red">java -cp \&nbsp; $CLASSPATH:/usr/jb_tom/jboss/client/jboss-client.jar:. \ GreetClient</span>
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/191811#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 10 May 2008 23:22:38 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/191811</link>
        <guid>http://selectme-2008.javaeye.com/blog/191811</guid>
      </item>
          <item>
        <title>J2EE全面简介</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/191809" style="color:red;">http://selectme-2008.javaeye.com/blog/191809</a>&nbsp;
          发表时间: 2008年05月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          J2EE全面简介<br /><br />一. J2EE的概念 <br />目前，Java 2平台有3个版本，它们是适用于小型设备和智能卡的Java 2平台Micro版（Java 2 Platform Micro Edition，J2ME）、适用于桌面系统的Java 2平台标准版（Java 2 Platform Standard Edition，J2SE）、适用于创建服务器应用程序和服务的Java 2平台企业版（Java 2 Platform Enterprise Edition，J2EE）。<br /><br />J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版，J2EE不仅巩固了标准版中的许多优点，例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等，同时还提供了对 EJB（Enterprise JavaBeans）、Java Servlets API、JSP（Java Server Pages）以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。<br /><br />J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台，J2EE降低了开发多层应用的费用和复杂性，同时提供对现有应用程序集成强有力支持，完全支持Enterprise JavaBeans，有良好的向导支持打包和部署应用，添加目录支持，增强了安全机制，提高了性能。<br /><br />二. J2EE的优势 <br />J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制: <br /><br />保留现存的IT资产: 由于企业必须适应新的商业需求，利用已有的企业信息系统方面的投资，而不是重新制定全盘方案就变得很重要。这样，一个以渐进的（而不是激进的，全盘否定的）方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资，如一些公司使用的BEA Tuxedo、IBM CICS, IBM Encina,、Inprise VisiBroker 以及Netscape Application Server。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的'企业计算'领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资，进入可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行，现有的操作系统和硬件也能被保留使用。 <br />高效的开发: J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上，相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: <br /><br />状态管理服务 -- 让开发人员写更少的代码，不用关心如何管理状态，这样能够更快地完成程序开发。 <br />持续性服务 -- 让开发人员不用对数据访问逻辑进行编码就能编写应用程序，能生成更轻巧，与数据库无关的应用程序，这种应用程序更易于开发与维护。 <br />分布式共享数据对象CACHE服务 -- 让开发人员编制高性能的系统，极大提高整体部署的伸缩性。<br />支持异构环境: J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件，把他们部署到异构环境中，节省了由自己制订整个方案所需的费用。 <br />可伸缩性: 企业必须要选择一种服务器端平台，这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统，这种系统单机可支持64至256个处理器。（这是NT服务器所望尘莫及的）J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈，允许多台服务器集成部署。这种部署可达数千个处理器，实现可高度伸缩的系统，满足未来商业应用的需要。 <br />稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的，即使在夜间按计划停机也可能造成严重损失。若是意外停机，那会有灾难性后果。J2EE部署到可靠的操作环境中，他们支持长期的可用性。一些J2EE部署在WINDOWS环境中，客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。<br /><br />三. J2EE 的四层模型 <br />J2EE使用多层的分布式应用模型，应用逻辑按功能划分为组件，各个应用组件根据他们所在的层分布在不同的机器上。事实上，sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端，在传统模式中，客户端担当了过多的角色而显得臃肿，在这种模式中，第一次部署的时候比较容易，但难于升级或改进，可伸展性也不理想，而且经常基于某种专有的协议??通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层，以下是 J2EE 典型的四层结构: <br /><br />运行在客户端机器上的客户层组件 <br />运行在J2EE服务器上的Web层组件 <br />运行在J2EE服务器上的业务逻辑层组件 <br />运行在EIS服务器上的企业信息系统(Enterprise information system)层软件
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/191809#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 10 May 2008 23:12:40 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/191809</link>
        <guid>http://selectme-2008.javaeye.com/blog/191809</guid>
      </item>
          <item>
        <title>请问各位大侠使用过哪些在线编辑器？可否做下比较</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/173925" style="color:red;">http://selectme-2008.javaeye.com/blog/173925</a>&nbsp;
          发表时间: 2008年03月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          请问各位大侠使用过哪些在线编辑器？可否做下比较，你认为目前的在线编辑器哪些地方尚需改进，在线编辑器有必要象ms word、wps、永中office文字处理一样功能强大吗？希望大家能不吝赐教。
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/173925#comments" style="color:red;">已有 <strong>0</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 19 Mar 2008 23:04:36 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/173925</link>
        <guid>http://selectme-2008.javaeye.com/blog/173925</guid>
      </item>
          <item>
        <title>邮件发送程序源代码</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/173917" style="color:red;">http://selectme-2008.javaeye.com/blog/173917</a>&nbsp;
          发表时间: 2008年03月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>在eclipse下新建一个project，将下列代码拷贝过去，把MailKit提到的邮件服务器和邮件接收者改写一下即可试用，很久以前写的，拿来分享一下，不知各位是否有用</p><p>&nbsp;</p><p>package mail;<br /><br />import javax.mail.*;<br />import javax.mail.internet.*;<br /><br />/**<br />&nbsp;*<br />&nbsp;* @author&nbsp; selectme_2008<br />&nbsp;*/<br />public class SMTPAuthenticator extends Authenticator<br />{<br />&nbsp;&nbsp;&nbsp; private PasswordAuthentication password_auth;<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; public SMTPAuthenticator(String smtp_user, String smtp_password)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; password_auth = new PasswordAuthentication(smtp_user, smtp_password);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;<br />&nbsp;&nbsp;&nbsp; public PasswordAuthentication getPasswordAuthentication()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return password_auth;<br />&nbsp;&nbsp;&nbsp; }<br />}</p><p>&nbsp;</p><p>//----------------MailKit :主程序----------------</p><p>&nbsp;</p><p><br />package mail;<br /><br />import java.util.*;<br />import java.io.*;<br />import javax.mail.*;<br />import javax.mail.internet.*;<br />import javax.activation.*;<br />import javatip.SMTPAuthenticator;<br />import javax.activation.FileDataSource;<br /><br />/**<br />&nbsp;*<br />&nbsp;* @author&nbsp; selectme_2008<br />&nbsp;*/<br />public class MailKit {<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; private String host;<br />&nbsp;&nbsp;&nbsp; private String userMail;<br />&nbsp;&nbsp;&nbsp; private String pwd;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** Creates a new instance of MailKit<br />&nbsp;&nbsp;&nbsp;&nbsp; *@param mailHost： 邮件服务器，如 smtp.163.com<br />&nbsp;&nbsp;&nbsp;&nbsp; *@param userAccount: 用户， 如 admin<br />&nbsp;&nbsp;&nbsp;&nbsp; *@param password： 登陆密码，如 123456<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; private MailKit(String mailHost,String userMail, String password) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; init(mailHost,userMail,password);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** 初始化邮件服务器<br />&nbsp;&nbsp;&nbsp;&nbsp; *@param mailHost： 邮件服务器，如 smtp.163.com<br />&nbsp;&nbsp;&nbsp;&nbsp; *@param userAccount: 用户， 如 admin<br />&nbsp;&nbsp;&nbsp;&nbsp; *@param pwd： 登陆密码，如 123456<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; private void init(String mailHost,String userMail, String password) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(mailHost == null || userMail == null || password == null) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw new IllegalArgumentException(&quot;传人的参数不能为空&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.host = mailHost;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.userMail = userMail;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.pwd = password;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** 发送邮件<br />&nbsp;&nbsp;&nbsp;&nbsp; * @param to 邮件接受者，可以有多个接受者&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; * @param subject 邮件主题<br />&nbsp;&nbsp;&nbsp;&nbsp; * @param msgContent 邮件正文<br />&nbsp;&nbsp;&nbsp;&nbsp; * @param attachFile 邮件附件，可以有多个附件；<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 传入的参数为文件数组，文件必须为完整路径名 c:\\viewthread.jsp<br />&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; null表示没有附件&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; * @return 发送成功返回true，否则返回false<br />&nbsp;&nbsp;&nbsp;&nbsp; */<br />&nbsp;&nbsp;&nbsp; public boolean sendMail(String[] to, String subject,String msgContent,String[] attachFile) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.util.Properties props = new java.util.Properties();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put(&quot;mail.smtp.host&quot;, host);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put(&quot;mail.smtp.auth&quot;,&quot;true&quot;);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put(&quot;username&quot;,userMail); <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; props.put(&quot;password&quot;,pwd); <br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Authenticator auth = new SMTPAuthenticator(userMail, pwd);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Session sendMailSession = Session.getDefaultInstance(props, auth);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Message msg = new MimeMessage(sendMailSession);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setFrom(new InternetAddress(userMail));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(to != null &amp;&amp; to.length &gt; 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InternetAddress[] address = new InternetAddress[to.length];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0; i&lt;to.length; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; address[i] = new InternetAddress(to[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setRecipients(Message.RecipientType.TO, address);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setSubject(subject);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create and fill the first message part<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart mbp1 = new MimeBodyPart();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mbp1.setText(msgContent);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create the Multipart and add its parts to it<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Multipart mp = new MimeMultipart();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mp.addBodyPart(mbp1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // create the second message part<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(attachFile != null &amp;&amp; attachFile.length &gt;0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MimeBodyPart mbp2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0; i&lt;attachFile.length; i++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mbp2 = new MimeBodyPart();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // attach the file to the message<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FileDataSource fds = new FileDataSource(attachFile[i]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mbp2.setDataHandler(new DataHandler(fds));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mbp2.setFileName(fds.getName());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mp.addBodyPart(mbp2);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // add the Multipart to the message<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setContent(mp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // set the Date: header<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg.setSentDate(new Date());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // send the message<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transport.send(msg);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch(Exception ex) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ex.printStackTrace();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; public static void main(String []a)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MailKit mkit = createJavaSalonMailKit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mkit.sendMail(new String[]{&quot;support@xxx.net&quot;},&quot;ttttttttt&quot;,&quot;http://www.xxx.net&quot;,null);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(&quot;sOK&quot;);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** 创建163用户的邮件信息，发件人是 xxx@163.com */<br />&nbsp;&nbsp;&nbsp; public static MailKit create163MailKit()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String mailHost = &quot;smtp.163.com&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String userAccount = &quot;xxx@163.com&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String password = &quot;123456&quot;; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new MailKit(mailHost,userAccount,password);<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; /** 创建JavaSalon用户的邮件信息，发件人是 support@xxx.net */<br />&nbsp;&nbsp;&nbsp; public static MailKit createJavaSalonMailKit()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String mailHost = &quot;mail.xxx.net&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String userAccount = &quot;support@xxx.net&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String password = &quot;xxx&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return new MailKit(mailHost,userAccount,password);<br />&nbsp;&nbsp;&nbsp; }<br />}<br />&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/173917#comments" style="color:red;">已有 <strong>1</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 19 Mar 2008 22:48:50 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/173917</link>
        <guid>http://selectme-2008.javaeye.com/blog/173917</guid>
      </item>
          <item>
        <title>桌面软件路在何方</title>
        <author>selectme_2008</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://selectme-2008.javaeye.com">selectme_2008</a>&nbsp;
                    链接：<a href="http://selectme-2008.javaeye.com/blog/173914" style="color:red;">http://selectme-2008.javaeye.com/blog/173914</a>&nbsp;
          发表时间: 2008年03月19日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          &nbsp;&nbsp;&nbsp; 近年来，随着web技术的发展，传统的桌面软件能完成的工作，web产品也不落后，在市场拓展、开发和部署成本，以及硬件成本等方面，web产品却优势明显，同时web产品的盈利模式是以广告收入为主，产品免费，这些对桌面软件已经构成沉重打击，加上盗版市场泛滥，传统应用软件已是前途暗淡，传统软件企业正面临生死抉择。<br />&nbsp;&nbsp;&nbsp; 本人所处公司正是一家桌面软件公司，多年来一直苟延惨喘，现在正处在一个十字路口：转型互联网公司或是继续做桌面应用软件。<br />&nbsp;&nbsp; 在此想和各位网友一同来探讨桌面软件的发展道路。建议先从比较传统桌面软件与web产品的优劣开始，谢谢！<p>&nbsp;</p>
          <br/><br/>
          <span style="color:red;">
            <a href="http://selectme-2008.javaeye.com/blog/173914#comments" style="color:red;">已有 <strong>14</strong> 人发表留言，猛击-&gt;&gt;<strong>这里</strong>&lt;&lt;-参与讨论</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;">Windows7在微软WinHEC 2008上揭开神秘面纱</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 19 Mar 2008 22:32:10 +0800</pubDate>
        <link>http://selectme-2008.javaeye.com/blog/173914</link>
        <guid>http://selectme-2008.javaeye.com/blog/173914</guid>
      </item>
      </channel>
</rss>