私はhttpサーバーをコーディングする小さなプロジェクトをやっています。コードはhttpサーバーの黙示、ページが正しく表示されません
http://code.google.com/p/reactor/
で、現在のパズルは、JavaスクリプトやCSSでページを解析するように頼まれたときです。 httpサーバとして、それはちょうど(別のウェブサイトからコピーされた)ページを送信し、それは正しく解析されません。 (getCookie(場合
ראשיחדשות :簡単なHTMLページは私のFirefoxで、解析されているとき、それは、より複雑なページ(CSS + JavaScriptの)を解析するときただし、ページがすべてのように配線され、[OK]を示します'pais999'); varTopLayerCookieExpiredDays = 1; varToplayerLink = 'http://xads.zedo.com);} /ads2/c?a=239671;g=0;c=455000000;i=0;x=7168;n=455;s=0;k=http://www.pais.co.il/Pais/Games /Lotto/';varToplayerImpression='http://l4.zedo.com/log/p.gif?a=239671;c=455000000;x=7168;n=455;e=i;i=0;s= 0; z = '+ Math.random(); varToplayerBigPath =' pais/January2007/98one_toplayer.swf '; varToplayerSmallPath =' pais/January2007/98one_reminder.swf '; varToplayerBigWidth = 1005; varToplayerBigHeight = 500; varToplayerSmallWid第= 100; varToplayerSmallHeight = 100; varToplayerBigLeft =(0 == 0)resWidth/2-ToplayerBigWidth/2:resWidth/2-ToplayerBigWidth/2 + 0varToplayerBigTop = 0; varToplayerSmallLeft = resWidth-ToplayerSmallWidth-0; varToplayerSmallTop = 0; varSecondsToChangeBigToSmall = true; true:falsevarToplayerCookieName = 'NF999'; varTopLayerCookieExpiredDays = 1; varToplayerLink = 'http == 15;} elseif(getCookie(' NF999 ')== null){varisToplayerDouble = "True"; isToplayerDouble = ://xads.zedo.com/ads2/c?a = 238663; g = 0; c = 455000000; i = 0; x = 7168; n = 455; s = 0; k = http://www.new -pharm.co.il/SkiGame/?ToolID=OLJD8O';varToplayerImpression='http://l4.zedo.com/log/p.gif?a=238663;c=455000000;x=7168;n=455; varToplayerBigPath = 'NewFarm/Ski/995ONE_TopLayer_550x360.swf'; varToplayerSmallPath = 'NewFarm/Ski/995ONE_Reminder_100x100.swf'; varToplayerBigWidth = 550; varToplayerBigLeft = 100(0 == 0)?resWidth/2-ToplayerBigWidth/2:resWidth/2-ToplayerBigWidth/2 + 0varTo ( "divToplayerBig")。style.width = ToplayerBigWidth; $( "divToplayerBig")。これは、divToplayerBigTop = 0、varToplayerSmallLeft = resWidth-ToplayerSmallWidth-0、varToplayerSmallTop = 0、varSecondsToChangeBigToSmall = 15;} elseif(1 == 0){} $( "divToplayerBig" style.height = ToplayerBigHeight; $( "divToplayerBig")。style.left = resWidth/2-ToplayerBigWidth/2; $( "divToplayerSmall")。style.width = ToplayerSmallWidth; $( "divToplayerSmall")。style.height = ToplayerSmallHeight $ {"divToplayerSmall"} style.right = ToplayerSmallWidthvartopOff = 0; if(ToplayerBigTop> 0)ifOff = resHeight-ToplayerBigHeight + ToplayerBigTop; varisMain = false; #divToplayerBig {position:absolute; right:20px; bottom:1px;} #divToplayerBig {位置:固定;}#divToplayerSmall {位置:絶対;右:20px;下:10px;} body#divToplayerSmall {position:fixed;}ライブ|ロイターオンラインショッピング| ONETV | ONETV |גליצ 'ים| BigONE |טוטווייר|クレイジーワン|
ONE:פאר:לאהייתימוכנהלראותאותהמחייכת ראשי חדשות IF(getCookie( 'pais999')== NULL){varisToplayerDouble = "TRUE" HTMLのソースコードである
; isToplayerDouble =(isToplayerDouble == "True")?true:falsevarToplayerCookieName = 'pais999'; varTopLayerCookieExpiredDays = 1; varToplayerLink = 'http://xads.zedo.com/ads2/c?a = 239671; g = 0; c = 455000000; i = 0; x = 7168; n = 455; s = 0; k = http://www.pais.co.il/Pais/Games/Lotto/ '; varToplayerImpression =' http:// l4。 zedo.com/log/p.gif?a=239671;c=455000000;x=7168;n=455;e=i;i=0;s=0 ; varToplayerBigWidth = 100; varToplayerSmallWidth = 100; varToplayerSmallHeight = 100; varToplayerBigWidth = 100; varToplayerBigHeight = 500; varToplayerSmallWidth = 100; varToplayerSmallPath = 'pais/January2007/98one_reminder.swf'; ; varToplayerBigLeft =(0 == 0)?2つのToplayerBigWidth/2 + ToplayerBigWidth/2 + 0varToplayerBigTop = 0; varToplayerSmallLeft = resWidth-ToplayerSmallWidth-0; varTecayerSmallTop = 0; varSecondsToChangeBigToSmall = 15;} elseif(getCookie( 'NF999')== null){ vTopayerDouble = "True"; isToplayerDouble =(isToplayerDouble == "True")?true:falsevarToplayerCookieName = 'NF999'; varTopLayerCookieExpiredDays = 1; varToplayerLink = 'http://xads.zedo.com/ads2/c?a = 238663; k = http://www.new-pharm.co.il/SkiGame/?ToolID = OLJD8O '; varToplayerImpression = "0"; g = 0; c = 455000000; i = 0; x = 7168; n = 455; s = 'http://l4.zedo.com/log/p.gif?a=238663;c=455000000;x=7168;n=455;e=i;i=0;s=0;z='+Math .random(); varToplayerBigPath = 'NewFarm /スキー/ 995ONE_TopLayer_550x360.swf'; varToplayerSmallPath = 'NewFarm /スキー/ 995ONE_Reminder_100x100.swf'; varToplayerBigWidth = 550; varToplayerBigHeight = 360; varToplayerSmallWidth = 100; varToplayerSmallHeight = 100; varToplayerBigLeft =(0 = = 0)?resWidth/2-ToplayerBigWidth/2:resWidth/2-ToplayerBigWidth/2 + 0varToplayerBigTop = 0; varToplayerSmallLeft = resWidth-ToplayerSmallWi style.width = ToplayerBigWidth; $( "divToplayerBig")。style.height = ToplayerBigHeight; $( "divToplayerBig")$スタイルシートの幅を指定します。 style.left = resWidth/2-ToplayerBigWidth/2; $( "divToplayerSmall")。style.width = ToplayerSmallWidth; $( "divToplayerSmall")。style.height = ToplayerSmallHeight; $( "divToplayerSmall")。 (position:absolute; right:20px; bottom:1px;} body> div#divToplayerBig {position:toplayerBigTop> 0; if(ToplayerBigTop> 0)ifOp = ToHeight-ToplayerBigHeight + ToplayerBigTop; varisMain = false; #divToplayerBig {これは、ドキュメント内のすべての要素が自動的に更新されるようにするために使用されます。 .documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft))+ 'px');トップ:式((0-divToplayerBig.offsetHeight-topOff +(document.documentElement.clientHeight?document。 #divToplayerSmall {position:absolute; right:20px(documentElement.clientHeight:document.body.clientHeight)+(ignoreMe = document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop))+ ; bottom:10px;} body#divToplayerSmall {position:fixed;} div#divToplayerSmall {右:自動;下:自動;左:式( - 20-divToplayerSmall.offsetWidth +(document.documentElement.clientWidth?document.documentElement (0-divToplayerSmall.offsetHeight +(document.body.scrollLeft:document.body.scrollLeft); + document.body.clientWidth)+(ignoreMe2 = document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft))+ 'px'); )+ 'px');} varisTopTrans =((ドキュメントの内容を保持していますか? ToplayerBigPath.indexOf( "transparent")> - 1)?false:true; varisRemTrans =(ToplayerSmallPath.indexOf( "transparent")> -1)?false:true; vartop1ses sion = 3; vartop2session = 5; InitToplayer(isTopTrans、isRemTrans); window.onload = StartToplayer;ライブ|ライブラリー| ONEבסלולרי| ONETV |גליצ'ים| BigONE |טוטווינר| CrazyONE | תיראומהאסוליןעשהלמכביחיפה
19/01/07 18時43分
ליגתהעלבכדורסל:המשחקיםחוזריםליוםראשון
19/01/07 17時41分
19:30
אליכהןלשחקניולקראתבני-יהודה
כותרותאחרונותצפובמייקללואיסמנצחבתחרותההטבעותבגמרהתיכונים
19/01/07ユーザー名:
19/01/07 16:49
ארצית:הפועלר"גניצחהאתהשקמה/רמתחן1:2、גםראשל"צניצחה
19/01/07 16:45
יובנטוסמעוניינתבכריסטוףמצלדר、שדורש2。5 Miliondolrlaonh
01/19/07 午後04時37分
Ligthal:ビット "riroslimttarhmhrb -19:30 Atzlmcbihrtzlih
01/19/07 午後02時32
Mcbif" ttarhmhrb -18:30 Athfoalcf "sbaorooh、Llag'obnini
1/19/07 午後2時45分
Hgrlhklhlhfoaliroslimbsminithiol「B:とNtsfilshltbit
01/19/07 14:37
Lighlaomit:Hfoaliroslimoahintzrtnf Rdobtiko 0:0
19/01/07 13時46
varswfPeleSmall = newSWFObject( "http://images.one.co.il/images/PeleEmulator/emulator_pelephone_01a.swf"、 "peleSmall"、160470、 "6"、 "#1 FFFFFF"); swfPeleSmall.addParam( "品質"、 "高い"); swfPeleSmall.addParam( "WMODE"、 "透明"); swfPeleSmall.write( "divPeleSmall"); varswfPeleBig = newSWFObject( " Http://images.one.co.il/images/PeleEmulator/emulator_pelephone_02d.swf","peleBig",400,470,"6","#FFFFFF");swfPeleBig.addParam("quality","high「); swfPeleBig.addParam( "WMODE"、 "透明"); swfPeleBig.write( "divWithBig")。
栄光:Lahiitimocnhlraotaothmhiict
Shrfarsifrhl- ONE Mhabrbmohhbrgaimsbhmcmathfsidhlttianhgolobin.hisralit、Snitzhhlbsof 1:2、Idahlmilhodot: "Hkhlhihnfla"
DisplayFlash( "W_S_round_border_pic.swf"、 "156"、 "201"、 "1"、「スタイル=位置:絶対「); Shrfarhozrtmhkbrmoliribth(ロイター)
Matsialon 19/01/20077:6 Atahdhhisgimhgdolimslhcsgbrh 26
Shrfarrsmhhbokr(金):3,5:7,5:7 Alttianhgolobinhtzrftiihは、世界で23位。
ゲーム、Shihamorlhiarclfnotbokrbaostrlih、Ndhhakbhgsmofarshfsidhbglltnaimzghaooirbabr、Hslimhkambkscoloaofi。
Ahrishfsidhathmarchhrasonh、Hihnrahsfarbdrchbtohhhhotzh.lftafarhtaorrhohtzlihhlhsootl -1:1 Athmarcot.bsahhahronhhianitzlhfamiimmmatz'fointcsnabkhnoasotmolhtzrftiih.bsofzhhstlmlh。
Farhbtihhathhaflhlslbsminithgmr(16位)、Smtfgosbsbtblilhatsbtlnhkozntzobhhmdorgt 3大会、Sgbrhhbokralmrihkrilnko。
Faramrhl-
(FirefoxやページのソースHTMLでページのプレゼンテーションの一部だけ)
なぜそれが起こっているのでしょうか? HTTPレスポンスにmiddingは何ですか?
StringBuffer tResponse = new StringBuffer();
tResponse.append("HTTP/1.1 200 OK\n");
tResponse.append("Date: "+new Date().toString() +'\n');
tResponse.append("server: http-reactor/0.1-dev\n");
tResponse.append("last-Modified:"+ d.toString() +'\n');
tResponse.append("Content-Type: text/html; charset=windows-1255\n");
tResponse.append("Accept-Language: he; q=1.0, en; q=0.5:);
tResponse.append("Content-Length: "+tFileContent.length()+'\n');
tResponse.append('\n');
tResponse.append(tFileContent);
public StringBuffer FetchData(String FileName) throws FileNotFoundException{
StringBuffer tFileContent = new StringBuffer();
if (FileName.contains("../"))
throw new SecurityException();
if (FileName.equals("/"))
FileName = "\\index.html";
FileName.replace('/', '\\');
File f = new File(_root + FileName);
Scanner scanner = new Scanner(f);
while(scanner.hasNext())
tFileContent.append(scanner.next());
return generateResponse(tFileContent,f.lastModified());
}
private StringBuffer generateResponse(StringBuffer tFileContent, long l) {
StringBuffer tResponse = new StringBuffer();
Date d = new Date(l);
tResponse.append("HTTP/1.1 200 OK\n");
tResponse.append("Date: "+new Date().toString() +'\n');
tResponse.append("server: http-reactor/0.1-dev\n");
tResponse.append("last-Modified:"+ d.toString() +'\n');
tResponse.append("Content-Type: text/html; charset=windows-1255\n");
tResponse.append("Accept-Language: he; q=1.0, en; q=0.5:);
tResponse.append("Content-Length: "+tFileContent.length()+'\n');
tResponse.append('\n');
tResponse.append(tFileContent);
return tResponse;
}
"コード"の書式設定の代わりに "引用符"の書式設定を使用しているようですが、これはあなたの例にはあまり適していませんが、例はあまりにも大きすぎます。発生している問題を示す最小限のケースを見つけてください。これは、あなたのHTMLにJSとCSSを混在させることによって引き起こされたと考えていると言います。そのため、それぞれ短い行のHTMLページを作ってください。また、あなたの問題は 'tFileContent'がどのように設定されているかに関係している可能性がありますが、あなたはそれを設定するコードやそのタイプを表示していません。 –
代替ストリームハンドラのソースコントロール – none