锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鍦ㄧ粡鍏稿悓鏃剁湅鍒頒袱涓叧浜嶤ontentType鐨勯棶棰?/p> http://bbs.blueidea.com/thread-2729935-1-1.html http://bbs.blueidea.com/thread-2729945-1-1.html 鎵浠ユ煡浜嗕笅璧勬枡,copy浜嗕竴浠借緇嗙殑ContentType鐨勫垪琛?/p> 聽 涓嶅悓鐨凜ontentType 浼氬獎鍝嶅鎴風鎵鐪嬪埌鐨勬晥鏋? 榛樿鐨凜ontentType涓?text/html聽 涔熷氨鏄綉欏墊牸寮? 浠g爜濡? <% response.ContentType ="text/html" %>聽 鏄劇ず鐨勪負緗戦〉,鑰?/p> <% response.ContentType ="text/plain" %>聽 鍒欎細鏄劇ずhtml鍘熶唬鐮? 浠ヤ笅涓轟竴浜涘父鐢ㄧ殑 ContentType 聽 涓嬮潰鏄洿璇︾粏鐨凜ontentType 1. 鍦ㄦ暟鎹簱琛ㄤ腑寤虹珛涓涓猙lob瀛楁瀛樻斁鐢ㄦ埛涓婁紶鏂囦歡. 鎴戞湰浜虹幇鍦ㄦ瘮杈冨懼悜浜庣2縐嶆柟妗? 涓昏鍘熷洜鏄媴蹇冩柟妗?鐨勬晥鐜囷紙鎴戠敤鐨勬槸mysql鏁版嵁搴擄級銆?浣嗘槸澶勭悊榪囩▼涓櫎浜嗙淮鎶ゆ暟鎹簱涓〃鐨勫瓧孌佃繕瑕佺淮鎶や笂浼犵殑鏂囦歡 澶у鍦ㄩ」鐩噷闈㈠張鏄庝箞鍋氬憿錛?緇欐垜鐐瑰緩璁紒璋㈣阿 銆銆鐜浠嬬粛 銆銆cookie鍦╳ww涓誨煙鍚嶄笅鍒涘緩錛屽茍鍐欏叆Domain灞炴э紝濡傦細(涓烘柟渚胯皟璇曚互涓嬩唬鐮佺殕涓篴sp浠g爜) 銆銆Write.asp <% 銆銆涓婇潰鏂囦歡鏀懼湪www涓誨煙鍚嶄笅錛屽悓鏃跺湪鍚岀洰褰曚笅鏀劇疆涓涓鍙朿ookie鐨凴ead.asp 銆銆Read.asp <% 銆銆鍐嶆斁涓涓猂ead.asp鏂囦歡鍒板彟澶栦竴涓瓙鍩熷悕绔欑偣閲岋紝浠g爜鍚屼笂銆傛渶鍚庢垜浠啀鍋氫竴涓竻闄ookie鐨凜lear.asp鏀懼湪涓誨煙鍚嶄笅 銆銆Clear.asp <%
銆銆鐜板湪鍙互閫氳繃涓嬮潰鐨勬墽琛岄『搴忔潵嫻嬭瘯錛學rite.asp-->涓誨煙鍚嶇殑Read.asp-->瀛愬煙鍚嶇殑Read.asp聽鎵鏈?
Read.asp欏甸潰閮藉彲浠ヨ鍙栧埌Write.asp鍒涘緩鐨刢ookie鐨勫鹼紝鐒跺悗鍐嶈繍琛孋lear.asp榪涜娓呴櫎錛屼竴鍒囬兘Ok錛岀湅涓婂幓娌℃湁浠涔堥棶棰樸?/p'> 銆銆浣嗘槸鎶婅繖縐嶆柟娉曡繍鐢ㄥ埌瀹為檯鐨勭珯鐐規椂鍗村嚭鐜伴棶棰樹簡銆?/p'> 銆銆闂鎻忚堪錛?/p'>
銆銆絎竴嬈$櫥褰曚竴鍒噊k錛屾墍鏈夊瓙鍩熷悕閮藉彲浠ヨ闂埌涓誨煙鍚嶅瓨鍌ㄧ殑cookie錛屼絾鏄紝涓鏃﹂鍑轟箣鍚庯紝瀛愬煙鍚嶇殑cookie琚竻闄や簡錛屼絾鏄富鍩熷悕鐨?
cookie浠嶇劧淇濈暀鐫錛屽己琛屾竻闄や富鍩熷悕鐨刢ookie涔嬪悗錛屾棤璁烘庢牱鐧誨綍涓誨煙鍚嶄笅閮芥棤娉曚繚瀛榗ookie浜嗭紝闄ら潪鍏蟲帀嫻忚鍣ㄩ噸鏂版墦寮銆?/p'> 銆銆緇忚繃澶氭灝濊瘯涔嬪悗錛屾棤鎰忎腑鍙戠幇闂鎵鍦紝浠ヤ笅鏄祴璇曠粡榪囥?/p'> 銆銆鍒涘緩涓涓猈rite2.asp鐨勯〉闈㈡斁鍦ㄤ富鍩熷悕涓?/p'> <% 銆銆絎竴姝ワ細鍏抽棴嫻忚鍣ㄥ悗錛屾寜浠ヤ笅欏哄簭鎵ц錛學rite.asp-->涓誨煙鍚嶇殑Read.asp-->瀛愬煙鍚嶇殑Read.asp聽鍒拌繖閲屾墍鏈塕ead.asp璇誨彇姝e父銆?/p'> 銆銆絎簩姝ワ細Clear.asp-->涓誨煙鍚嶇殑Read.asp-->瀛愬煙鍚嶇殑Read.asp聽鍒拌繖閲屾竻闄ゆ搷浣滄槸鎴愬姛鐨勩?/p'> 銆銆絎笁姝ワ細Write.asp-->聽Write2.asp聽-->聽涓誨煙鍚峈ead.asp聽-->聽瀛愬煙鍚峈ead.asp聽鍒拌繖閲屼袱涓猂ead.asp閮藉彲浠ヨ鍙栧埌cookie鐨勫箋?/p'> 銆銆絎洓姝ワ細閲嶆柊鎵ц絎簩姝ワ紝鍙戠幇涓誨煙鍚峈ead.asp浠嶇劧杈撳嚭浜嗗鹼紝鑰屽瓙鍩熷悕涓嬬殑Read.asp鐨勫煎凡緇忚娓呯┖浜嗐?/p'> 銆銆鏍規嵁浠ヤ笂嫻嬭瘯鎬葷粨浠ヤ笅鍑犵偣鍐嶈法鍩熶嬌鐢╟ookie鏃墮渶瑕佹敞鎰忕殑鍦版柟 銆銆1銆佸綋浣犳湁涓涓狢ookie緇勶紙鎴栧彨Cookie瀛楀吀錛変嬌鐢―omain灞炴ф寚瀹氬煙鍚嶄箣鍚庯紝褰撲綘鍦ㄥ璇ョ粍鐨勬垚鍛樿繘琛屼慨鏀規垨鏂板鐨勬椂鍊欙紝涓瀹氳鍦ㄦ搷浣滀箣鍚庡姞涓奟esonse.Cookies(CookieName).Domain灞炴с?/p'> 銆銆2銆佸鏋滄病鏈夊繀瑕侊紝璇蜂笉瑕佷慨鏀瑰凡璁劇疆Domain鐨凜ookie緇勶紝鐩存帴浣跨敤Response.Cookies("CookieText")聽=聽CookieValue聽鏉ュ垱寤轟竴涓柊鐨凜ookie銆?br /> 涓銆丼truts鐨勫浗闄呭寲 浜屻侀潤鎬侀儴鍒嗙殑鍥介檯鍖?br />聽聽
Struts鐨刯sp欏甸潰闈欐佸唴瀹癸紙鍖呮嫭闈欐佹枃瀛楋紝闈欐佸浘鐗囷級鍥介檯鍖栭棶棰橈紝鏄氳繃璧勬簮鏂囦歡鏉ュ疄鐜扮殑銆傝瀹炵幇鍥介檯鍖栵紝闇瑕佸仛濡備笅鍑犻」宸ヤ綔錛?銆佸畾涔墂eb.xml鐨勫姩ActionServlet鐨勫弬鏁幫紱2銆佸畾涔夎祫婧愭枃浠訛紱3銆佸畾涔塉SP欏甸潰鐨勫瓧絎﹂泦鍚堬紱4銆佸湪JSP欏甸潰鑾峰彇璧勬簮鏂囦歡閲岄潰鐨勫唴瀹廣?br />1銆佸畾涔墂eb.xml鐨勫姩ActionServlet鐨勫弬鏁?br /> 2銆佸畾涔夎祫婧愭枃浠?br />鍦?WEB-INF/classes涓嬮潰娣誨姞UTF-8璧勬簮鏉熸枃浠躲傛瘡涓涓祫婧愭枃浠舵槸鈥滈敭錛嶅尖濆鐨勯泦鍚堛傚湪JSP欏甸潰閲岄潰鍙互閫氳繃閿潵鎵懼埌鐩稿簲鐨勬暟鎹箋傛湰渚嬪瓙鐨勬枃浠跺悕鏄疉pplicationResources錛屾墍浠ョ浉搴旂殑璧勬簮鏂囦歡鏉熸槸(鍖呮嫭e鏂囷紝綆浣撲腑鏂囷紝綣佷綋涓枃) //ApplicationResources_zh_CN.bak
錛涚畝浣撲腑鏂囩殑璧勬簮鏂囦歡銆傞噷闈㈢殑鍐呭鏄腑鏂囩殑銆傚畠闇瑕佸伐鍏峰皢鍏朵腑鐨勫唴瀹瑰鐞嗘垚UTF-8 //ApplicationResources_zh_TW.bak :
綣佷綋涓枃鐨勮祫婧愭枃浠躲傞噷闈㈢殑鍐呭鏄腑鏂囩殑銆傚畠闇瑕佸伐鍏峰皢鍏朵腑鐨勫唴瀹瑰鐞嗘垚UTF-8,涓嬮潰鐨勫唴瀹規槸綣佷綋鐮併?br />label.username=銉庛倎?W
: 2.2 鍑嗗瀹屾垚浠ュ悗錛屼嬌鐢ㄥ涓嬬殑鍛戒護鍒涘緩UTF-8璧勬簮鏂囦歡鏉?br />native2ascii -encoding gb2312
ApplicationResources_zh_CN.bak
ApplicationResources_zh_CN.properties 3銆佸畾涔塉SP欏甸潰鐨勫瓧絎﹂泦鍚?br />瀹氫箟JSP欏甸潰鐨勮璦涓篣TF-8銆傚湪姣忎釜JSP欏甸潰錛屽繀欏繪湁濡備笅鐨勫唴瀹癸紙濡傛灉浣跨敤鐨勬ā鏉挎妧鏈紝鍒欏彧鏄渶瑕佸湪妯℃澘欏甸潰娣誨姞錛屽叾浠栦嬌鐢ㄨ妯℃澘鐨勯〉闈㈡棤闇娣誨姞錛?br /><%@
page contentType="text/html;charset=UTF-8"%> 4銆佸湪JSP欏甸潰鑾峰彇璧勬簮鏂囦歡閲岄潰鐨勫唴瀹廣?br />鍦↗SP閲岄潰闇瑕佹樉紺洪潤鎬佸唴瀹圭殑鍦版柟浣跨敤<bean:message />strus鐨刡ean
tag鍖呴噷闈㈢殑message鏍囩銆備緥濡備笅闈㈢殑欏甸潰 <table> 濂戒簡錛屽湪榪欎釜欏甸潰鏄劇ず鐨勬椂鍊欙紝濡傛灉瀹㈡埛鐨処E鐨勮璦闆嗗悎鏄痾h_CN鐨勮瘽錛屽氨浼氭樉紺?br />鐢ㄦ埛鍚嶏細 濡傛灉鏄鎴風殑IE鐨勮璦鏄痾h_TW鐨勮瘽錛屽氨浼氭樉紺?br />鐢ㄦ埛鍚嶏細 鍙互鍦↖E鐨勫伐鍏?>Internet閫夐」->璇█鐨勫湴鏂癸紝鏉ラ夋嫨錛屽畾涔塈E鐨勮璦銆?/p> 涓夈佽〃鍗曠殑鏁版嵁鐨勫鐞嗐?br />瀵逛簬琛ㄥ崟鏁版嵁鐨勫鐞嗭紝鎴戜滑鏄氳繃娣誨姞涓涓狥ilter鏉ュ疄鐜扮殑銆傛墍鏈夋彁浜ょ殑璇鋒眰錛岄兘闇瑕佸仛瀛楃澶勭悊銆傜劧鍚庡湪web.xml閲岄潰瀹氫箟璇ilter銆傝繖鏍鋒垜浠氨涓嶉渶瑕佸湪紼嬪簭閲岄潰鍋氫換浣曠殑瀛楃澶勭悊銆?/b> import java.io.*; public class CharsetEncodingFilter implements Filter{ 聽 public void init(FilterConfig config) throws ServletException { 聽 public void destroy() { 聽 public void doFilter(ServletRequest request, ServletResponse
response, 3.2 鍦╳eb.xml閲岄潰澹版槑浣跨敤璇ilter 鍥涖佹墿灞?br />寰呯畫鐨勬槸搴旂敤紼嬪簭閮ㄥ垎鐨勫浗闄呭寲闂錛屽拰DB鐨勫浗闄呭寲闂銆?/p>
鎽樿錛氭敹闆嗕竴浜涘父鐢ㄧ殑姝e垯琛ㄨ揪寮忋?/font>
姝e垯琛ㄨ揪寮忕敤浜庡瓧絎︿覆澶勭悊錛岃〃鍗曢獙璇佺瓑鍦哄悎錛屽疄鐢ㄩ珮鏁堬紝浣嗙敤鍒版椂鎬繪槸涓嶅お鎶婃彙錛屼互鑷村線寰瑕佷笂緗戞煡涓鐣傛垜灝嗕竴浜涘父鐢ㄧ殑琛ㄨ揪寮忔敹钘忓湪榪欓噷錛屼綔澶囧繕涔嬬敤銆傛湰璐撮殢鏃朵細鏇存柊銆?/font>
鍖歸厤涓枃瀛楃鐨勬鍒欒〃杈懼紡錛?[\u4e00-\u9fa5]
鍖歸厤鍙屽瓧鑺傚瓧絎?鍖呮嫭姹夊瓧鍦ㄥ唴)錛歔^\x00-\xff]
搴旂敤錛氳綆楀瓧絎︿覆鐨勯暱搴︼紙涓涓弻瀛楄妭瀛楃闀垮害璁?錛孉SCII瀛楃璁?錛?/font>
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
鍖歸厤絀鴻鐨勬鍒欒〃杈懼紡錛歕n[\s| ]*\r
鍖歸厤HTML鏍囪鐨勬鍒欒〃杈懼紡錛?<(.*)>.*<\/\1>|<(.*) \/>/
鍖歸厤棣栧熬絀烘牸鐨勬鍒欒〃杈懼紡錛?^\s*)|(\s*$)
搴旂敤錛歫avascript涓病鏈夊儚vbscript閭f牱鐨則rim鍑芥暟錛屾垜浠氨鍙互鍒╃敤榪欎釜琛ㄨ揪寮忔潵瀹炵幇錛屽涓嬶細
String.prototype.trim = function()
鍒╃敤姝e垯琛ㄨ揪寮忓垎瑙e拰杞崲IP鍦板潃錛?/font>
涓嬮潰鏄埄鐢ㄦ鍒欒〃杈懼紡鍖歸厤IP鍦板潃錛屽茍灝咺P鍦板潃杞崲鎴愬搴旀暟鍊肩殑javascript紼嬪簭錛?/font>
function IP2V(ip)
涓嶈繃涓婇潰鐨勭▼搴忓鏋滀笉鐢ㄦ鍒欒〃杈懼紡錛岃岀洿鎺ョ敤split鍑芥暟鏉ュ垎瑙e彲鑳芥洿綆鍗曪紝紼嬪簭濡備笅錛?/font>
var ip="10.100.20.168"
鍖歸厤Email鍦板潃鐨勬鍒欒〃杈懼紡錛歕w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
鍖歸厤緗戝潃URL鐨勬鍒欒〃杈懼紡錛歨ttp://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
寰楃敤姝e垯琛ㄨ揪寮忎粠URL鍦板潃涓彁鍙栨枃浠跺悕鐨刯avascript紼嬪簭錛屽涓嬬粨鏋滀負page1
s="http://www.9499.net/page1.htm"
鍒╃敤姝e垯琛ㄨ揪寮忛檺鍒剁綉欏佃〃鍗曢噷鐨勬枃鏈杈撳叆鍐呭錛?/font>
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆涓枃錛歰nkeyup="value=value.replace(/[^
\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆鍏ㄨ瀛楃錛?/font>
聽onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆鏁板瓧錛歰nkeyup="value=value.replace(/[^
\d]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
鐢ㄦ鍒欒〃杈懼紡闄愬埗鍙兘杈撳叆鏁板瓧鍜岃嫳鏂囷細onkeyup="value=value.replace
(/[\W]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
]]>
]]>
come from here
<!--錛僫 nclude virtual="/ContentType.html" -->
<!--錛僫 nclude virtual="/sscript/GIF images <% response.ContentType ="image/gif" %>聽
<!--錛僫 nclude virtual="/myimage.gif" -->JPEG images <% response.ContentType ="image/jpeg" %>聽
<!--錛僫 nclude virtual="/myimage.jpeg" -->TIFF images <% response.ContentType ="image/tiff" %>聽
<!--錛僫 nclude virtual="/myimage.tiff" -->MICROSOFT WORD document <% response.ContentType ="application/msword" %>聽
<!--錛僫 nclude virtual="/myfile.doc" -->RTF document <% response.ContentType ="application/rtf" %>聽
<!--錛僫 nclude virtual="/myfile.rtf" -->MICROSOFT EXCEL document <% response.ContentType ="application/x-excel" %>聽
<!--錛僫 nclude virtual="/myfile.xls" -->MICROSOFT POWERPOINT document <% response.ContentType ="application/ms-powerpoint" %>聽
<!--錛僫 nclude virtual="/myfile.pff" -->PDF document <% response.ContentType ="application/pdf" %>聽
<!--錛僫 nclude virtual="/myfile.pdf" -->ZIP document <% response.ContentType ="application/zip" %>聽
<!--錛僫 nclude virtual="/myfile.zip" -->application/andrew-inset ez application/mac-binhex40 hqx application/mac-compactpro cpt application/mathml+xml mathml application/msword doc application/octet-stream bin dms lha lzh exe class so dll application/oda oda application/ogg ogg application/pdf pdf application/postscript ai eps ps application/rdf+xml rdf application/smil smi smil application/srgs gram application/srgs+xml grxml application/vnd.mif mif application/vnd.mozilla.xul+xml xul application/vnd.ms-excel xls application/vnd.ms-powerpoint ppt application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc .wmlc wmlc application/vnd.wap.wmlscriptc .wmlsc wmlsc application/voicexml+xml vxml application/x-bcpio bcpio application/x-cdlink vcd application/x-chess-pgn pgn application/x-cpio cpio application/x-csh csh application/x-director dcr dir dxr application/x-dvi dvi application/x-futuresplash spl application/x-gtar gtar application/x-hdf hdf application/x-httpd-php .php .php4 .php3 .phtml application/x-httpd-php-source .phps application/x-javascript js application/x-koan skp skd skt skm application/x-latex latex application/x-netcdf nc cdf application/x-pkcs7-crl .crl application/x-sh sh application/x-shar shar application/x-shockwave-flash swf application/x-stuffit sit application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-tar .tgz tar application/x-tcl tcl application/x-tex tex application/x-texinfo texinfo texi application/x-troff t tr roff application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-wais-source src application/x-x509-ca-cert .crt application/xhtml+xml xhtml xht application/xml xml xsl application/xml-dtd dtd application/xslt+xml xslt application/zip zip audio/basic au snd audio/midi mid midi kar audio/mpeg mpga mp2 mp3 audio/x-aiff aif aiff aifc audio/x-mpegurl m3u audio/x-pn-realaudio ram rm audio/x-pn-realaudio-plugin rpm audio/x-realaudio ra audio/x-wav wav chemical/x-pdb pdb chemical/x-xyz xyz image/bmp bmp image/cgm cgm image/gif gif image/ief ief image/jpeg jpeg jpg jpe image/png png image/svg+xml svg image/tiff tiff tif image/vnd.djvu djvu djv image/vnd.wap.wbmp .wbmp wbmp image/x-cmu-raster ras image/x-icon ico image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd model/iges igs iges model/mesh msh mesh silo model/vrml wrl vrml text/calendar ics ifb text/css css text/html .shtml html htm text/plain asc txt text/richtext rtx text/rtf rtf text/sgml sgml sgm text/tab-separated-values tsv text/vnd.wap.wml .wml wml text/vnd.wap.wmlscript .wmls wmls text/x-setext etx video/mpeg mpeg mpg mpe video/quicktime qt mov video/vnd.mpegurl mxu video/x-msvideo avi video/x-sgi-movie movie x-conference/x-cooltalk ice
]]>
]]>
鏈榪戠鍒扮洍閾劇殑闂錛屽嵆澶嶅埗涓涓猽rl鍦板潃錛屽湪鍙︿竴涓湴鏂逛篃鑳借闂?br />
index.jsp欏甸潰<html>
聽聽<head><title>Simple聽jsp聽page</title></head>
聽聽<body>Place聽your聽content聽here
聽聽here聽is聽index聽jsp
聽聽聽聽get聽header聽info
聽聽<a聽href="a.jsp">a.jsp</a>
聽聽</body>
</html>
a.jsp欏甸潰<html>
聽聽<head><title>Simple聽jsp聽page</title></head>
聽聽<body>Place聽your聽content聽here
聽聽here聽is聽a.聽jsp
聽聽聽聽get聽header聽info
聽聽<%=request.getHeader("Referer")%>
聽聽<%
if(null聽==聽request.getHeader("Referer")聽||聽request.getHeader("Referer").indexOf("yourdomain.com")聽<聽0){%>
聽聽聽聽聽鍋氫漢瑕佸帤閬?br />
聽聽<%
}else{%>
聽聽鍚堟硶璁塊棶
聽聽<%}%>
聽聽</body>
</html>
鍗充粠鍐呴儴璁塊棶鍙互錛岀洿鎺ョ矘璐村湴鍧鍦ㄥ彟涓涓祻瑙堝櫒閲岃闂姝?img src ="http://m.tkk7.com/alex/aggbug/103458.html" width = "1" height = "1" />
]]>
鐩噷闈㈡湁涓婁紶鏂囦歡鐨勯渶姹?鎴戞兂浜嗕竴涓嬩笉澶栦箮涓嬮潰涓ょ澶勭悊鏂規硶:
2. 鍦ㄦ湇鍔″櫒涓婂緩绔嬩竴涓枃浠跺す淇濆瓨鐢ㄦ埛涓婁紶鏂囦歡,鏁版嵁搴撹〃涓彧瀛樻斁璇ユ枃
璁ㄨ鍐呭瑙? javaeye
robin鏇村緩璁浜岀鏂規錛屾斁鍦ㄦ暟鎹簱涓富瑕佺殑闂鏄?AppServer鍚冧笉娑堬紝寮閿姣旇緝澶?
涓婇潰鏄憳褰曪紝涓嶈繃鎴戜滑榪欓噷鐢ㄧ殑鏄疧racle9i AS,鍦∣racle鐨勫崗浣滃闂撮噷涓鑸枃妗f垨鑰呬笂浼犵殑鏂囦歡閮芥槸淇濆瓨鍦ㄦ暟鎹簱閲岋紝榪樻妸榪欎釜鐗規т綔涓篛racle 涓庡埆鐨勫崗浣滃浠朵箣闂翠笉鍚岀殑鍗栫偣銆?br>
澶у浠ヤ負濡備綍? 鎴戠洿瑙夋槸Oracle鐨凞B鍜宱c4j鐨凙ppServer瀵逛粯榪欎釜浼間箮娌℃湁寮閿涓婄殑鎷呭績錛屼絾鏄病鏈夊疄闄呮嫻嬭繃銆?
鎹㈠彞璇濊錛屾枃浠剁殑綆$悊鏄斁鍦ㄦ枃浠跺す閲屾柟渚胯繕鏄暟鎹簱閲屾柟渚? 鏈夌偣涓洪毦
update (2007-5-13):
榪樻湁涓縐嶆柟妗堢粨鍚堜簡鏁版嵁搴撳拰IO錛屾垜璁や負姣旇緝鍙錛屽氨鏄枃浠跺瓨鍦ㄦ暟鎹簱錛屼絾鏄笅杞界殑鏃跺欑涓嬈′粠鏁版嵁搴撲笅杞斤紝鐒跺悗絎竴嬈¤繖涓枃浠朵繚瀛樺湪涓涓復鏃舵枃浠跺す涓嬮潰錛屼互鍚庢瘡嬈′笅杞界殑鏃跺欐繪槸鍏堟鏌ユ涓存椂鏂囦歡澶癸紝濡傛灉宸茬粡瀛樺湪鍒欑洿鎺ヤ笅杞斤紝濡傛灉娌℃湁鍒欎粠鏁版嵁搴撻噸澶嶈繖涓姩浣溿傚綋鐒訛紝淇濆瓨鍦ㄤ復鏃舵枃浠跺す涓嬬殑鏂囦歡鐨勫懡鍚嶉渶瑕佸敮涓錛岃繖涓簲璇ユ病鏈夐棶棰樸?/span>
]]>
web蹇熷紑鍙戞槸涓涓煎緱鏈熷緟鐨勪笢瑗匡紝鏈鏃╂垜鎺ヨЕ榪?span style="FONT-WEIGHT: bold">codecharge,鏄竴涓晢涓氳蔣浠訛紝鍔熻兘鎹寰堝己澶э紝鎴戣瘯鐢ㄨ繃錛屾敮鎸乸hp
2. 鎺ョ潃灝辨槸dorado ,鍒氱湅鍒扮殑錛屾劅瑙変篃涓嶉敊,鏈塧sp鐨勯鏍鹼紝涓嶈繃鏇撮傚悎j2ee鐨勭幆
3. 鏈鍚庯紝鍒歡oogle浜嗕竴涓嬶紝Oracle涔熸湁涓涓熀浜嶰racl
4.瀵逛簡錛屽啀琛ュ厖涓涓幇鍦ㄥ緢鐑殑錛孯or,鍚javaeye鐨勭綉绔欒閲嶆柊鐢╮uby1.2寮鍙戯紝璇曠敤榪囦竴鐐癸紝鎰熻紜疄浠や漢闇囨儕錛屽煎緱鍏蟲敞銆?br />
java鐨勬妧鏈叾瀹炴槸鐪嬬潃寰堢儹闂癸紝姣旇緝澶х殑涓滆タ涔熶笉灝戯紝浣嗘槸鐪熸鍏蟲敞web榪欎竴鍧楃殑鍏跺疄涓嶅錛屾棤璁烘槸struts榪樻槸webwork,紱繪垜浠墍璇寸殑鐪熸鐨勨滃揩閫熷紑鍙戔濈殑璺濈寰堣繙錛岃屼互涓婁竴浜涘伐鍏風殑鍑虹幇涔熻浼氶愭鏀瑰杽j2ee鍦ㄨ繖涓棰嗗煙鐨勭幇鐘躲?br />
鎴戜箣鎵浠ュ榪欎釜鐩墠鏈夌偣鍏磋叮錛岀‘瀹炴湁涓縐嶅己鐑堢殑鍙嶅樊鍦ㄦ姌紓ㄧ潃鎴戯紝鍥犱負鎴戠浉淇″湪j2ee鐨剋eb寮鍙戦噷紜疄瀛樺湪鏈潵瑕佸紑鍙?鍛ㄥ鐨勫伐浣滈噺寰堝彲鑳界敤涓涓ソ鐨勫伐鍏峰嚑涓皬鏃跺氨鎼炲畾浜嗭紝榪欐槸涓浠跺涔堣崚鍞愭悶絎戠殑浜嬫儏錛熷鏋渄orado鍦ㄥ畠鐨勪駭鍝佷腑鐪熺殑鑳藉仛鍒拌繖鏍烽偅鎴戜滑鐨刯ava寮鍙戦偅涔堝潙鍚冨潙鍚冪殑鎶樿吘涓粈涔堝姴鍟? 涔熻鐪熺殑鏈夊榪癸紝鎴戝畞鎰跨浉淇℃湁榪欐牱鐨勫榪廣?br />
澶у鏈変粈涔堝ソ鐨勬兂娉曞彲浠ヨ璁轟竴涓嬨?br />
]]>
鏈榪戦」鐩腑鐢ㄥ埌浜嗘敹閾訛紝闇瑕佸湪欏炬樉涓婃樉紺洪噾棰?
1.灝?dll銆?ocx絳夎冨埌system32涓嬨?br />2.鐢ㄥ懡浠ゆ敞鍐宺egsvr32.exe聽 .dll銆?eg:regsvr32.exe聽 OWC11.dll)
3.鍦ㄦ敞鍐岃〃涓煡鐪嬶細鍒╃敤鍚嶇О鎴栦笌鍏跺敮涓瀵瑰簲鐨刢lsid("clsid:0002E55D-0000-0000-C000-聽聽聽000000000046")鍙煡鎵懼埌鐩稿叧淇℃伅
]]>
bea world 2006 鍖椾含宸茬粡榪囧幓濂藉嚑澶╀簡錛屾棭灝辨兂璁板綍涓涓嬩竴鐩村繖 :)
闃呰鍏ㄦ枃
]]>
鍘熸潵涓鐩寸敤struts,鏈榪戦」鐩噷鏈変漢鐢╦stl,鎴戜篃灝遍『渚挎嬁鏉ョ敤錛屾劅瑙夎繕鏄笉閿欍?br />
榪囩▼涓鍒頒竴浜涘皬鐨勯棶棰樻葷粨濡備笅:
涓銆傜増鏈棶棰?br />jstl瀛樺湪1.0鍜?.1鐨勫樊寮傞棶棰橈紝鐢‥L寤鴻闇瑕佸湪1.1鐨勭増鏈笅錛?.1鐨刄RI鐨勬爣蹇椾負:
<%@聽taglib聽uri="http://java.sun.com/jsp/jstl/functions"聽prefix="fn"%>
娉ㄦ剰錛?.0鐗堟湰娌℃湁/jsp/.
濡傛灉鐢ㄧ殑1.0浼氬嚭鐜板涓嬪紓甯?br />
聽聽聽聽org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
聽聽聽聽org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
聽聽聽聽org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
聽聽聽聽org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
聽聽聽聽javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
聽聽聽聽org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
聽聽聽聽org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
聽聽聽聽com.wellsoon.zfzw.webapp.common.VabAccessFilter.doFilter(VabAccessFilter.java:43)
root聽cause聽
浜屻傛墦寮錛ワ棘
鍓嶆彁鏄鍣ㄦ敮鎸侊紥錛庯紣錛屽嵆浣挎敮鎸侀粯璁や篃鏈繀鎵撳紑錛屾渶瀹夊叏鐨勬柟寮忓氨鏄樉紺烘墦寮 isELIgnored="false"
涓?fn鐨勭敤娉?br />瀵逛簬Vo閲岀殑涓涓狶ist浣渓ength鐨勮綆楁垨鍒ゆ柇寰堟柟渚?br />
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<c:forEach聽items="${menuInfos}"聽var="m">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<c:if聽test="${fn:length(m.subMenus)>0}">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<tr>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<td>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<script聽language="JavaScript">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽var聽tObj聽=聽new聽treeClass("A1")
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tObj.start();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tObj.m_start("<c:out聽value="${m.menuModule}"/>",0);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<c:forEach聽items="${m.subMenus}"聽var="sub">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tObj.add_Sub("<c:out聽value="${sub.menuName}"/>","<%=path%>
<c:out聽value="${sub.url}"/>","mymain");
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</c:forEach>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tObj.m_end();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tObj.end();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽tObj.print();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</script>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</td>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</tr>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</c:if>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</c:forEach>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽</table>
鍥?tld鐨勫0鏄庡彲浠ュ湪web.xml浣滄樉寮忓0鏄庝篃鍙互鐢╤ttp浣滅洿鎺RL澹版槑
鎺ㄨ崘鐢ㄦ湰鍦扮殑鏂瑰紡.
]]>
]]>
淇濆瓨涓篍xcel:
聽聽聽聽聽聽聽聽聽聽聽聽var聽s聽=聽"<center>"聽+聽HeadName聽+聽"</center>"聽+聽"\r\n";
聽聽聽聽聽聽聽聽聽聽聽聽s聽+=聽DivName.innerHTML;
聽聽聽聽聽聽聽聽聽聽聽聽var聽xlsWindow聽=聽window.open("",聽"_blank",聽"width=1,height=1,scrollbars=no,toolbar=no");
聽聽聽聽聽聽聽聽聽聽聽聽xlsWindow.document.write(s);
聽聽聽聽聽聽聽聽聽聽聽聽xlsWindow.document.close();
聽聽聽聽聽聽聽聽聽聽聽聽xlsWindow.document.execCommand('Saveas',聽true,聽'%homeDrive%\\Data.xls')
聽聽聽聽聽聽聽聽聽聽聽聽xlsWindow.close();
聽聽聽聽聽聽聽聽}
鎵撳嵃褰撳墠欏甸潰:
聽聽var聽oldBody=document.body.innerHTML;
聽聽var聽Div1=DivName.innerHTML;
聽聽var聽css聽=聽'<style聽type="text/css"聽media=all>'聽+
聽聽'p聽{聽line-height:聽120%}'聽+
聽聽'.fhead聽{聽聽聽font-size:聽9pt;聽text-decoration:聽none;聽color:聽104A7B}'聽+
聽聽'.ftitle聽{聽line-height:聽120%;聽font-size:聽18px;聽color:聽#000000}'聽+
聽聽'td聽{聽font-size:聽10px;聽color:聽#000000}'聽+
聽聽'</style>'聽;
聽聽var聽body聽='<table聽width="640"聽border="0"聽cellspacing="0"聽cellpadding="5">'聽+
聽聽'聽<tr>聽'聽+
聽聽'聽<td聽class="fbody">'聽+
聽聽'聽<b><div聽align="center">'+'<font聽size="+1"聽class=fhead>'+聽HeadName1聽+聽'</div>'+'</font></b>'+
聽聽'聽<b><div聽align="center">'+'<font聽size="+1"聽class=fhead>'+聽HeadName2聽+聽'聽聽聽聽聽'聽+聽HeadName3聽+'</div></font></b>'+
聽聽'聽</td>'聽+
聽聽'聽</tr>'聽+
聽聽'聽<tr>聽'聽+
聽聽'聽<td聽class="fbody">'聽+
聽聽'聽<div聽align="center"聽class=ftitle>'聽+聽Div1聽+聽'</div>'+
聽聽'聽<b><div聽align="right">'+'<font聽size="+1"聽class=fhead>'+聽'聽聽聽聽聽聽</div>'+'</font></b>'+
聽聽'聽<b><div聽align="right">'+'<font聽size="+1"聽class=fhead>'+聽TailName1聽+聽'</div>'+'</font></b>'+
聽聽'聽</td>'聽+
聽聽'聽</tr>'聽+
聽聽'</table>';
document.body.innerHTML聽=聽'<center>'聽+聽css聽+聽body聽+'<OBJECT聽classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"聽height=0聽id=wb聽name=wb聽width=0></OBJECT>'+'</center>';
wb.execwb(6,6);
document.body.innerHTML=oldBody;
}
]]>
key words:鍗曠偣鐧婚檰 SSO 璺ㄥ煙cookie
鎽樿錛?b>褰撲綘鏈変竴涓狢ookie緇勶紙鎴栧彨Cookie瀛楀吀錛変嬌鐢―omain灞炴ф寚瀹氬煙鍚嶄箣鍚庯紝褰撲綘鍦ㄥ璇ョ粍鐨勬垚鍛樿繘琛屼慨鏀規垨鏂板鐨勬椂鍊欙紝涓瀹氳鍦ㄦ搷
浣滀箣鍚庡姞涓奟esonse.Cookies(CookieName).Domain灞炴с傚鏋滄病鏈夊繀瑕侊紝璇蜂笉瑕佷慨鏀瑰凡璁劇疆Domain鐨凜ookie緇?
鍏抽敭瀛楋細
姝f枃錛?br />聽聽聽聽Cookie璺ㄥ煙鎿嶄綔鐪嬫潵鏄釜綆鍗曠殑闂,鍥犱負鍙鎸囧畾Domain灞炴т負鎸囧畾緗戠珯鐨勬牴鍩熷悕灝卞彲浠ヤ簡.浣嗘槸絎旇呭湪瀹為檯浣跨敤榪囩▼涓嵈閬囧埌浜嗕竴浜涢棶棰橈紝鐨勭‘鍊煎緱娉ㄦ剰.聽
Response.Cookies(CookieName)("UserName")聽=聽"SunBird"
Response.Cookies(CookieName)("Password")聽=聽"xyz1234"
Response.Cookies(CookieName).Domain聽=聽"xxxx.com"
%>
Response.Write聽Request.Cookies(CookieName)("UserName")
Response.Write聽Request.Cookies(CookieName)("Password")
%>
Response.Cookies(CookieName)("UserName")聽=聽""
Response.Cookies(CookieName)("Password")聽=聽""
Response.Cookies(CookieName).Domain聽=聽"xxxx.com"
%>
Response.Cookies(CookieName)("TEST_COOKIE")聽=聽"TEST_COOKIE"
%>
聽聽聽 Struts鏄竴縐嶆敮鎸佸浗闄呭寲鐨凪VC鐨刉eb
Framework銆傚彲鏄浣曟潵浣跨敤struts鍥介檯鍖栨槸涓涓棶棰樸備笅闈㈡垜浠潵鎺㈣涓涓嬶紝濡備綍瀹炵幇Struts鐨勫浗闄呭寲銆俉eb紼嬪紡鐨勫浗闄呭寲娑夊強鍒?涓眰闈㈢殑涓滆タ銆傜涓銆乯sp閮ㄥ垎鐨勮緭鍏?杈撳嚭錛涚浜屻佸簲鐢ㄥ鐞嗙▼搴忕殑鍥介檯鍖栵紱絎笁銆丏B鐨勫浗闄呭寲闂銆傝繖閲屼富瑕佹帰璁ㄧ殑鏄痡sp閮ㄥ垎鐨勮緭鍏?杈撳嚭闂銆?/p>
聽聽<servlet-name>action</servlet-name>
聽聽<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>聽聽聽
聽聽<init-param>
聽聽聽聽<param-name>config</param-name>
聽聽聽聽<param-value>/WEB-INF/struts-config.xml</param-value>
聽聽</init-param>
聽聽<init-param>
聽聽聽聽<param-name>application</param-name>
聽聽聽聽<param-value>ApplicationResources</param-value>聽<!--聽榛樿璧勬簮鏂囦歡鍚嵚?/span>-->
聽聽</init-param>
聽聽<load-on-startup>2</load-on-startup>
</servlet>
ApplicationResources.properties
:
榛樿璧勬簮鏂囦歡銆傚綋鍦ㄥ叾浠栬祫婧愭枃浠墮噷闈㈡壘涓嶅埌鏌愪釜璧勬簮鐨勬椂鍊欙紝灝變嬌鐢ㄨ璧勬簮鏂囦歡閲岄潰鐨勫畾涔夈?br />ApplicationResources_zh_CN.properties錛氱畝浣撲腑鏂囪祫婧愭枃浠躲?br />ApplicationResources_zh_TW.properties錛氱箒浣撲腑鏂囪祫婧愭枃浠躲?/font>
璧勬簮鏂囦歡鐨勬牸寮忎負錛氶粯璁よ祫婧愭枃浠跺悕_鍥藉埆_璇█.properties銆傚叾涓瘡涓枃浠墮兘鏄氳繃%JAVA_HONE%/BIN/native2ascii.exe宸ュ叿杞崲鑰屾潵銆備綘涔熷彲浠ヤ嬌鐢ㄥ叾浠栧伐鍏鋒潵澶勭悊寰楀埌(http://java.sun.com/products/jilkit/
鏈変竴涓伐鍏稩nternationalization Java Internationalization and Localization Toolkit
鍙互澶勭悊)銆備笅闈㈡槸涓涓緥瀛?鎴戜滑鏄劇ず濡備綍浣跨敤%JAVA_HONE%/BIN/native2ascii.exe鍛戒護鏉ュ畾涔夎祫婧愭潫鏂囦歡銆?br />2.1
鍑嗗鏂囦歡
//ApplicationResources.properties
錛涢粯璁よ祫婧愭枃浠訛紝閫氬父閲岄潰鐨勫唴瀹規槸鑻辨枃鐨勩?br />label.username=USERNAME :
label.password=PASSWORD
:
label.username=鐢ㄦ埛鍚?
:
label.password=瀵喡?鐮?:
label.password=銉庛倎?W :
native2ascii -encoding big5 Applica
tionResources_zh_TW.bak ApplicationResources_zh_TW.properties
聽 <tr>
聽聽聽 <td align="right"><bean:message
key="label.username" /></td>聽聽聽
聽 </tr>
聽
<tr>
聽聽聽 <td align="right"><bean:message key="label.password"
/></td>
聽 </tr>
</table>
鍙B?浠わ細
鐢ㄦ埛鍚嶏細
3.1
瀹氫箟Filter銆備笅闈㈡槸涓涓緥瀛愩?br />package com.webapps.commons;
import javax.servlet.*;
聽 private
FilterConfig config = null;
聽 private String defaultEncode = "UTF-8";
聽聽聽
this.config = config;
聽聽聽
if(config.getInitParameter("Charset")!=null){
聽聽聽聽聽聽聽
defaultEncode=config.getInitParameter("Charset");
聽聽聽 }
聽 }
聽聽聽 this.config = null;
聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 FilterChain chain) throws IOException,
ServletException {
聽聽聽 ServletRequest srequest=request;
聽聽聽
srequest.setCharacterEncoding(defaultEncode);
聽聽聽
chain.doFilter(srequest,response);
聽 }
}
<filter>
聽 <filter-name>Character
Encoding</filter-name>
聽
<filter-class>com.webapps.commons.CharsetEncodingFilter</filter-class>
</filter>
<filter-mapping>
聽
<filter-name>Character Encoding</filter-name>
聽
<url-pattern>/*</url-pattern>
</filter-mapping>
聽聽聽 return this.replace(/(^\s*)|(\s*$)/g, "");
}
{
聽re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g聽 //鍖歸厤IP鍦板潃鐨勬鍒欒〃杈懼紡
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
聽throw new Error("Not a valid IP address!")
}
}
ip=ip.split(".")
alert("IP鍊兼槸錛?+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
"^\\d+$"銆銆//闈炶礋鏁存暟錛堟鏁存暟 + 0錛?br />"^[0-9]*[1-9][0-9]*$"銆銆//姝f暣鏁?
"^((-\\d+)|(0+))$"銆銆//闈炴鏁存暟錛堣礋鏁存暟 + 0錛?
"^-[0-9]*[1-9][0-9]*$"銆銆//璐熸暣鏁?
"^-?\\d+$"銆銆銆銆//鏁存暟
"^\\d+(\\.\\d+)?$"銆銆//闈炶礋嫻偣鏁幫紙姝f誕鐐規暟 + 0錛?
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"銆銆//姝f誕鐐規暟
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"銆銆//闈炴嫻偣鏁幫紙璐熸誕鐐規暟 + 0錛?
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"銆銆//璐熸誕鐐規暟
"^(-?\\d+)(\\.\\d+)?$"銆銆//嫻偣鏁?
"^[A-Za-z]+$"銆銆//鐢?6涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?
"^[A-Z]+$"銆銆//鐢?6涓嫳鏂囧瓧姣嶇殑澶у啓緇勬垚鐨勫瓧絎︿覆
"^[a-z]+$"銆銆//鐢?6涓嫳鏂囧瓧姣嶇殑灝忓啓緇勬垚鐨勫瓧絎︿覆
"^[A-Za-z0-9]+$"銆銆//鐢辨暟瀛楀拰26涓嫳鏂囧瓧姣嶇粍鎴愮殑瀛楃涓?
"^\\w+$"銆銆//鐢辨暟瀛椼?6涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎緇勬垚鐨勫瓧絎︿覆
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"銆銆銆銆//email鍦板潃
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"銆銆//url
"^[A-Za-z0-9_]*$"
]]>
]]>
]]>
聽聽聽聽聽聽聽聽hasClosed聽=聽true;
聽聽聽聽聽聽聽聽window.opener.location="javascript:reloadPage();";
聽聽聽聽聽聽聽聽window.close();
聽聽聽聽}
聽聽聽聽function聽window.onbeforeunload(){
聽聽聽聽聽聽聽聽if(!hasClosed){
聽聽聽聽聽聽聽聽聽聽聽聽window.opener.location="javascript:reloadPage();";
聽聽聽聽聽聽聽聽}
聽聽聽聽}
</script>
涓婇潰鐨勪唬鐮佸湪鍏抽棴B紿楀彛鐨勬椂鍊欎細鎻愮ず閿欒錛岃緙哄皯Object,姝g‘鐨勪唬鐮佸涓嬶細
聽聽聽聽聽聽聽聽hasClosed聽=聽true;
聽聽聽聽聽聽聽聽window.opener.location="javascript:reloadPage();";
聽聽聽聽聽聽聽聽window.opener=null;
聽聽聽聽聽聽聽聽window.close();
聽聽聽聽}
聽聽聽聽function聽window.onbeforeunload(){
聽聽聽聽聽聽聽聽if(!hasClosed){//濡傛灉宸茬粡鎵ц浜哻loseWin鏂規硶錛屽垯涓嶆墽琛屾湰鏂規硶
聽聽聽聽聽聽聽聽聽聽聽聽window.opener.location="javascript:reloadPage();";
聽聽聽聽聽聽聽聽}
聽聽聽聽}
</script>
reloadPage鏂規硶濡備笅:
聽聽聽聽聽聽聽聽history.go(0);
聽聽聽聽聽聽聽聽document.execCommand("refresh")
聽聽聽聽聽聽聽聽document.location聽=聽document.location;
聽聽聽聽聽聽聽聽document.location.reload();
聽聽聽聽}
PS:鐢變簬闇瑕佹敮鎸佹甯稿叧闂拰寮哄埗鍏抽棴紿楀彛鏃惰兘鎹曟崏鍒頒簨浠訛紝鐢ㄤ簡鍏ㄥ眬鍙橀噺hasClosed
==============================================
琛ュ厖錛屽湪鐖剁獥鍙f槸frame鐨勬椂鍊欏湪鍒鋒柊鐖剁獥鍙g殑鏃跺欎細鍑虹幇闂:.
鍚庝慨鏀瑰涓?
涓嶉渶瑕佹墽琛岃嚜甯︾殑reload()鏂規硶,娉ㄦ剰錛屼笉瑕佸啀鐢昏泧娣昏凍鍔犱笂榪欎竴鍙?window.opener.parent.document.frames.item('mainFrame').location.reload();========================================================================================鏈鍚庯紝涓轟簡鍚屾椂鏀寔鍒鋒柊鏅氱埗紿楀彛鍜宖rame鐖剁獥鍙o紝浠g爜濡備笅:
聽聽聽聽聽聽聽聽hasClosed聽=聽true;
聽聽聽聽<%if(null聽!=聽frame){%>
聽聽聽聽聽聽聽聽window.opener.parent.document.frames.item('mainFrame').location.href聽=聽window.opener.location.href;
聽聽聽聽<%}else{%>
聽聽聽聽聽聽聽聽window.opener.location聽=聽"javascript:reloadPage();";
聽聽聽聽<%}%>
聽聽聽聽聽聽聽聽//window.opener.top.mainFrame.location="javascript:reloadPage();";
聽聽聽聽聽聽聽聽//self.opener.frames.mainFrame.location.reload(true);
聽聽聽聽聽聽聽聽window.opener聽=聽null;
聽聽聽聽聽聽聽聽window.close();
聽聽聽聽}
聽聽聽聽function聽window.onbeforeunload(){
聽聽聽聽聽聽聽聽if聽(!hasClosed)聽{
聽聽聽聽聽聽聽聽<%if(null聽!=聽frame){%>
聽聽聽聽聽聽聽聽聽聽聽聽window.opener.parent.document.frames.item('mainFrame').location.href聽=聽window.opener.location.href;
聽聽聽聽聽聽聽聽<%}else{%>
聽聽聽聽聽聽聽聽聽聽聽聽window.opener.location聽=聽"javascript:reloadPage();";
聽聽聽聽聽聽聽聽<%}%>
聽聽聽聽聽聽聽聽聽聽聽聽window.opener聽=聽null;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
]]>
聽聽聽聽聽聽聽聽function聽getSelect(selectName){
聽聽聽聽聽聽聽聽var聽options聽=聽$(selectName).getElementsByTagName('option');
聽聽聽聽聽聽聽聽options聽=聽$A(options);
聽聽聽聽聽聽聽聽var聽opt聽=聽options.find(聽function(employee){
聽聽聽聽聽聽聽聽聽聽聽聽return聽(employee.value聽==聽$F(selectName));
聽聽聽聽聽聽聽聽});
聽聽聽聽聽聽聽聽alert(opt.innerHTML);
聽聽聽聽聽聽聽聽}
聽聽聽聽</script>
<select聽name="hi"聽onchange="getSelect('hi');">
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<option聽value="01">涓</option>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<option聽value="02">浜?/span></option>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<option聽value="03">涓?/span></option>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<option聽value="04">鍥?/span></option>
</select>
PS: $A : 杞崲鎴愭暟緇勬牸寮?br />聽聽聽 opt.innerHTML:nodeText
]]>
window.opener.show(b)
閮戒笉琛?姝g‘鐨勫仛娉曟槸:
PS: 鐩存帴璋冪敤鐖剁獥鍙g殑瀵硅薄涓庢涓嶅悓錛屽弬鑰冭繖綃? 鐢╦avaScript鎿嶄綔涓や釜欏甸潰
]]>
鍦╦sp涓幏鍙杛adio鐨勫煎緢瀹規槗錛岀洿鎺?request.getParameter("myRadio");
浣嗘槸鍦╦s涓笉琛岋紝鎴戣瘯楠屼簡涓涓嬶紝濡傛灉閫夋嫨絎竴涓病闂錛屼絾鏄綘閫夌浜屼釜絎笁涓殑璇濆氨鍑虹幇undefined.鍔炴硶濡備笅:
{
聽聽聽聽var聽selectedIndex聽=聽-1;
聽聽聽聽var聽form1聽=聽document.getElementById("form1");
聽聽聽聽var聽i聽=聽0;
聽聽聽聽
聽聽聽聽for聽(i=0;聽i<form1.r.length;聽i++)
聽聽聽聽{
聽聽聽聽聽聽聽聽if聽(form1.r[i].checked)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽selectedIndex聽=聽i;
聽聽聽聽聽聽聽聽聽聽聽聽alert("鎮ㄩ夋嫨欏圭殑聽value聽鏄細"聽+聽form1.r[i].value);
聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽}
聽聽聽聽}
聽聽聽聽
聽聽聽聽if聽(selectedIndex聽<聽0)
聽聽聽聽{
聽聽聽聽聽聽聽聽alert("鎮ㄦ病鏈夐夋嫨浠諱綍欏?/span>");
聽聽聽聽}
}
]]>
<%=rem[7]==null?"":rem[7]%>
</textarea>
鐚滅寽榪欎釜textarea浼氭湁浠涔堥棶棰?
鏁堟灉濡備笅:
鏄笉鏄緢濂囨紝鍝潵鐨勭┖鏍煎晩錛岃繕浠ヤ負浠庢暟鎹簱涓彇鍑虹殑鏁版嵁鏈夌┖鏍鹼紝媯鏌ヤ篃涓嶆槸錛屽悗鏉ユ墠鐭ラ亾錛屽師鏉ユ槸textarea鎹㈣鎯瑰緱紲?涓嶆崲琛屽氨OK浜?br />
]]>
鏈夋椂鍦ㄧ敤鎴穝ession綆$悊鏃訛紝闇瑕佽窡韙細璇濈姸鎬侊紝姣斿褰撳墠鍦ㄧ嚎鐢ㄦ埛錛屽鏋滅敤鎴烽潪姝e父閫鍑猴紝闇瑕佺煡閬撱?br />
鐢╦s鎺у埗嫻忚鍣ㄧ殑鍏抽棴鏄竴涓緟鍔╃殑鎵嬫錛屽綋鐒朵篃鍙互璁劇疆session鐨勬湁鏁堟湡錛屼笉榪囦笉澶熷強鏃躲?br />
js浠g爜濡備笅:
<script聽language="javascript">聽
<!--聽
var聽s="close";聽
function聽window.onunload(){聽
聽聽聽聽if(s=="fresh")聽
聽聽聽聽聽聽聽聽if(window.screenLeft>10000){alert('鹿脴鹵脮');}
聽聽聽聽聽聽聽聽else{alert('脣壟脨脗');}聽
聽聽聽聽else聽alert('鹿脴鹵脮');聽
}聽
function聽window.onbeforeunload()
{聽
聽聽聽聽s="fresh";聽
}聽
-->聽
</script>
</html>
]]>
寰堝鏃跺欑敤session瑙夊緱鎸烘柟渚跨殑錛屼粖澶╃獊鐒跺彂鐜拌嚜宸辯珶鐒跺嚑涔庢病鐢ㄨ繃cookie錛屽懙鍛碉紝鏈夌偣鎰忔濄傛濂界鍒頒竴涓櫥闄嗛〉闈紝闇瑕佺敤鎴烽夋嫨绔欑偣綾誨瀷錛岃寰楁瘡嬈¢兘璁╃敤鎴烽夋嫨鏈夌偣涓嶅悎鐞嗭紝姣曠珶涓涓敤鎴峰父鐢ㄧ殑灝變竴涓紝鎵浠ュ喅瀹氱敤cookie璁板綍涓嬭繖涓珯鐐癸紝涓嬫鐧婚檰鐨勬椂鍊欏彲浠ョ洿鎺ユ樉紺?
鏁堟灉濡備笅:
聽聽聽聽聽*聽浠巆ookie閲岃鍙栨寚瀹歂ame聽瀵瑰簲鐨勫?br />聽聽聽聽聽*聽濡傛灉娌℃湁榪斿洖絀郝爊ull
聽聽聽聽聽*聽@param聽cookieName
聽聽聽聽聽*聽@param聽request
聽聽聽聽 * @param decode :緙栫爜
聽聽聽聽聽*聽@return聽聽String
聽聽聽聽聽*/
聽聽聽聽public聽static聽String聽getCookieValue(String聽cookieName,聽HttpServletRequest聽request,String聽decode)聽{
聽聽聽聽聽聽聽聽if(null聽==聽cookieName聽||聽cookieName.trim().length()聽==0)聽return聽"";
聽聽聽聽聽聽聽聽Cookie聽cookies[]聽=聽request.getCookies();
聽聽聽聽聽聽聽聽Cookie聽sCookie聽=聽null;
聽聽聽聽聽聽聽聽String聽sname聽=聽null;
聽聽聽聽聽聽聽聽String聽svalue聽=聽null;
聽聽聽聽聽聽聽聽if聽(null聽!=聽cookies聽&&聽cookies.length聽>聽0)聽{
聽聽聽聽聽聽聽聽聽聽聽聽for聽(int聽i聽=聽0;聽i聽<聽cookies.length;聽i++)聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sCookie聽=聽cookies[i];
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽sname聽=聽sCookie.getName();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(cookieName.equals(sname))聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽try聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽svalue聽=聽java.net.URLDecoder.decode(sCookie.getValue(),decode);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}聽catch聽(UnsupportedEncodingException聽e)聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace();聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽break;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽return聽svalue聽;
聽聽聽聽}
聽聽聽聽/**
聽聽聽聽聽*聽璁劇疆cookie
聽聽聽聽聽*聽@param聽cookieName
聽聽聽聽聽*聽@param聽cookieValue
聽聽聽聽聽*聽@param聽maxAge
聽聽聽聽聽*聽@param聽response
聽聽聽聽 * @paramencode :緙栫爜
聽聽聽聽聽*/
聽聽聽聽public聽static聽void聽setCookieValue(String聽cookieName,String聽cookieValue,
int聽maxAge,HttpServletResponse聽response,String聽encode)聽{
聽聽聽聽聽聽聽聽if(null聽==聽cookieName聽||聽cookieName.trim().length()聽==0)聽return聽;
聽聽聽聽聽聽聽聽Cookie聽cookie聽=聽null;
聽聽聽聽聽聽聽聽try聽{
聽聽聽聽聽聽聽聽聽聽聽聽cookie聽=聽new聽Cookie(cookieName,聽java.net.URLEncoder.encode(cookieValue,encode));
聽聽聽聽聽聽聽聽}聽catch聽(UnsupportedEncodingException聽e)聽{
聽聽聽聽聽聽聽聽聽聽聽聽e.printStackTrace();
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽cookie.setMaxAge(maxAge);
聽聽聽聽聽聽聽聽response.addCookie(cookie);
聽聽聽聽}
]]>
Prototype.js--Javascript緙栧啓鑰呯殑灝忓啗鍒
]]>
鏈榪戠敤鍒頒笉灝慶ss鐨勪笢瑗匡紝鍙戠幇鐢╟ss鏄彲浠ョ渷涓嶅皯楹葷儲錛岀壒鍒洿鏀規晥鏋溿?br />
google浜嗕竴綃囥鍒╃敤CSS鎺у埗琛ㄦ牸鐨勪氦鏇塊鑹?/span>
涓嬮潰鏄疄鐜扮殑浠g爜:
<!--
tr聽{background-color:expression((this.sectionRowIndex==0)?"":
(this.sectionRowIndex%2==0)?"red":"blue")}
-->
</style>
</HEAD>
<table>
<tr>
<td>絎?琛?/span></td><td>絎?琛?/span></td>
</tr>
<tr>
<td>絎?琛?/span></td><td>絎?琛?/span></td>
</tr>
<tr>
<td>絎?琛?/span></td><td>絎?琛?/span></td>
</tr>
<tr>
<td>絎?琛?/span></td><td>絎?琛?/span></td>
</tr>
<tr>
<td>絎?琛?/span></td><td>絎?琛?/span></td>
</tr>
</table>
鍏抽敭灝辨槸榪欎竴鍙?
(this.sectionRowIndex%2==0)?"red":"blue")}
瀵逛簬td鐨勬帶鍒跺涓?
<!--
tr聽{background-color:expression((this.sectionRowIndex%2==0)?"red":"blue")}
td聽{background-color:expression((this.cellIndex%2==0)?"":((this.parentElement.sectionRowIndex%2==0)?"green":"yellow"))}
-->
</style>
</HEAD>
<table>
<tr><td>絎?琛?/span></td><td>絎?琛?/span></td><td>絎?琛?/span><聽/td><td>絎?琛?/span></td><td>絎?琛?/span></td></tr>
<tr><td>絎?琛?/span></td><td>絎?琛?/span></td><td>絎?琛?/span><聽/td><td>絎?琛?/span></td><td>絎?琛?/span></td></tr>
<tr><td>絎?琛?/span></td><td>絎?琛?/span></td><td>絎?琛?/span><聽/td><td>絎?琛?/span></td><td>絎?琛?/span></td></tr>
<tr><td>絎?琛?/span></td><td>絎?琛?/span></td><td>絎?琛?/span><聽/td><td>絎?琛?/span></td><td>絎?琛?/span></td></tr>
<tr><td>絎?琛?/span></td><td>絎?琛?/span></td><td>絎?琛?/span><聽/td><td>絎?琛?/span></td><td>絎?琛?/span></td></tr>
</table>
鍗?span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">cellIndex銆
鍙?鍜屾暟緇勪竴鏍鳳紝絎竴琛屼粠0寮濮?br />
浣嗘効瀵逛綘鏈夌敤.聽 :)
]]>
鏂囦歡涓婁紶鍙傜湅: 榪欓噷
紕板埌鏂囦歡涔辯爜錛実oogle浜嗕竴涓嬶紝鍙戠幇榪欑瘒鏂囩珷榪樹笉璧?br />
鎽樺綍濡備笅:
涔嬪墠,鍐欒繃涓涓狣ownload.jsp鏂囦歡,鍙互瑙e喅涓嬭澆鏂囦歡涔辯爜闂(璇稿:DOC,XSL鏂囦歡絳夌瓑).
鍚庢潵鍙戠幇,閬囧埌涓枃鍚嶇殑鏂囦歡鐨勬椂鍊?鏂囦歡涓嬭澆灝嗕細鎶ラ敊~~~~
浠婂ぉ,閫氳繃鏀瑰啓鍘烡ownload.jsp鏂囦歡宸茬粡褰誨簳瑙e喅浜嗚繖涓棶棰榽
鐜板湪,鎶婁竴鏁村鐨勬枃浠朵笂浼犱笅杞界殑鏂規硶緇欒創鍑烘潵~~~浠ヤ究澶у鍊熼壌!~!~!~!~!聽
浣滆?鍙ゅ焹鍙婃硶鑰?br />
download.jsp鏂囦歡
---------------------------------------------------------
聽聽java.io.BufferedInputStream聽bis=null;
聽聽java.io.BufferedOutputStream聽聽bos=null;
try{
聽String聽filename=request.getParameter("filename");
聽聽聽聽聽聽聽聽聽聽聽聽聽filename=new聽String(filename.getBytes("iso8859-1"),"gb2312");
聽response.setContentType("application/x-msdownload");
聽response.setHeader("Content-disposition","attachment;聽filename="+new聽String(filename.getBytes("gb2312"),"iso8859-1"));
聽bis聽=new聽java.io.BufferedInputStream(new聽java.io.FileInputStream(config.getServletContext().getRealPath("files/"聽+聽filename)));
聽bos=new聽java.io.BufferedOutputStream(response.getOutputStream());聽
聽byte[]聽buff聽=聽new聽byte[2048];
聽int聽bytesRead;
聽while(-1聽!=聽(bytesRead聽=聽bis.read(buff,聽0,聽buff.length)))聽{
聽聽bos.write(buff,0,bytesRead);
聽}
}
catch(Exception聽e){
聽e.printStackTrace();
}
finally聽{
聽if聽(bis聽!=聽null)bis.close();
聽if聽(bos聽!=聽null)bos.close();
}
%>聽
娉ㄦ剰錛屽叧閿氨鏄?span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">setHeader閲岀殑filename闇瑕侀噸鏂扮紪鐮?鏍煎紡鏄疘SO-8859-1灝憋集錛簡
浠ヤ笅鏄垜鑷繁欏圭洰涓敤鍒扮殑浠g爜鐗囨柇錛屼緵鍙傝?
list.jsp: 鏄劇ず闄勪歡鍚嶇О鐨勯〉闈?br />
聽聽聽聽聽聽聽聽聽聽聽聽<td聽height="25"聽class="tdcor">闄?/span> 浠?/span> </td>
聽聽聽聽聽聽聽聽聽聽聽聽<td聽colspan="3"聽height=50>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽if聽(null聽!=聽publish.getAttatchFilename()聽&&
publish.getAttatchFilename().length()聽>聽0)聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽%>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<a聽href="publish_do.jsp?method=download&fileName=
<%=URLEncoder.encode(publish.getAttatchFilename(),"GBK")%>">
<%=URLDecoder.decode(publish.getAttatchFilename(),"GBK")%></a>
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽<%
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽%>
聽聽聽聽聽聽聽聽聽聽聽聽</td>
</tr>
download.jsp:涓嬭澆欏甸潰
聽聽聽聽聽聽聽聽String聽fileName聽=聽request.getParameter("fileName");
聽聽聽聽聽聽聽聽File聽file聽=聽new聽File(Constants.PUBLISH_FILE_PATH聽+聽"/"聽+聽URLDecoder.decode(fileName,"GBK"));
聽聽聽聽聽聽聽聽response.reset();
聽聽聽聽聽聽聽聽response.setContentType("application/octet-stream;聽charset=GBK");
聽聽聽聽聽聽聽聽response.addHeader("Content-Disposition",聽"attachment;聽filename="聽+聽CourseDetailBusiness.transfer(URLDecoder.decode(fileName,"GBK"),"GBK","ISO-8859-1"));
聽聽聽聽聽聽聽聽response.setContentLength((int)聽file.length());
聽聽聽聽聽聽聽聽byte[]聽buffer聽=聽new聽byte[4096];
聽聽聽聽聽聽聽聽BufferedOutputStream聽output聽=聽null;
聽聽聽聽聽聽聽聽BufferedInputStream聽input聽=聽null;
聽聽聽聽聽聽聽聽//聽鍐欑紦鍐插尯錛?/span>
聽聽聽聽聽聽聽聽try聽{
聽聽聽聽聽聽聽聽聽聽聽聽output聽=聽new聽BufferedOutputStream(response.getOutputStream());
聽聽聽聽聽聽聽聽聽聽聽聽input聽=聽new聽BufferedInputStream(new聽FileInputStream(file));
聽聽聽聽聽聽聽聽聽聽聽聽int聽n聽=聽(-1);
聽聽聽聽聽聽聽聽聽聽聽聽while聽((n聽=聽input.read(buffer,聽0,聽4096))聽>聽-1)聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽output.write(buffer,聽0,聽n);
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽response.flushBuffer();
聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽catch聽(Exception聽e)聽{
聽聽聽聽聽聽聽聽}聽//聽maybe聽user聽cancelled聽download
聽聽聽聽聽聽聽聽finally聽{
聽聽聽聽聽聽聽聽聽聽聽聽if聽(input聽!=聽null)聽input.close();
聽聽聽聽聽聽聽聽聽聽聽聽if聽(output聽!=聽null)聽output.close();
聽聽聽聽聽聽聽聽}
璇存槑:
錛戙傛枃浠跺悕鍦ㄦ暟鎹簱涓繚瀛樼殑緙栫爜涓篣RLEncode
2.鍦╨ist.jsp鏄劇ず鐨勬椂鍊欏浜嗕竴嬈ncode,涓嶇煡涓轟粈涔堬紝涓峞ncode涓嬈¤繕涓嶈錛屽疄闄呬笂鏄浜屾緙栫爜浜?br />
]]>
]]>
鍦ㄤ簡瑙HTML浠g爜瑙勮寖鍚庯紝鎴戜滑灝辮榪涜CSS甯冨眬銆傞鍏堝厛浠嬬粛涓浜汣SS鐨勫叆闂ㄧ煡璇嗐傚鏋滀綘宸茬粡寰堢啛鎮変簡錛屽彲浠ヨ煩榪囪繖涓鑺傦紝鐩存帴榪涘叆涓嬩竴鑺傘?/p>
CSS鏄疌ascading Style Sheets(灞傚彔鏍峰紡琛?鐨勭緝鍐欍傛槸涓縐嶅web鏂囨。娣誨姞鏍峰紡鐨勭畝鍗曟満鍒訛紝灞炰簬琛ㄧ幇灞傜殑甯冨眬璇█銆?/p>
鍒嗘瀽涓涓吀鍨婥SS鐨勮鍙ワ細
棰滆壊鍊煎彲浠ョ敤RGB鍊煎啓錛屼緥濡傦細color : rgb(255,0,0)錛屼篃鍙互鐢ㄥ崄鍏繘鍒跺啓錛屽氨璞′笂闈緥瀛?span class="code">color:#FF0000銆傚鏋滃崄鍏繘鍒跺兼槸鎴愬閲嶅鐨勫彲浠ョ畝鍐欙紝鏁堟灉涓鏍楓備緥濡?#FF0000鍙互鍐欐垚#F00銆備絾濡傛灉涓嶉噸澶嶅氨涓嶅彲浠ョ畝鍐欙紝渚嬪#FC1A1B蹇呴』鍐欐弧鍏綅銆?/p>
web鏍囧噯鎺ㄨ崘濡備笅瀛椾綋瀹氫箟鏂規硶錛?/p>
褰撳嚑涓厓绱犳牱寮忓睘鎬т竴鏍鋒椂錛屽彲浠ュ叡鍚岃皟鐢ㄤ竴涓0鏄庯紝鍏冪礌涔嬮棿鐢ㄩ楀彿鍒嗛殧錛岋細
鍙互浣跨敤媧劇敓閫夋嫨鍣ㄧ粰涓涓厓绱犻噷鐨勫瓙鍏冪礌瀹氫箟鏍峰紡錛屼緥濡傝繖鏍鳳細
灝辨槸緇檒i涓嬮潰鐨勫瓙鍏冪礌strong瀹氫箟涓涓枩浣撲笉鍔犵矖鐨勬牱寮忋?/p>
鐢–SS甯冨眬涓昏鐢ㄥ眰"div"鏉ュ疄鐜幫紝鑰宒iv鐨勬牱寮忛氳繃"id閫夋嫨鍣?鏉ュ畾涔夈備緥濡傛垜浠鍏堝畾涔変竴涓眰
<div id="menubar"></div>鐒跺悗鍦ㄦ牱寮忚〃閲岃繖鏍峰畾涔夛細
鍏朵腑"menubar"鏄綘鑷繁瀹氫箟鐨刬d鍚嶇О銆傛敞鎰忓湪鍓嶉潰鍔?#"鍙楓?/p>
id閫夋嫨鍣ㄤ篃鍚屾牱鏀寔媧劇敓錛屼緥濡傦細
榪欎釜鏂規硶涓昏鐢ㄦ潵瀹氫箟灞傚拰閭d簺姣旇緝澶嶆潅錛屾湁澶氫釜媧劇敓鐨勫厓绱犮?/p>
鍦–SS閲岀敤涓涓偣寮澶磋〃紺虹被鍒夋嫨鍣ㄥ畾涔夛紝渚嬪錛?/p>
鍦ㄩ〉闈腑錛岀敤class="綾誨埆鍚?鐨勬柟娉曡皟鐢細
<span class="14px">14px澶у皬鐨勫瓧浣?lt;/span>榪欎釜鏂規硶姣旇緝綆鍗曠伒媧伙紝鍙互闅忔椂鏍規嵁欏甸潰闇瑕佹柊寤哄拰鍒犻櫎銆?/p>
CSS涓敤鍥涗釜浼被鏉ュ畾涔夐摼鎺ョ殑鏍峰紡錛屽垎鍒槸錛歛:link銆乤:visited銆乤:hover鍜宎 : active錛屼緥濡傦細
浠ヤ笂璇彞鍒嗗埆瀹氫箟浜?閾炬帴銆佸凡璁塊棶榪囩殑閾炬帴銆侀紶鏍囧仠鍦ㄤ笂鏂規椂銆佺偣涓嬮紶鏍囨椂"鐨勬牱寮忋傛敞鎰忥紝蹇呴』鎸変互涓婇『搴忓啓錛屽惁鍒欐樉紺哄彲鑳藉拰浣犻鎯崇殑涓嶄竴鏍楓傝浣忓畠浠殑欏哄簭鏄淟VHA鈥濄?/p>
鍛靛懙錛岀湅浜嗚繖涔堝錛屾湁鐐瑰ご鏅曞惂錛屽疄闄呬笂CSS鐨勮娉曡鑼冭繕鏈夊緢澶氾紝榪欓噷鍒楃殑鍙槸涓浜涘父鐢ㄧ殑錛屾瘯绔熸垜浠槸寰簭娓愯繘錛屼笉鍙兘涓鍙e悆鎴愯儢瀛?)