- - PR -
改行コードとインデントがないHTML出力はどのようにして実現しているのでしょうか?
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-10 14:25
お世話になっております。
前々から気になっていた事があるのですが、ご教授していただけないでしょうか。 GoogleのHTMLソースを表示してみると、大部分がインデントと改行なしで書かれています。また、YahooでもHTMLソースにインデントがありません。 これは、HTMLを出力するプログラムでインデントや改行等を削除しているのでしょうか? それとも、プログラムのソースの時点でインデントや改行等を削除しているのでしょうか? プログラムでインデントや改行等を削除しているとすると、JAVAの場合、フィルタを使って実現できるのでしょうか? 以上、ご教授していただけると、ありがたいです。 | ||||||||
|
投稿日時: 2005-02-10 14:33
そんなことはGoogleさんやYahooさんに聞かないとわからないですよ。
できるかできないかと言ったらもちろん出来ます。 | ||||||||
|
投稿日時: 2005-02-10 14:35
今日は。
JAVAなプログラマでは無いですが、書いている内容について今ひとつ解らないので。
→(色々とありますが)出力するプログラムが削除
→「htmlファイルの段階で」と言っているのでしょうかそれとも「プログラムのソースコードに削除する命令が書いてある」と言う意味でしょうか? | ||||||||
|
投稿日時: 2005-02-10 14:57
mogeさん、NAOさん、回答ありがとうございます。
> そんなことはGoogleさんやYahooさんに聞かないとわからないですよ。 確かに。ただ、他のサイトでもHTMLソースにインデントを使用してない所があったので、何か一般的なやり方があるのかと思いました。 つまり、それぞれで独自のやり方をしているから一概には言えないということですね? > できるかできないかと言ったらもちろん出来ます。 そうですか、できそうな気はしていたのですが。 レスポンスをラップする感じになるのかと考えていました。 ちょっと、考えてみます。 > →(色々とありますが)出力するプログラムが削除 なるほど、プログラムで削除ですか。 > →「htmlファイルの段階で」と言っているのでしょうかそれとも「プログラムのソースコードに削除する命令が書いてある」と言う意味でしょうか? 私の場合、JSPで考えていたので、開発中は普通に書いて、サーバーにアップする段階でJSPのソース自体の改行コードとインデントを手動で一気に削除するイメージでした。 | ||||||||
|
投稿日時: 2005-02-10 15:20
Servlet APIのFilterインタフェースで実装するとすれば、仰る様にHttpServletResponseWrapperを用いて出力ストリームを横取りすることにより実装できます。
出力ストリームを加工するフィルタの作り方は以下のdeveloperWorksの記事が参考になります。 http://www-6.ibm.com/jp/developerworks/java/011116/j_j-tomcat.html | ||||||||
|
投稿日時: 2005-02-10 15:30
改行は、 Unix 上で開発された、末尾に LF のみが付加されてる HTML ファイルか、Windows 上で
開発された CR+LF が付加された HTML の違いだけちゃうのん? | ||||||||
|
投稿日時: 2005-02-10 15:39
>これは、HTMLを出力するプログラムでインデントや改行等を削除しているのでしょうか?
そんなことはしてないと思いますよ。(^^;; 単に、もともと改行を出力していないだけだと思います。 JSPはよくわかりませんが、 out.println()とout.print()の違いだけではないでしょうか? | ||||||||
|
投稿日時: 2005-02-10 15:57
XSLTを使うなどDOMを経由して生成したドキュメントの場合、改行コードが入らないことは良くあります。
| ||||||||
