??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美中文字幕一二三区视频,亚洲一区二区三区免费观看 ,91成人短视频http://www.aygfsteel.com/Rookie/category/32851.html<h4>Headache English</h4>zh-cnTue, 08 Jul 2008 03:20:00 GMTTue, 08 Jul 2008 03:20:00 GMT60google 搜烦参数问题http://www.aygfsteel.com/Rookie/archive/2008/01/18/176330.htmlzhhang920zhhang920Fri, 18 Jan 2008 13:01:00 GMThttp://www.aygfsteel.com/Rookie/archive/2008/01/18/176330.htmlhttp://www.aygfsteel.com/Rookie/comments/176330.htmlhttp://www.aygfsteel.com/Rookie/archive/2008/01/18/176330.html#Feedback0http://www.aygfsteel.com/Rookie/comments/commentRss/176330.htmlhttp://www.aygfsteel.com/Rookie/services/trackbacks/176330.html昨天弄servlet实现搜烦引擎前端Q发现google 搜烦参数有很多参敎ͼ不明白,大家来看看,知道的顺便告我一下;

http://www.google.cn/search?complete=1&hl=zh-CN&newwindow=1&q=google&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=-1&oq=

complete
hlQ区?br /> newwindow
qQ查询关键字
btnG
meta
aq
oq


http://www.google.cn/search?会蟩转到http://www.google.cn/webhp面Q?br /> http://www.google.cn/search?q=123可以搜索,搞不懂;


 



