- PR -

改行コードとインデントがないHTML出力はどのようにして実現しているのでしょうか?

投稿者投稿内容
torakiyojp
常連さん
会議室デビュー日: 2004/08/04
投稿数: 23
投稿日時: 2005-02-10 14:25
お世話になっております。
前々から気になっていた事があるのですが、ご教授していただけないでしょうか。

GoogleのHTMLソースを表示してみると、大部分がインデントと改行なしで書かれています。また、YahooでもHTMLソースにインデントがありません。

これは、HTMLを出力するプログラムでインデントや改行等を削除しているのでしょうか?
それとも、プログラムのソースの時点でインデントや改行等を削除しているのでしょうか?

プログラムでインデントや改行等を削除しているとすると、JAVAの場合、フィルタを使って実現できるのでしょうか?

以上、ご教授していただけると、ありがたいです。

K
大ベテラン
会議室デビュー日: 2004/04/07
投稿数: 174
投稿日時: 2005-02-10 14:33
引用:

これは、HTMLを出力するプログラムでインデントや改行等を削除しているのでしょうか?
それとも、プログラムのソースの時点でインデントや改行等を削除しているのでしょうか?


そんなことはGoogleさんやYahooさんに聞かないとわからないですよ。

引用:

プログラムでインデントや改行等を削除しているとすると、JAVAの場合、フィルタを使って実現できるのでしょうか?


できるかできないかと言ったらもちろん出来ます。
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-02-10 14:35
今日は。

JAVAなプログラマでは無いですが、書いている内容について今ひとつ解らないので。
引用:

これは、HTMLを出力するプログラムでインデントや改行等を削除しているのでしょうか?


→(色々とありますが)出力するプログラムが削除

引用:

それとも、プログラムのソースの時点でインデントや改行等を削除しているのでしょうか?


→「htmlファイルの段階で」と言っているのでしょうかそれとも「プログラムのソースコードに削除する命令が書いてある」と言う意味でしょうか? 
torakiyojp
常連さん
会議室デビュー日: 2004/08/04
投稿数: 23
投稿日時: 2005-02-10 14:57
mogeさん、NAOさん、回答ありがとうございます。


> そんなことはGoogleさんやYahooさんに聞かないとわからないですよ。

確かに。ただ、他のサイトでもHTMLソースにインデントを使用してない所があったので、何か一般的なやり方があるのかと思いました。
つまり、それぞれで独自のやり方をしているから一概には言えないということですね?


> できるかできないかと言ったらもちろん出来ます。

そうですか、できそうな気はしていたのですが。
レスポンスをラップする感じになるのかと考えていました。
ちょっと、考えてみます。


> →(色々とありますが)出力するプログラムが削除

なるほど、プログラムで削除ですか。


> →「htmlファイルの段階で」と言っているのでしょうかそれとも「プログラムのソースコードに削除する命令が書いてある」と言う意味でしょうか?

私の場合、JSPで考えていたので、開発中は普通に書いて、サーバーにアップする段階でJSPのソース自体の改行コードとインデントを手動で一気に削除するイメージでした。

meltingpot
常連さん
会議室デビュー日: 2004/06/15
投稿数: 24
投稿日時: 2005-02-10 15:20
Servlet APIのFilterインタフェースで実装するとすれば、仰る様にHttpServletResponseWrapperを用いて出力ストリームを横取りすることにより実装できます。

出力ストリームを加工するフィルタの作り方は以下のdeveloperWorksの記事が参考になります。
http://www-6.ibm.com/jp/developerworks/java/011116/j_j-tomcat.html
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2005-02-10 15:30
改行は、 Unix 上で開発された、末尾に LF のみが付加されてる HTML ファイルか、Windows 上で
開発された CR+LF が付加された HTML の違いだけちゃうのん?
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2005-02-10 15:39
>これは、HTMLを出力するプログラムでインデントや改行等を削除しているのでしょうか?

そんなことはしてないと思いますよ。(^^;;
単に、もともと改行を出力していないだけだと思います。
JSPはよくわかりませんが、
out.println()とout.print()の違いだけではないでしょうか?
meltingpot
常連さん
会議室デビュー日: 2004/06/15
投稿数: 24
投稿日時: 2005-02-10 15:57
XSLTを使うなどDOMを経由して生成したドキュメントの場合、改行コードが入らないことは良くあります。

スキルアップ/キャリアアップ(JOB@IT)