MIMEタイプの違いによる出力の違いを確認しよう
5.2 MIMEタイプの違いによる出力の違いを確認しよう
ここではMIMEタイプの設定による出力の違いを確認します。同じ処理を行うプログラムを2つ作成し、片方のMIMEタイプを「text/plain」、もう片方のMIMEタイプを「text/html」と指定して、出力結果の違いを確認してみましょう。
MIMEタイプをtext/plainとしてメッセージを表示するプログラム
MIMEタイプに「text/plain」と設定することでプレーンテキスト(単純なテキスト)を表示するプログラムです。
実行結果

アプリケーション構成

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch05
③ 名前 :MimeTypeServlet1
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :http://localhost:8080/web_basic/MimeTypeServlet1
➢ MimeTypeServlet1.java
5 | import javax.servlet.http.*; |
7 | public class MimeTypeServlet1 extends HttpServlet { |
9 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
10 | throws ServletException, IOException { |
13 | response.setContentType("text/plain; charset=UTF-8"); |
16 | PrintWriter out = response.getWriter(); |
17 | out.println("MIMEタイプによる"); |
18 | out.println("出力の違いを"); |
19 | out.println("確認しましょう"); |
➢ web.xml
2 | < servlet-name >MimeTypeServlet1Mapping</ servlet-name > |
3 | < servlet-class >ch05.MimeTypeServlet1</ servlet-class > |
6 | < servlet-name >MimeTypeServlet1Mapping</ servlet-name > |
7 | < url-pattern >/MimeTypeServlet1</ url-pattern > |
解説
13行目ではMIMEタイプを「text/plain」と設定してコンテンツタイプを指定しています。
13:response.setContentType("text/plain; charset=UTF-8");
16行目から18行目で文字列を出力しています。
16:out.println("MIMEタイプによる");
17:out.println("出力の違いを");
18:out.println("確認しましょう");
このプログラムではコンテンツタイプのMIMEタイプを「text/plain」と設定しているため、1行1行が出力されたそのままの状態で表示されます。そのため、3つの文が改行され、分かれた状態となって表示されます。
MIMEタイプをtext/htmlとしてメッセージを表示するプログラム
コンテンツタイプに「text/html」と設定しHTML形式でメッセージを表示するプログラムです。MIMEタイプの「text/plain」と「text/html」の出力の違いについて確認してみましょう。
実行結果

アプリケーション構成

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch05
③ 名前 :MimeTypeServlet2
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :http://localhost:8080/web_basic/MimeTypeServlet2
➢ MimeTypeServlet2.java
5 | import javax.servlet.http.*; |
7 | public class MimeTypeServlet2 extends HttpServlet { |
9 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
10 | throws ServletException, IOException { |
13 | response.setContentType("text/html; charset=UTF-8"); |
16 | PrintWriter out = response.getWriter(); |
17 | out.println("MIMEタイプによる"); |
18 | out.println("出力の違いを"); |
19 | out.println("確認しましょう"); |
➢ web.xml
2 | < servlet-name >MimeTypeServlet2Mapping</ servlet-name > |
3 | < servlet-class >ch05.MimeTypeServlet2</ servlet-class > |
6 | < servlet-name >MimeTypeServlet2Mapping</ servlet-name > |
7 | < url-pattern >/MimeTypeServlet2</ url-pattern > |
解説
MIMEタイプを「text/plain」と設定したプログラムと違い、3つの文字が1行で表示されています。
これは、12行目でMIMEタイプを「text/html」と設定してコンテンツタイプを指定しているためです。
12:response.setContentType("text/html; charset=UTF-8");
MIMEタイプを「text/html」と設定した場合、ブラウザがHTML形式の文書であると認識します。HTMLでは<BR>タグが無いと改行されないため、このプログラムでは3つの文字が1行で表示されているのです。
このように、同じ処理が書かれたプログラムでも、MIMEタイプの設定によって、ブラウザ側の動きが変わることに注意しましょう。
NEXT>> 5.3 HTMLを出力してみよう