zhhang920 2008-01-18 21:01 发表评论
]]>
SERVLET 学习(? SERVLET技术概q?/title><link>http://www.aygfsteel.com/Rookie/archive/2008/01/18/176327.html</link><dc:creator>zhhang920</dc:creator><author>zhhang920</author><pubDate>Fri, 18 Jan 2008 12:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/Rookie/archive/2008/01/18/176327.html</guid><wfw:comment>http://www.aygfsteel.com/Rookie/comments/176327.html</wfw:comment><comments>http://www.aygfsteel.com/Rookie/archive/2008/01/18/176327.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Rookie/comments/commentRss/176327.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Rookie/services/trackbacks/176327.html</trackback:ping><description><![CDATA[一QSERVLET 作用<br /> d客户E序发送来的显式数?表单数据)Q?br /> d客户E序发送来的隐式数?h报头)Q?br /> 生成相应的结果;<br /> 发送显式的数据l客L序(HTMLQ;<br /> 发送隐式的数据l客L?状态代码和响应报头)Q?br /> <br /> 优点Q高效,便利Q功能强大,可移植性强Q花费少Q安?br /> <br /> 二,SERVLET 生命周期<br /> initQ仅在servlet首次载入时执行一ơ。不是每ơ请求都要调用?br /> serviceQ在新线E中由服务器为每个请求而调用。发送到doGetQdoPost{。不要覆盖这个方法!<br /> doGet, doPost, doXxxQ处理GET, POST, {请求。覆盖这些方法以提供期望的行为?br /> destroyQ在服务器删除servlet的实例时调用。不是每ơ请求后都调用?br /> <br /> 三,例子<br /> 下面是看《Servlet与JSP核心~程W二版》测试例子;<br /> l大家推荐一个网站:<a >http://chinesedocument.com/</a><br /> 看名字就应该知道关于什么的了,上面东西挺多的,不错Q?br /> <br /> 说明Q?br /> chapter2,chaper3:servlet基础Q请求参敎ͼ<br /> chapter4Qrequesth头查看,postQget方式Q?br /> chapter5: 单搜索引擎前端,sendErrorQsendRedirect试Q测试用例:<br />                         “http://www.google.cn/search?q=”    “sendRedirect”<br /> chapter6QContentType试<br /> chapter7Qcookie试Qservlet:RegistrationForm 单注册页面,Q用cookie的值预先填写表单的 字段Q如果未扑ֈ相应的cookie则用默认|Registration servletQ基于接收到的请求参数创建cookieQ如果得到所有的参数则显C些|如果M参数~失Q则重定向到表单Q?br /> chapter8Qsession实现一个简单购物RQ流E:登陆QLogin servletQ?-商品列表QShopForm servletQ?lt;---->挑选(AddItem servletQ?br /> <br /> 试工程<a href="/Files/Rookie/servlet.rar">servlet.rar</a><br /> <br /> ׃jar文g太大Q工E中没有jar保,可自己添加;<br /> 工程中用到有Qservlet-api.jarQdom4j-1.6.1.jarQjaxen-1.1-beta-6.jarQpull-parser-2.1.10.jarQjaxme-api-0.3.jarQjsr173_1.0_api.jarQmsv-20030807.jarQrelaxngDatatype-20030807.jarQisorelax-20030108.jarQjtidy-4aug2000r7-dev.jarQxsdlib-20030807.jarQxpp3-1.1.3.3.jar<br /> ׃购物车中用到了解析xmlQ所以Jar包一下就多了Q?br /> <br /> 购物车没有数据库Q我用dom4j解析xmlQ然后把数据存放在session中,觉得很别扭;对dom4j不是很熟悉,解析那部分做的不好,大家l多提提意见Q书中有个refresh例子Q还没看明白Q说看明白实Cl我发一份啊Q? <img src ="http://www.aygfsteel.com/Rookie/aggbug/176327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Rookie/" target="_blank">zhhang920</a> 2008-01-18 20:51 <a href="http://www.aygfsteel.com/Rookie/archive/2008/01/18/176327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SERVLET 学习(一) http协议http://www.aygfsteel.com/Rookie/archive/2008/01/18/176314.htmlzhhang920zhhang920Fri, 18 Jan 2008 11:46:00 GMThttp://www.aygfsteel.com/Rookie/archive/2008/01/18/176314.htmlhttp://www.aygfsteel.com/Rookie/comments/176314.htmlhttp://www.aygfsteel.com/Rookie/archive/2008/01/18/176314.html#Feedback5http://www.aygfsteel.com/Rookie/comments/commentRss/176314.htmlhttp://www.aygfsteel.com/Rookie/services/trackbacks/176314.html      HTTP(Hypertext Transfer Protocol, 文本传输协?Q用于从WWW服务器传输超文本到本地浏览器的传输协议。你可以通过协议定制传送的内容Q从而减网l传输。HTTP协议是以TCP/IP为基的高层协议。现在广泛用的版本HTTP/1.1?br />       HTTP协议Zh/响应模式(Request/Response).客户与服务器建立q接后,按照协议规定格式Q发送请求到服务器,客户得到h后,q回响应信息l客戗HTTP使用的端口号Q通常?0?br /> 二,URL
HTTP URL (包含了用于查找某个资源的_的信?的格式如下:
http://host[":"port][abs_path]
http表示要通过HTTP协议来定位网l资源;host表示合法的InternetL域名或者IP地址Qport指定一个端口号QؓI则使用~省端口80Qabs_path指定h资源的URIQ如果URL中没有给出abs_pathQ那么当它作求URIӞ必须?#8220;/”的Ş式给出,通常q个工作览器自动帮我们完成?br /> http://www.microsoft.com/china/index.htm。它的含义如下:
1.http://Q代表超文本传输协议Q通知microsoft.com服务器显CWeb,通常不用输入Q?br /> 2.wwwQ代表一个Web(万维|?服务器;
3.Microsoft.com/Q这是装有网늚服务器的域名Q或站点服务器的名称Q?br /> 4.China/Qؓ该服务器上的子目录,好像我们的文g夹;
5.Index.htmQindex.htm是文件夹中的一个HTML文g(|页)?br /> 三,HTTP 工作原理
  HTTP协议是基于请?响应范式?相当于客h/服务?。一个客h与服务器建立q接后,发送一个请求给服务器,h方式的格式ؓQ统一资源标识W?URL)、协议版本号Q后ҎMIME信息包括h修饰W、客h信息和可能的内容。服务器接到h后,l予相应的响应信息,其格式ؓ一个状态行Q包括信息的协议版本受一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内宏V?br />   许多HTTP通讯是由一个用户代理初始化的ƈ且包括一个申请在源服务器上资源的h。最单的情况可能是在用户代理和服务器之间通过一个单独的q接来完成。在Internet上,HTTP通讯通常发生在TCP/IPq接之上。缺省端口是TCP80Q但其它的端口也是可用的。但qƈ不预C着HTTP协议在Internet或其它网l的其它协协议之上才能完成。HTTP只预C着一个可靠的传输?br />   q个q程好像我们打电话订货一P我们可以打电话给商家Q告诉他我们需要什么规格的商品Q然后商家再告诉我们什么商品有货,什么商品缺货。这些,我们是通过电话U用电话联系(HTTP是通过TCP/IP)Q当然我们也可以通过传真Q只要商安边也有传真?br /> 四,HTTP hQ应{组?br /> http://www.cnpaf.net/Class/HTTP/0532918532641885.html

zhhang920 2008-01-18 19:46 发表评论
]]>
J2EE开发中字符处理http://www.aygfsteel.com/Rookie/archive/2008/01/05/173000.htmlzhhang920zhhang920Sat, 05 Jan 2008 09:36:00 GMThttp://www.aygfsteel.com/Rookie/archive/2008/01/05/173000.htmlhttp://www.aygfsteel.com/Rookie/comments/173000.htmlhttp://www.aygfsteel.com/Rookie/archive/2008/01/05/173000.html#Feedback0http://www.aygfsteel.com/Rookie/comments/commentRss/173000.htmlhttp://www.aygfsteel.com/Rookie/services/trackbacks/173000.html
一Qjava中对字符的处?br />

        getBytes(charset)Q这是java字符串处理的一个标准函敎ͼ其作用是字W串所表示的字W按照charset~码Qƈ以字节方式表C。注意字W串在java内存中L按unicode~码存储的。比?中文"Q正常情况下Q即没有错误的时候)存储?4e2d 6587"Q如果charset?gbk"Q则被编码ؓ"d6d0 cec4"Q然后返回字?d6 d0 ce c4"。如果charset?utf8"则最后是"e4 b8 ad e6 96 87"。如果是"iso8859-1"Q则׃无法~码Q最后返?"3f 3f"Q两个问P?br />         new String(charset)Q?/span>q是java字符串处理的另一个标准函敎ͼ和上一个函数的作用相反Q将字节数组按照charset~码q行l合识别Q最后{换ؓunicode存储。参考上qgetBytes的例子,"gbk" ?utf8"都可以得出正的l果"4e2d 6587"Q但iso8859-1最后变成了"003f 003f"Q两个问P?/span>因ؓutf8可以用来表示/~码所有字W,所以new String( str.getBytes( "utf8" ), "utf8" ) == strQ即完全可逆?br />        setCharacterEncoding()Q?/span>该函数用来设|httph或者相应的~码?/span>对于requestQ是指提交内容的~码Q指定后可以通过getParameter()则直接获得正的字符Ԍ如果不指定,则默认用iso8859-1~码Q需要进一步处理。参见下q?表单输入"。值得注意的是在执行setCharacterEncoding()之前Q不能执行Q何getParameter()。java doc上说明:This method must be called prior to reading request parameters or reading input using getReader()。而且Q该指定只对POSTҎ有效Q对GETҎ无效。分析原因,应该是在执行W一个getParameter()的时候,java会按照~码分析所有的提交内容Q而后l的getParameter()不再q行分析Q所以setCharacterEncoding()无效。而对于GETҎ提交表单是,提交的内容在URL中,一开始就已经按照~码分析所有的提交内容QsetCharacterEncoding()自然无效?/span>对于responseQ则是指定输出内容的~码Q同Ӟ该设|会传递给览器,告诉览器输出内Ҏ采用的编码?br />
