<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>freeport</title>
    <description></description>
    <link>http://freeport.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>apache+tomcat整合</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/169783" style="color:red;">http://freeport.javaeye.com/blog/169783</a>&nbsp;
          发表时间: 2008年03月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <strong>方法一：</strong> &nbsp; 在Apache的conf文件夹下新建workers.properties文件(如果文件不存在就新建), &nbsp; 然后输入下边代码后保存(横线之间): <br />--------------------------------------------------------- <br />worker.list=worker2 <br />worker.ajp13.port=8009 <br />worker.ajp13.host=localhost <br />worker.ajp13.type=ajp13 <br />worker.ajp13.lbfactor=1 <br />--------------------------------------------------------- <br />打开Apache配置文件(即D:\Apache\Apache2\conf\httpd.conf),在文件末尾添加如下内容(横线之间)： <br />--------------------------------------------------------- <br />LoadModule &nbsp; jk_module &nbsp; modules/mod_jk.so <br />JkWorkersFile &nbsp; conf/workers.properties <br />JkMount &nbsp; /servlet/* &nbsp; worker2 <br />JkMount &nbsp; /*.jsp &nbsp; worker2 <br /><br /><br /><strong>方法二：</strong>在Apache的conf文件夹下新建workers.properties文件(如果文件不存在就新建), &nbsp; 然后输入下边代码后保存: <br /><br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [channel.socket:localhost:8009] <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; port=8009 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; host=127.0.0.1 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &nbsp; define &nbsp; the &nbsp; worker <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [ajp13:localhost:8009] <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; channel=channel.socket:localhost:8009 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # &nbsp; Uri &nbsp; mapping <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [uri:127.0.0.1/*.jsp] <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; worker=ajp13:localhost:8009 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [uri:www.x2.com/*.jsp] <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; worker=ajp13:localhost:8009 <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [uri:bbs.x2.com/*.jsp] <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; worker=ajp13:localhost:8009 <br /><br />打开Apache配置文件(即D:\Apache\Apache2\conf\httpd.conf),在文件末尾添加如下内容： <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; LoadModule &nbsp; jk_module &nbsp; modules/mod_jk.so 
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/169783#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>Mon, 10 Mar 2008 13:05:51 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/169783</link>
        <guid>http://freeport.javaeye.com/blog/169783</guid>
      </item>
          <item>
        <title>论坛E-mail验正的正则表达式升级</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/161725" style="color:red;">http://freeport.javaeye.com/blog/161725</a>&nbsp;
          发表时间: 2008年02月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天拿到了传说中有1G大的Gmai,确实很好用速度极快，没有了传统的收件夹，取了代之的是labels ,用户自己设定labels后加上邮件过滤设定，就成了邮件自动分练功能，逻辑上，用户名＋labels@gmail.com，"labels"可以自己取名，就可以达到无数个E-mail地址，这些地址同时指向用户名@gmail.com <br /><br />我在外面测试：能过163邮箱向用户名＋labels@gmail.com，邮件正常到达，而且按照事先的过虑设定被自动分类到labels文件夹下（其实并非文件夹）。也就是说传统的E-mail地址中不允许有“＋”的规则已经被打破，所以很多注删流程中的E-mail验证也也需要更新一下。 <br /><br /><br />这几天自己看了.net,下面是自己修改的Email验证的正则表达式：<br /><br /><br />合法E-mail地址：<br />1. 必须包含一个并且只有一个符号“@” <br />2. 第一个字符不得是“@”或者“.” <br />3. 不允许出现“@.”或者.@ <br />4. 结尾不得是字符“@”或者“.” <br />5. 允许“@”前的字符中出现“＋”<br />6. 不允许“＋”在最前面，或者“＋@”<br /><br />正则表达式如下：<br />-----------------------------------------------------------------------<br />^(\w+((-\w+)|(\.\w+))*)\+\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$<br />-----------------------------------------------------------------------<br /><br />字符描述：<br />^ ：匹配输入的开始位置。 <br />\：将下一个字符标记为特殊字符或字面值。<br />* ：匹配前一个字符零次或几次。<br />+ ：匹配前一个字符一次或多次。<br />(pattern) 与模式匹配并记住匹配。<br />x|y：匹配 x 或 y。<br />[a-z] ：表示某个范围内的字符。与指定区间内的任何字符匹配。<br />\w ：与任何单词字符匹配，包括下划线。 <br />$ ：匹配输入的结尾。
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/161725#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>Fri, 08 Feb 2008 23:23:30 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/161725</link>
        <guid>http://freeport.javaeye.com/blog/161725</guid>
      </item>
          <item>
        <title>手把手教你把Vim改装成一个IDE编程环境(图文)</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/150131" style="color:red;">http://freeport.javaeye.com/blog/150131</a>&nbsp;
          发表时间: 2007年12月22日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <a href="http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx" target="_blank">http://blog.csdn.net/wooin/archive/2007/10/31/1858917.aspx</a>
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/150131#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, 22 Dec 2007 14:07:16 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/150131</link>
        <guid>http://freeport.javaeye.com/blog/150131</guid>
      </item>
          <item>
        <title>根据hibernate隐射文件生产sql dll</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/139218" style="color:red;">http://freeport.javaeye.com/blog/139218</a>&nbsp;
          发表时间: 2007年11月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <pre name="code" class="java">
import org.hibernate.cfg.Configuration; 
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class SchemaUtil {    
    public static void main(String[] args){       
        Configuration cfg = new Configuration().configure();
        SchemaExport schemaExport= new SchemaExport(cfg);
        schemaExport.create(true, true);
    }
}
</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/139218#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>Thu, 08 Nov 2007 14:38:36 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/139218</link>
        <guid>http://freeport.javaeye.com/blog/139218</guid>
      </item>
          <item>
        <title>简体转繁体</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/129417" style="color:red;">http://freeport.javaeye.com/blog/129417</a>&nbsp;
          发表时间: 2007年10月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          将如下代码保存为convert.js并保存到网站的根目录下，具体代码为：<br /><pre name="code" class="java">
var Default_isFT = 0    //默认是否繁体，0-简体，1-繁体
var StranIt_Delay = 50 //翻译延时毫秒（设这个的目的是让网页先流畅的显现出来）

//－－－－－－－代码开始，以下别改－－－－－－－
//转换文本
function StranText(txt,toFT,chgTxt)
{
  if(txt==""||txt==null)return ""
  toFT=toFT==null?BodyIsFt:toFT
  if(chgTxt)txt=txt.replace((toFT?"简":"繁"),(toFT?"繁":"简"))
  if(toFT){return Traditionalized(txt)}
  else {return Simplized(txt)}
}
//转换对象，使用递归，逐层剥到文本
function StranBody(fobj)
{
  if(typeof(fobj)=="object"){var obj=fobj.childNodes}
  else 
  {
    var tmptxt=StranLink_Obj.innerHTML.toString()
    if(tmptxt.indexOf("简")&lt;0)
    {
      BodyIsFt=1
      StranLink_Obj.innerHTML=StranText(tmptxt,0,1)
      StranLink.title=StranText(StranLink.title,0,1)
     }
    else
    {
      BodyIsFt=0
      StranLink_Obj.innerHTML=StranText(tmptxt,1,1)
      StranLink.title=StranText(StranLink.title,1,1)
    }
    setCookie(JF_cn,BodyIsFt,7)
    var obj=document.body.childNodes
  }
  for(var i=0;i&lt;obj.length;i++)
  {
    var OO=obj.item(i)
    if("||BR|HR|TEXTAREA|".indexOf("|"+OO.tagName+"|")>0||OO==StranLink_Obj)continue;
    if(OO.title!=""&&OO.title!=null)OO.title=StranText(OO.title);
    if(OO.alt!=""&&OO.alt!=null)OO.alt=StranText(OO.alt);
    if(OO.tagName=="INPUT"&&OO.value!=""&&OO.type!="text"&&OO.type!="hidden")OO.value=StranText(OO.value);
    if(OO.nodeType==3){OO.data=StranText(OO.data)}
    else StranBody(OO)
  }
}
function JTPYStr()
{
  return '皑蔼碍爱翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙闭边编贬变辩辫鳖瘪濒滨宾摈饼拨钵铂驳卜补参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠铲产阐颤场尝长偿肠厂畅钞车彻尘陈衬撑称惩诚骋痴迟驰耻齿炽冲虫宠畴踌筹绸丑橱厨锄雏础储触处传疮闯创锤纯绰辞词赐聪葱囱从丛凑窜错达带贷担单郸掸胆惮诞弹当挡党荡档捣岛祷导盗灯邓敌涤递缔点垫电淀钓调迭谍叠钉顶锭订东动栋冻斗犊独读赌镀锻断缎兑队对吨顿钝夺鹅额讹恶饿儿尔饵贰发罚阀珐矾钒烦范贩饭访纺飞废费纷坟奋愤粪丰枫锋风疯冯缝讽凤肤辐抚辅赋复负讣妇缚该钙盖干赶秆赣冈刚钢纲岗皋镐搁鸽阁铬个给龚宫巩贡钩沟构购够蛊顾剐关观馆惯贯广规硅归龟闺轨诡柜贵刽辊滚锅国过骇韩汉阂鹤贺横轰鸿红后壶护沪户哗华画划话怀坏欢环还缓换唤痪焕涣黄谎挥辉毁贿秽会烩汇讳诲绘荤浑伙获货祸击机积饥讥鸡绩缉极辑级挤几蓟剂济计记际继纪夹荚颊贾钾价驾歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧浆蒋桨奖讲酱胶浇骄娇搅铰矫侥脚饺缴绞轿较秸阶节茎惊经颈静镜径痉竞净纠厩旧驹举据锯惧剧鹃绢杰洁结诫届紧锦仅谨进晋烬尽劲荆觉决诀绝钧军骏开凯颗壳课垦恳抠库裤夸块侩宽矿旷况亏岿窥馈溃扩阔蜡腊莱来赖蓝栏拦篮阑兰澜谰揽览懒缆烂滥捞劳涝乐镭垒类泪篱离里鲤礼丽厉励砾历沥隶俩联莲连镰怜涟帘敛脸链恋炼练粮凉两辆谅疗辽镣猎临邻鳞凛赁龄铃凌灵岭领馏刘龙聋咙笼垄拢陇楼娄搂篓芦卢颅庐炉掳卤虏鲁赂禄录陆驴吕铝侣屡缕虑滤绿峦挛孪滦乱抡轮伦仑沦纶论萝罗逻锣箩骡骆络妈玛码蚂马骂吗买麦卖迈脉瞒馒蛮满谩猫锚铆贸么霉没镁门闷们锰梦谜弥觅绵缅庙灭悯闽鸣铭谬谋亩钠纳难挠脑恼闹馁腻撵捻酿鸟聂啮镊镍柠狞宁拧泞钮纽脓浓农疟诺欧鸥殴呕沤盘庞国爱赔喷鹏骗飘频贫苹凭评泼颇扑铺朴谱脐齐骑岂启气弃讫牵扦钎铅迁签谦钱钳潜浅谴堑枪呛墙蔷强抢锹桥乔侨翘窍窃钦亲轻氢倾顷请庆琼穷趋区躯驱龋颧权劝却鹊让饶扰绕热韧认纫荣绒软锐闰润洒萨鳃赛伞丧骚扫涩杀纱筛晒闪陕赡缮伤赏烧绍赊摄慑设绅审婶肾渗声绳胜圣师狮湿诗尸时蚀实识驶势释饰视试寿兽枢输书赎属术树竖数帅双谁税顺说硕烁丝饲耸怂颂讼诵擞苏诉肃虽绥岁孙损笋缩琐锁獭挞抬摊贪瘫滩坛谭谈叹汤烫涛绦腾誊锑题体屉条贴铁厅听烃铜统头图涂团颓蜕脱鸵驮驼椭洼袜弯湾顽万网韦违围为潍维苇伟伪纬谓卫温闻纹稳问瓮挝蜗涡窝呜钨乌诬无芜吴坞雾务误锡牺袭习铣戏细虾辖峡侠狭厦锨鲜纤咸贤衔闲显险现献县馅羡宪线厢镶乡详响项萧销晓啸蝎协挟携胁谐写泻谢锌衅兴汹锈绣虚嘘须许绪续轩悬选癣绚学勋询寻驯训讯逊压鸦鸭哑亚讶阉烟盐严颜阎艳厌砚彦谚验鸯杨扬疡阳痒养样瑶摇尧遥窑谣药爷页业叶医铱颐遗仪彝蚁艺亿忆义诣议谊译异绎荫阴银饮樱婴鹰应缨莹萤营荧蝇颖哟拥佣痈踊咏涌优忧邮铀犹游诱舆鱼渔娱与屿语吁御狱誉预驭鸳渊辕园员圆缘远愿约跃钥岳粤悦阅云郧匀陨运蕴酝晕韵杂灾载攒暂赞赃脏凿枣灶责择则泽贼赠扎札轧铡闸诈斋债毡盏斩辗崭栈战绽张涨帐账胀赵蛰辙锗这贞针侦诊镇阵挣睁狰帧郑证织职执纸挚掷帜质钟终种肿众诌轴皱昼骤猪诸诛烛瞩嘱贮铸筑驻专砖转赚桩庄装妆壮状锥赘坠缀谆浊兹资渍踪综总纵邹诅组钻致钟么为只凶准启板里雳余链泄';
}
function FTPYStr()
{
  return '皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調叠諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊洩';
}
function Traditionalized(cc){
  var str='',ss=JTPYStr(),tt=FTPYStr();
  for(var i=0;i&lt;cc.length;i++)
  {
    if(cc.charCodeAt(i)>10000&&ss.indexOf(cc.charAt(i))!=-1)str+=tt.charAt(ss.indexOf(cc.charAt(i)));
      else str+=cc.charAt(i);
  }
  return str;
}
function Simplized(cc){
  var str='',ss=JTPYStr(),tt=FTPYStr();
  for(var i=0;i&lt;cc.length;i++)
  {
    if(cc.charCodeAt(i)>10000&&tt.indexOf(cc.charAt(i))!=-1)str+=ss.charAt(tt.indexOf(cc.charAt(i)));
      else str+=cc.charAt(i);
  }
  return str;
}

function setCookie(name, value)    //cookies设置
{
  var argv = setCookie.arguments;
  var argc = setCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  if(expires!=null)
  {
    var LargeExpDate = new Date ();
    LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
  }
  document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));
}

function getCookie(Name)      //cookies读取
{
  var search = Name + "="
  if(document.cookie.length > 0) 
  {
    offset = document.cookie.indexOf(search)
    if(offset != -1) 
    {
      offset += search.length
      end = document.cookie.indexOf(";", offset)
      if(end == -1) end = document.cookie.length
      return unescape(document.cookie.substring(offset, end))
     }
  else return ""
    }
}

var StranLink_Obj=document.getElementById("StranLink")
if (StranLink_Obj)
{
  var JF_cn="ft"+self.location.hostname.toString().replace(/\./g,"")
  var BodyIsFt=getCookie(JF_cn)
  if(BodyIsFt!="1")BodyIsFt=Default_isFT
  with(StranLink_Obj)
  {
    if(typeof(document.all)!="object")   //非IE浏览器
    {
      href="javascript:StranBody()"
    }
    else
    {
      href="#";
      onclick= new Function("StranBody();return false")
    }
    title=StranText("点击以繁体中文方式浏览",1,1)
    innerHTML=StranText(innerHTML,1,1)
  }
  if(BodyIsFt=="1"){setTimeout("StranBody()",StranIt_Delay)}
}
</pre><br /><br />使用方法：<br />　　第一步：在需要显示繁简转化的地方加如下代码：<br /><br />&nbsp;&nbsp;&nbsp; <pre name="code" class="java">&lt;A style="COLOR: #0066CC" name=StranLink>繁體中文&lt;/A></pre><br /><br />&nbsp;&nbsp;&nbsp; 第二步：在需要转化为繁体的页面底部添加:<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; <pre name="code" class="java">&lt;SCRIPT language=javascript src="convert.js">&lt;/SCRIPT></pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/129417#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, 07 Oct 2007 08:45:15 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/129417</link>
        <guid>http://freeport.javaeye.com/blog/129417</guid>
      </item>
          <item>
        <title>项目快完成了...哈哈</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/126639" style="color:red;">http://freeport.javaeye.com/blog/126639</a>&nbsp;
          发表时间: 2007年09月24日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          最近正在人工测试，希望大家推荐个测试方法，让小弟学习学习。<br /><br />花了我将近两个月的时间，终于完成了，这个网站<br /><br />这个网站框架用:spring+struts2+hibernate<br /><br />由于所在公司比较小，IT届又不发达的地区(宁波)，一个经验才1年多<br /><br />且是一个中专生来说，能完成这样的一个网站，自己感到很欣慰<br /><br />不过对网站的性能比较担心<br /><br />因为在拍卖大厅中，用了大量的ajax，读取一些数据，服务器是用tomcat<br /><br />希望牛人能指点指点迷津:<br /><br />1.聊天内容:每3秒读一次，根据客户端最大ID，然后读取比这个ID要大的数据<br /><br />2.出价列表和预拍列表:每秒读一次application，然后更新页面，这里还有<br /><br />&nbsp;&nbsp; 每1分钟需要同步一下服务器的价格，和服务器的时间，和关注人数。<br /><br />后台还开了几个任务在跑:<br /><br />1.每10秒执行一次的 开启拍卖和关闭拍卖。<br /><br />2.每1秒执行一次的 服务器端掉价任务<br /><br />3.每1秒执行一次的 预拍任务<br /><br />这样的搭配，在拍卖过程中<br /><br />能否支持300-500个用户同一时刻在线<br /><br />不行的话，哪里可以改进，希望大家多多指教<br /><br />谢谢。<br /><br />拍卖大厅图片:
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/126639#comments" style="color:red;">已有 <strong>11</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>Mon, 24 Sep 2007 15:48:26 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/126639</link>
        <guid>http://freeport.javaeye.com/blog/126639</guid>
      </item>
          <item>
        <title>使用JMeter测试Web应用 </title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/71068" style="color:red;">http://freeport.javaeye.com/blog/71068</a>&nbsp;
          发表时间: 2007年04月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          使用JMeter测试Web应用 <br /><br />接下来的章节里，作者将详细的演示如何使用JMeter来测试Web应用的完整过程。 <br /><br />2.1 测试环境 <br /><br />作者使用了Tomcat作为Web服务器进行测试，被测试的内容是一个jsp文件和一个servlet，jsp文件调用JavaBean、打印相关信息，servlet接受用户参数、调用javabean、输出相关信息。详细的内容请参考作者提供的JMeter.war的内容。 <br /><br /><br />2.2 安装启动JMeter <br /><br />大家可以到通过http://apache.linuxforum.net/dist/jakarta/jmeter/binaries/jakarta-jmeter-1.9.1.zip下载JMeter的release版本，然后将下载的.zip文件解压缩到C:/JMeter（后面的文章中将使用%JMeter%来引用这个目录）目录下。现在，请使用%JMeter%/bin下面的jmeter.bat批处理文件来启动JMeter的可视化界面，下面的工作都将在这个可视化界面界面上进行操作。下面的图片是JMeter的可视化界面的屏幕截图。 <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274875.gif" /><br /><br />图一： JMeter打开时的屏幕截图 <br /><br /><br />2.3 建立测试计划（Test Plan） <br /><br />测试计划描述了执行测试过程中JMeter的执行过程和步骤，一个完整的测试计划包括一个或者多个线程组(Thread Groups)、逻辑控制（Logic Controller）、实例产生控制器（Sample Generating Controllers）、侦听器(Listener)、定时器（Timer）、比较（Assertions）、配置元素（Config Elements）。打开JMeter时，它已经建立一个默认的测试计划,一个JMeter应用的实例只能建立或者打开一个测试计划。现在我们开始填充一个测试计划的内容，这个测试计划向一个jsp文件和一个servlet发出请求，我们需要JMeter模拟五个请求者（也就是五个线程），每个请求者连续请求两次，下面的章节介绍了详细的操作步骤。 <br /><br />2.4 增加负载信息设置 <br /><br />这一步，我们将向测试计划中增加相关负载设置,是Jmeter知道我们需要模拟五个请求者，每个请求者在测试过程中连续请求两次。详细步骤如下： <br /><br />1. 选中可视化界面中左边树的Test Plan节点，单击右键，选择Add'Thread Group，界面右边将会出现他的设置信息框。 <br /><br />2. Thread Group有三个和负载信息相关的参数： <br /><br />Number of Threads： 设置发送请求的用户数目 <br /><br />Ramp-up period： 每个请求发生的总时间间隔，单位是秒。比如你的请求数目是5，而这个参数是10，那么每个请求之间的间隔就是10／5，也就是2秒 <br /><br />Loop Count： 请求发生的重复次数，如果选择后面的forever（默认），那么 请求将一直继续，如果不选择forever，而在输入框中输入数字，那么请求将重复 指定的次数，如果输入0，那么请求将执行一次。 <br /><br />根据我们演示例子的设计，我们应该将Number of Threads设置为5，Ramp-up period设置为0（也就是同时并发请求），不选中forever，在Loop Count后面的输入框中输入2，设置后的屏幕截图如下： <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274876.gif" /><br /><br />图二：设置好参数的Thread Group。 <br /><br />2.5 增加默认Http属性（可选） <br /><br />实际的测试工作往往是针对同一个服务器上Web应用展开的,所以Jmeter提供了这样一种设置, 在默认Http属性设置需要被测试服务器的相关属性，以后的http请求设置中就可以忽略这些相同参数的设置,减少设置参数录入的时间。我们这里将采用这种属性。你可以通过下面的步骤来设置默认http属性： <br /><br />1. 选中可视化界面中左边树的Test Plan节点，单击右键，选择Add'config element'http request defaults，界面右边将会出现他的设置信息框。 <br /><br />2. 默认http属性的主要参数说明如下： <br /><br />protocal：发送测试请求时使用的协议 <br /><br />server name or ip：被测试服务器的ip地址或者名字 <br /><br />path： 默认的起始位置。比如将path设置为／jmeter，那么所有的http请求的url中都将增加／jmeter路径。 <br /><br />port number： 服务器提供服务的端口号 <br /><br />我们的测试计划将针对本机的Web服务器上的Web应用进行测试，所以protocal应该是http，ip使用localhost，因为这个web应用发布的context路径是／jmeter，所以这里的path设置为／jmeter，因为使用Tomcat服务器，所以port number是8080。设置后的屏幕截图如下： <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274877.gif" /><br /><br />图三： 测试计划中使用的默认Http参数 <br /><br />2.6 增加Http请求 <br /><br />现在我们需要增加http请求了，他也是我们测试的内容主体部分。你可以通过下面的步骤来增加性的http请求： <br /><br />1. 选中可视化界面中左边树的Thread Group节点，单击右键，选择Add'sampler'http request，界面右边将会出现他的设置信息框。 <br /><br />2. 他的参数和2.5中介绍的http属性差不多，增加的属性中有发送http时方法的选择，你可以选择为get或者post。 <br /><br />我们现在增加两个http 请求，因为我们设置了默认的http属性，所以和默认http属性中相同的属性不再重复设置。设置后的屏幕截图如下： <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274878.gif" /><br /><br />图四：设置好的jsp测试请求 <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274879.gif" /><br /><br />图五：设置好的Servlet测试请求（带参数） <br /><br />2.7 增加Listener <br /><br />增加listener是为了记录测试信息并且可以使用Jmeter提供的可视化界面查看测试结果，里面有好几种结果分析方式可供选择，你可以根据自己习惯的分析方式选择不同的结果显示方式，我们这里使用表格的形式来查看和分析测试结果。你可以通过下面的步骤来增加listener： <br /><br />1. 选中可视化界面中左边树的Test Plan节点，单击右键，选择Add'listener'view result in table，界面右边将会出现他的设置信息和结果显示框。 <br /><br />2. 你可以设置界面上面的filename属性设置将测试结果保存到某个文件中界面下面将使用表格显示测试结果，表格的第一列sampleno显示请求执行的顺序和编号，url显示请求发送的目标，sample－ms列显示这个请求完成耗费的时间，最后的success列显示改请求是否成功执行。界面的最下面你还可以看到一些统计信息，最关心的应该是Average吧，也就是相应的平均时间。 <br /><br />2.8 开始执行测试计划 <br /><br />现在你可以通过单击菜单栏run -> Start开始执行测试计划了。下面这两个图是作者第一次、第二次执行该测试计划的结果图: <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274880.gif" /><br /><br />图六：第一次执行后的结果显示 <br /><br /> <img src="http://software.ccidnet.com/pub/attachment/2004/2/274881.gif" /><br /><br />图七：第二次执行的结果显示 <br /><br />大家可以看到第一次执行时的几个大时间值均来自于jsp request，这可以通过下面的理由进行解释：jsp执行前都需要被编译成.class文件。所以第二次的结果才是正常的结果。 <br /><br />3 总结 <br /><br />JMeter用于进行供能或者性能测试，通过使用JMeter提供的供能，我们可以可视化的制定测试计划：包括规定使用什么样的负载、测试什么内容、传入的参数，同时，他提供了好多种图形化的测试结果显示方式，使我们能够简单的开始测试工作和分析测试结果。 <br /><br />本文中，作者根据自己的使用经验，详细演示了如何使用JMeter来进行Web测试的全部过程，简单的介绍了JMeter提供测试结果的图形化显示界面中相关参数的含义。希望能够帮助大家学会使用JMeter的基本知识，同时，大家可以参考这个过程和JMeter的帮助文档来实现对java对象、数据库等的测试过程。 <br /><br />参考资料： <br /><br />JMeter 的用户指南 ： http://jakarta.apache.org/jmeter/usermanual/index.html <br /><br />工具下载： <br /><br />1. tomcat http://jakarta.apache.org/tomcat/index.html <br /><br />2. JMeter http://jakarta.apache.org/jmeter/index.html <br /><br /><br />Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=342911
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/71068#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 Apr 2007 15:41:49 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/71068</link>
        <guid>http://freeport.javaeye.com/blog/71068</guid>
      </item>
          <item>
        <title>urlrewrite 的使用方法</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/69687" style="color:red;">http://freeport.javaeye.com/blog/69687</a>&nbsp;
          发表时间: 2007年04月10日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          1、下载：<br />&nbsp;&nbsp;&nbsp;&nbsp; 下载地址为http://tuckey.org/urlrewrite/#download<br /> 2、配置<br />&nbsp; 将urlrewrite.jar包导入<br />&nbsp; 然后在web.xml配置过滤器<br />&nbsp; <pre name="code" class="java">
   &lt;filter>
		&lt;filter-name>UrlRewriteFilter&lt;/filter-name>
		&lt;filter-class>
			org.tuckey.web.filters.urlrewrite.UrlRewriteFilter&lt;/filter-class>
		&lt;init-param>
			&lt;param-name>logLevel&lt;/param-name>
			&lt;param-value>WARN&lt;/param-value>
		&lt;/init-param>
	&lt;/filter>
	&lt;filter-mapping>
		&lt;filter-name>UrlRewriteFilter&lt;/filter-name>
		&lt;url-pattern>/*&lt;/url-pattern>
	&lt;/filter-mapping>
  </pre><br />&nbsp; 我用的是webwork<br />&nbsp; 所有在webwork的过滤器配置文件那里需要加点东西<br />&nbsp; <pre name="code" class="java">
  &lt;filter-mapping>
		&lt;filter-name>webwork&lt;/filter-name>
		&lt;url-pattern>/*&lt;/url-pattern>
		&lt;dispatcher>REQUEST&lt;/dispatcher>
        &lt;dispatcher>FORWARD&lt;/dispatcher>
        &lt;dispatcher>INCLUDE&lt;/dispatcher>
	&lt;/filter-mapping>
  </pre><br />&nbsp; 然后是在/WEB-INF/下面新建urlrewrite.xml<br />&nbsp; 内容如下:<br />&nbsp; <pre name="code" class="java">
  &lt;?xml version="1.0" encoding="utf-8"?>
&lt;!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"
        "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
&lt;urlrewrite>
	&lt;rule>
		&lt;from>^/register.jsp$&lt;/from>
		&lt;to>/register.action&lt;/to>
	&lt;/rule>
&lt;/urlrewrite>
  </pre><br />&nbsp; 表示访问register.jsp的时候实际上访问的是register.action<br />&nbsp; 下面是达人写的，参考<br /><pre name="code" class="java"> 
&lt;rule>
        &lt;note>homepage  blog username like http://blog.csdn.net/pigo&lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/?$&lt;/from>
            &lt;to>/user/main.jsp?username=$1&lt;/to>
        &lt;/rule>
        &lt;rule>
        &lt;note>homepage  blog username like http://blog.csdn.net/pigo/rss.xml&lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/rss.xml$&lt;/from>
            &lt;to>/user/rss.jsp?username=$1&lt;/to>
        &lt;/rule>
        &lt;rule>
        &lt;note> blog catgory  http://blog.csdn.net/pigo/category/42406.html&lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/category/([a-zA-Z0-9]+).html&lt;/from>
            &lt;to>/user/cat.jsp?username=$1&amp;catno=$2&lt;/to>
        &lt;/rule>
        &lt;rule>
        &lt;note> blog catgory rss http://blog.csdn.net/pigo/category/42406.xml&lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/category/([a-zA-Z0-9]+).xml&lt;/from>
            &lt;to>/user/catrss.jsp?username=$1&amp;catno=$2&lt;/to>
        &lt;/rule>
         &lt;rule>
        &lt;note> blog photo catgory  http://blog.csdn.net/pigo/photo/42406.html&lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/photo/([a-zA-Z0-9]+).html&lt;/from>
            &lt;to>/user/photo.jsp?username=$1&amp;catno=$2&lt;/to>
        &lt;/rule>
        &lt;rule>
        &lt;note>blog issue http://blog.csdn.net/pigo/archive/2006/03/23/783904.html&lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/archive/([0-9]+)/([0-9]+)/([0-9]+)/([a-zA-Z0-9]+).html&lt;/from>
            &lt;to>/user/issue.jsp?username=$1&amp;blogno=$5&lt;/to>
        &lt;/rule>
        &lt;rule>
        &lt;note>blogarchive by month http://blog.csdn.net/pigo/archive/2005/08.html &lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/archive/([0-9]+)/([0-9]+).html&lt;/from>
            &lt;to>/user/archivelist.jsp?username=$1&amp;year=$2&amp;month=$3&lt;/to>
        &lt;/rule>
        &lt;rule>
        &lt;note>blogapi by user http://blog.csdn.net/pigo/blogapi.html &lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/blogapi.html&lt;/from>
            &lt;to>/blogapi/?username=$1&lt;/to>
        &lt;/rule>
         &lt;rule>
        &lt;note>blogadmin by user http://blog.csdn.net/pigo/blogadmin.html &lt;/note>
            &lt;from>/u/([a-zA-Z0-9]+)/blogadmin.html&lt;/from>
            &lt;to>/admin/index.jsp?username=$1&lt;/to>
        &lt;/rule>

</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/69687#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, 10 Apr 2007 16:34:39 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/69687</link>
        <guid>http://freeport.javaeye.com/blog/69687</guid>
      </item>
          <item>
        <title>3月30日 工作日记 之Spring 发送邮件</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/66920" style="color:red;">http://freeport.javaeye.com/blog/66920</a>&nbsp;
          发表时间: 2007年03月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          今天在用spring 发送邮件，还不错，代码如下<br /><pre name="code" class="java">
private MailSender mailSender;

	private SimpleMailMessage message;
public void setMailSender(MailSender mailSender) {
		this.mailSender = mailSender;
	}

	public void setMessage(SimpleMailMessage message) {
		this.message = message;
	}
//发送邮件
	public boolean sendEmail(User user) {
		SimpleMailMessage msg = new SimpleMailMessage(message);
		msg.setTo(user.getEmail());
		msg
				.setText(user.getTruename()
						+ "您好!您的帐号:"+user.getUsername()+"&nbsp;&nbsp;您的密码为:"
						+ user.getPassword()
						+ ",请&lt;a href='http://localhost/esc'target='blank'>登录&lt;/a>到XXXX网进行修改.");
		try {
			mailSender.send(msg);
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
</pre><br />spring 配置文件<br /><pre name="code" class="java">
&lt;bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		&lt;property name="host">
			&lt;value>smtp.163.com&lt;/value>
		&lt;/property>
		&lt;property name="javaMailProperties">
			&lt;props>
				&lt;prop key="mail.smtp.auth">true&lt;/prop>
				&lt;prop key="mail.smtp.timeout">25000&lt;/prop>
			&lt;/props>
		&lt;/property>
		&lt;property name="username">
			&lt;value>username&lt;/value>
		&lt;/property>
		&lt;property name="password">
			&lt;value>password&lt;/value>
		&lt;/property>
	&lt;/bean>
	&lt;bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
		&lt;property name="from">
			&lt;value>test@test.com&lt;/value>
		&lt;/property>
		&lt;property name="subject">
			&lt;value>取回密码&lt;/value>
		&lt;/property>
	&lt;/bean>
</pre><br />这样就可以了
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/66920#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, 31 Mar 2007 12:11:26 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/66920</link>
        <guid>http://freeport.javaeye.com/blog/66920</guid>
      </item>
          <item>
        <title>3月29日 工作日记</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/66417" style="color:red;">http://freeport.javaeye.com/blog/66417</a>&nbsp;
          发表时间: 2007年03月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          3月29日，天气晴天，太阳非常大，热死了<br />今天用Spring+WebWork+Hibernate做一个注册用户的例子<br />没什么问题，不过用了一下Dwr检验用户名是否存在，下面来记录一下<br />把DWR的包导入进去，在/WEB-INF/目录下创建一个dwr.xml文件<br />代码如下:<br /><pre name="code" class="java">
&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
    "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
&lt;dwr>
	&lt;allow>
		&lt;create javascript="Validate" creator="spring">
			&lt;param name="beanName" value="validate"/>
		&lt;/create>
	&lt;/allow>
&lt;/dwr>
</pre><br /><pre name="code" class="java">
&lt;create javascript="Validate" creator="spring">
</pre><br />创建一个Validate.js的文件,以spring 方式<br /><pre name="code" class="java">
&lt;param name="beanName" value="validate"/>
</pre><br />对应spring 文件里bean 的id <br />代码如下:<br /><pre name="code" class="java">
&lt;bean id="validate" class="com.esc.web.action.Validate">
	&lt;property name="userService">
		&lt;ref bean="userService"/>
	&lt;/property>
&lt;/bean>
</pre><br />在web.xml文件配置如下:<br /><pre name="code" class="java">
&lt;!-- dwr配置 -->
	&lt;servlet>
		&lt;servlet-name>dwr&lt;/servlet-name>
		&lt;servlet-class>
			org.directwebremoting.servlet.DwrServlet
		&lt;/servlet-class>
		&lt;init-param>
			&lt;param-name>debug&lt;/param-name>
			&lt;param-value>true&lt;/param-value>
		&lt;/init-param>

	&lt;/servlet>
	&lt;servlet-mapping>
		&lt;servlet-name>dwr&lt;/servlet-name>
		&lt;url-pattern>/dwr/*&lt;/url-pattern>
	&lt;/servlet-mapping>
&lt;!-- 配置这个是应该dwr要找到applicationContext.xml的文件路径,否则dwr找不到文件 -->
	&lt;context-param>
		&lt;param-name>contextConfigLocation&lt;/param-name>
		&lt;param-value>/WEB-INF/applicationContext.xml&lt;/param-value>
	&lt;/context-param>
</pre><br />Validate.java文件<br /><pre name="code" class="java">
public class Validate {
	private IUserService userService;
	
	public void setUserService(IUserService userService) {
		this.userService = userService;
	}

	public Validate() {
		// TODO 自动生成构造函数存根
	}
	public boolean validateUserName(String username){
		//验证用户名是否存在
		return userService.validateUserName(username);
	}
}
</pre><br />页面调用:<br /><pre name="code" class="java">
&lt;script type='text/javascript' src='dwr/engine.js'>&lt;/script>
	&lt;script type='text/javascript' src='dwr/util.js'>&lt;/script>
	&lt;script type='text/javascript' src='dwr/interface/Validate.js'>&lt;/script>
</pre><br />前面2个是dwr自带的js<br />第3个 是我们在dwr.xml自已定义的js文件,名字要相同<br /><pre name="code" class="java">
function validUserName(){
    		var f=document.Register;
    		var name=f.username.value;
    		if(name==""){
    			alert("请输入用户名!");
    		}else{
    			if(!isUserName(name)){
    				alert("输入的用户名不符合要求!");
    			}else{
    				Validate.validateUserName(name,msg)
    			}
    		}
    	}
</pre><br />Validate.validateUserName(name,msg)<br />是执行Validate.java 里面的validateUserName方法<br />把name传进去,msg 是另一个function<br />这样写直接能把值传过去，自已执行msg(b)<br /><pre name="code" class="java">
function msg(b){
    		if(b){
    			alert("用户名已经存在，请重新输入!");
    			document.Register.username.value="";
    			document.Register.username.focus();
    		}else{
    			alert("用户名不存在，可以使用!");
    		}
    	}

</pre>
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/66417#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>Thu, 29 Mar 2007 16:54:55 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/66417</link>
        <guid>http://freeport.javaeye.com/blog/66417</guid>
      </item>
          <item>
        <title>3月28日 工作日记</title>
        <author>freeport</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://freeport.javaeye.com">freeport</a>&nbsp;
                    链接：<a href="http://freeport.javaeye.com/blog/66111" style="color:red;">http://freeport.javaeye.com/blog/66111</a>&nbsp;
          发表时间: 2007年03月28日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          3月28日，天气晴天，太阳大的很呢…<br />今天在用Spring+WebWork+Hibernate测试学习,遇到了些问题,下面来总结一下<br />1.WebWork解决中文字符乱码问题<br />&nbsp; 在WebWork..properties文件里加入一段代码即可.<br /><pre name="code" class="java">webwork.i18n.encoding = gb2312</pre><br />2.在Spring配置文件ApplicationContent.xml中导入其他配置文件方法如下:<br /><pre name="code" class="java">
	&lt;!-- 导入DAO配置文件 -->
	&lt;import resource="daoContext.xml"/>
	&lt;!-- 导入SERVICE配置文件 -->
	&lt;import resource="serviceContext.xml"/>
	&lt;!-- 导入ACTION配置文件 -->
	&lt;import resource="actionContext.xml"/>
</pre><br />3.在用Hibernate的时候,遇到了表民是关键字的部分<br />结果在网上查了一下,找到了解决方法<br />就是在Hibernate的配置文件 如User.hbm.xml 里,在表名加上”`User`”也就是数字键”1”左边,”TAB”键上面的这个键,就能解决冲突问题了,同样字段也可以用这个方法<br /><pre name="code" class="java">
&lt;?xml version="1.0"?>
&lt;!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
&lt;!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
&lt;hibernate-mapping>
    &lt;class name="com.esc.data.vo.User" table="`user`">
        &lt;id name="UId" type="java.lang.Integer">
            &lt;column name="u_id" />
            &lt;generator class="identity" />
        &lt;/id>
        &lt;property name="username" type="java.lang.String">
            &lt;column name="username" length="20" not-null="true" />
        &lt;/property>
        &lt;property name="password" type="java.lang.String">
            &lt;column name="password" length="50" not-null="true" />
        &lt;/property>
        &lt;property name="truename" type="java.lang.String">
            &lt;column name="truename" length="20" />
        &lt;/property>
        &lt;property name="qq" type="java.lang.String">
            &lt;column name="qq" length="10" />
        &lt;/property>
        &lt;property name="msn" type="java.lang.String">
            &lt;column name="msn" length="100" />
        &lt;/property>
        &lt;property name="email" type="java.lang.String">
            &lt;column name="email" length="100" />
        &lt;/property>
        &lt;property name="mobile" type="java.lang.String">
            &lt;column name="mobile" length="11" />
        &lt;/property>
        &lt;property name="address" type="java.lang.String">
            &lt;column name="address" length="200" />
        &lt;/property>
        &lt;set name="reviews" inverse="true">
            &lt;key>
                &lt;column name="u_id" />
            &lt;/key>
            &lt;one-to-many class="com.esc.data.vo.Review" />
        &lt;/set>
        &lt;set name="infos" inverse="true">
            &lt;key>
                &lt;column name="u_id" />
            &lt;/key>
            &lt;one-to-many class="com.esc.data.vo.Info" />
        &lt;/set>
        &lt;set name="messages" inverse="true">
            &lt;key>
                &lt;column name="u_id" />
            &lt;/key>
            &lt;one-to-many class="com.esc.data.vo.Message" />
        &lt;/set>
    &lt;/class>
&lt;/hibernate-mapping>
</pre><br />4.WebWork 操作Session,Request,Response<br /><pre name="code" class="java">
  import com.opensymphony.xwork.ActionSupport;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import com.opensymphony.webwork.ServletActionContext;
  import com.opensymphony.xwork.ActionContext;
     ActionContext ctx = ActionContext.getContext();
     HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);
     HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
     Map session = (Map) ActionContext.getContext().get("session");
     session.put("USER",user);
</pre><br />5.JSTL判断NULL值<br /><pre name="code" class="java">
&lt;c:if test=”${empty USER}”>
   &lt;c:out value=”空值”/>
&lt;/c:if>
</pre><br />这些就是今天遇到的问题...
          <br/><br/>
          <span style="color:red;">
            <a href="http://freeport.javaeye.com/blog/66111#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>Wed, 28 Mar 2007 15:19:00 +0800</pubDate>
        <link>http://freeport.javaeye.com/blog/66111</link>
        <guid>http://freeport.javaeye.com/blog/66111</guid>
      </item>
      </channel>
</rss>