HTMLを出力してみよう

5.3 HTMLを出力してみよう

 今までのサーブレットでは、文字列をそのまま出力し画面に表示していましたが、サーブレットから出力することができるのは文字列だけではありません。ここでは、HTMLタグを出力し、画面を生成するサーブレットについて学習します。

HTMLタグを出力し、画面を表示するプログラム

 このプログラムでは、サーブレットからHTMLタグを出力することでブラウザに文字を出力します。

実行結果

アプリケーション構成

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch05
③ 名前 :OutputHtmlServlet
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :http://localhost:8080/web_basic/OutputHtmlServlet

➢ OutputHtmlServlet.java
1package ch05;
2 
3import java.io.*;
4import javax.servlet.*;
5import javax.servlet.http.*;
6 
7public class OutputHtmlServlet extends HttpServlet {
8 
9    public void doGet(HttpServletRequest request, HttpServletResponse response)
10    throws ServletException, IOException {
11  
12        //コンテンツタイプの指定
13        response.setContentType("text/html; charset=UTF-8");
14  
15        //HTMLの出力
16        PrintWriter out = response.getWriter();
17        out.println("<HTML>");
18        out.println("<HEAD>");
19        out.println("<TITLE>HTMLを出力するサーブレット</TITLE>");
20        out.println("</HEAD>");
21        out.println("<BODY>");
22        out.println("HTMLを出力するサーブレット");
23        out.println("</BODY>");
24        out.println("</HTML>");
25    }
26 }
➢ web.xml
1<servlet>
2    <servlet-name>OutputHtmlServletMapping</servlet-name>
3    <servlet-class>ch05.OutputHtmlServlet</servlet-class>
4</servlet>
5<servlet-mapping>
6    <servlet-name>OutputHtmlServletMapping</servlet-name>
7    <url-pattern>/OutputHtmlServlet</url-pattern>
8</servlet-mapping>

解説
 このプログラムでは14行目から21行目でHTMLタグを出力しています。
   14:out.println("<HTML>");
   15:out.println("<HEAD>");
   16:out.println("<TITLE>HTMLを出力するサーブレット</TITLE>");
   17:out.println("</HEAD>");
   18:out.println("<BODY>");
   19:out.println("HTMLを出力するサーブレット");
   20:out.println("</BODY>");
   21:out.println("</HTML>");

 出力されたHTML文書をもとにブラウザが画面を表示しているため、HTMLタグの部分が表示されてしまうようなことはなく、本文のみが正しく表示されています。
 また、今までのサーブレットと違い16行目でTITLEを記述しているため、ブラウザのタブ部分にタイトルが表示されていることも確認できます。
 このように、サーブレットからHTMLを出力し画面を表示することも可能です。

 今回のプログラムからも分かりますが、サーブレットでは各行ごとにprintln()メソッドを利用して出力しなくてはならないので、複雑な画面を作る際には効率がよくありません。そのため、1.3.3項でも触れましたが、JSPを使い画面を生成する方法が一般的です。
 このJSPについては次の章で詳しく学習します。


NEXT>> 5.4 本章のまとめ

f