二,web开发中字符~码几处讄
       对于web应用E序Q和~码有关的设|或者函数如下?br />         jsp~译Q?/span>指定文g的存储编码,很明显,该设|应该置于文件的开头。例如:<@pagepageEncoding="GBK"%>。另外,对于一般class文gQ可以在~译的时候指定编码?br />         jsp输出Q?/span>指定文g输出到browser是用的~码Q该讄也应该置于文件的开头。例如:<%@ page contentType="text/html; charset= GBK" %>。该讄和response.setCharacterEncoding("GBK"){效?br />         meta讄Q?/span>指定|页使用的编码,该设|对静态网尤其有作用。因为静态网|法采用jsp的设|,而且也无法执行response.setCharacterEncoding()。例如:<META http-equiv="Content-Type" content="text/html; charset=GBK" />Q?/span>如果同时采用了jsp输出和meta讄两种~码指定方式Q则jsp指定的优先。因为jsp指定的直接体现在response中?/span>需要注意的是,apache有一个设|可以给无编码指定的|页指定~码Q该指定{同于jsp的编码指定方式,所以会覆盖静态网中的meta指定。所以有人徏议关闭该讄?br />         form讄Q?/span>当浏览器提交表单的时候,可以指定相应的编码。例如:<form accept-charset= "gb2312">。一般不必不使用该设|,览器会直接使用|页的编码?br />
三,URL地址

        URL地址中含有中文字W是很麻烦的Q前面描q过使用GETҎ提交表单的情况,使用GETҎӞ参数是包含在URL中?br />         URL~码Q对于URL中的一些特D字W,览器会自动q行~码。这些字W除?/?&"{外Q还包括unicode字符Q比如汉子。这时的~码比较Ҏ?br />         
IE有一个选项"L使用UTF-8发送URL"Q当该选项有效ӞIE会对特D字W进行UTF-8~码Q同时进行URL~码。如果改选项无效Q则使用默认~码"GBK"Qƈ且不q行URL~码。但是,对于URL后面的参敎ͼ则L不进行编码,相当于UTF-8选项无效。比?中文.html?a=中文"Q当UTF-8选项有效Ӟ发送链?%e4%b8%ad%e6%96%87.html?a=\x4e\x2d\x65\x87"Q而UTF-8选项无效Ӟ发送链?\x4e\x2d\x65\x87.html?a=\x4e\x2d\x65\x87"。注意后者前面的"中文"两个字只?个字节,而前者却?8个字节,q主要时URL~码的原因?/span>当web serverQtomcatQ接收到该链接时Q将会进行URL解码Q即L"%"Q同时按照ISO8859-1~码Q上面已l描qͼ可以使用URLEncoding来设|成其它~码Q识别。上qC子的l果分别?\ue4\ub8\uad\ue6\u96\u87.html?a=\u4e\u2d\u65\u87"?\u4e\u2d\u65\u87.html?a=\u4e\u2d\u65\u87"Q注意前者前面的"中文"两个字恢复成?个字W。这里用"\u"Q表C是unicode?/span>所以,׃客户端设|的不同Q相同的链接Q在服务器上得到了不同结果。这个问题不h都遇刎ͼ却没有很好的解决办法。所以有的网站会用户试关闭UTF-8选项。不q,下面会描qC个更好的处理办法?br />         rewriteQ?/span>熟悉的h都知道,apache有一个功能强大的rewrite模块Q这里不描述其功能。需要说明的是该模块会自动将URL解码Q去?Q,卛_成上qweb serverQtomcatQ的部分功能。有相关文介绍说可以用[NE]参数来关闭该功能Q但我试验ƈ未成功,可能是因为版本(我用的是apache 2.0.54Q问题。另外,当参C含有"?& "{符L时候,该功能将Dpȝ得不到正常结果?/span>rewrite本ng完全是采用字节处理的方式Q而不考虑字符串的~码Q所以不会带来编码问题?br />         URLEncode.encode()Q?/span>q是Java本n提供对的URL~码函数Q完成的工作和上qUTF-8选项有效时浏览器所做的工作怼。值得说明的是Qjava已经不赞成不指定~码来用该ҎQdeprecatedQ。应该在使用的时候增加编码指定?/span>当不指定~码的时候,该方法用系l默认编码,q会D软gq行l果得不定。比如对?中文"Q当pȝ默认~码?gb2312"Ӟl果?%4e%2d%65%87"Q而默认编码ؓ"UTF-8"Q结果却?%e4%b8%ad%e6%96%87"Q后l程序将难以处理。另外,q儿说的pȝ默认~码是由q行tomcat时的环境变量LC_ALL和LANG{决定的Q曾l出现过tomcat重启后就出现q的问题,最后才郁闷的发现是因ؓ修改修改了这两个环境变量?/span>l一指定?UTF-8"~码Q可能需要修改相应的E序?br />         
        
一个解x?br />        上面说vq,因ؓ览器设|的不同Q对于同一个链接,web server收到的是不同内容Q而Y件系l有无法知道q中间的区别Q所以这一协议目前q存在缺陗?br />         针对具体问题Q不应该侥幸认ؓ所有客LIE讄都是UTF-8有效的,也不应该_暴的徏议用户修改IE讄Q要知道Q用户不可能去记住每一个web server的设|。所以,接下来的解决办法只能是让自qE序多一Ҏ能:Ҏ内容来分析编码是否UTF-8?nbsp;  
        
比较q运的是UTF-8~码相当有规律,所以可以通过分析传输q来的链接内容,来判断是否是正确的UTF-8字符Q如果是Q则以UTF-8处理之,如果不是Q则使用客户默认~码Q比?GBK"Q,下面是一个判断是否UTF-8的例子,如果你了解相应规律,容易理?/p>

public static boolean isValidUtf8(byte[] b,int aMaxCount){

       
int lLen=b.length,lCharCount=0;

       
for(int i=0;i<lLen && lCharCount<aMaxCount;++lCharCount){

              
byte lByte=b[i++];//to fast operation, ++ now, ready for the following for(;;)

              
if(lByte>=0continue;//>=0 is normal ascii

              
if(lByte<(byte)0xc0 || lByte>(byte)0xfreturn false;

              
int lCount=lByte>(byte)0xfc?5:lByte>(byte)0xf8?4

                     :lByte
>(byte)0xf0?3:lByte>(byte)0xe0?2:1;

              
if(i+lCount>lLen) return false;

              
for(int j=0;j<lCount;++j,++i) if(b[i]>=(byte)0xc0return false;

       }

       
return true;

}

相应圎ͼ一个用上q方法的例子如下Q?/p>

public static String getUrlParam(String aStr,String aDefaultCharset)

throws UnsupportedEncodingException{

       
if(aStr==nullreturn null;

       
byte[] lBytes=aStr.getBytes("ISO-8859-1");

       
return new String(lBytes,StringUtil.isValidUtf8(lBytes)?"utf8":aDefaultCharset);

}

不过Q该Ҏ也存在缺P如下两方面:
        
没有包括对用户默认编码的识别Q这可以Ҏh信息的语a来判断,但不一定正,因ؓ我们有时候也会输入一些韩文,或者其他文字?br />         可能会错误判断UTF-8字符Q一个例子是"学习"两个字,其GBK~码? \xd1\xa7\xcf\xb0"Q如果用上qisValidUtf8Ҏ判断Q将q回true。可以考虑使用更严格的判断ҎQ不q估计效果不大?br />         有一个例子可以证明google也遇C上述问题Q而且也采用了和上q相似的处理ҎQ比如,如果在地址栏中输入"http://www.google.com/search?hl=zh-CN&newwindow=1&q=学习"Qgoogle无法正识别,而其他汉字一般能够正常识别?/span>最后,应该补充说明一下,如果不用rewrite规则Q或者通过表单提交数据Q其实ƈ不一定会遇到上述问题Q因时可以在提交数据时指定希望的~码。另外,中文文g名确实会带来问题Q应该}慎用?br />
四,qo?/span>
        
如果需要统一讄~码Q则通过filterq行讄是个不错的选择。在filter class中,可以l一为需要的h或者回应设|编码。参加上qsetCharacterEncoding()。这个类apache已经l出了可以直接用的例SetCharacterEncodingFilter?/span>



zhhang920 2008-01-05 17:36 发表评论
]]>
վ֩ģ壺 ̨| Ϸ| ɽ| | | ʩ| | | | | ޶| | | | ɽ| | | | | ຣʡ| ï| ³ƶ| | | ƽң| ˮ| | | | | | | | ±| | | | | | | |