HTMLを出力してみよう
5.3 HTMLを出力してみよう
今までのサーブレットでは、文字列をそのまま出力し画面に表示していましたが、サーブレットから出力することができるのは文字列だけではありません。ここでは、HTMLタグを出力し、画面を生成するサーブレットについて学習します。
HTMLタグを出力し、画面を表示するプログラム
このプログラムでは、サーブレットからHTMLタグを出力することでブラウザに文字を出力します。
実行結果

アプリケーション構成

① ソース・フォルダ :web_basic/src/main/java
② パッケージ :ch05
③ 名前 :OutputHtmlServlet
④ スーパークラス :jakarta.servlet.http.HttpServlet
⑤ アクセスURL :http://localhost:8080/web_basic/OutputHtmlServlet
➢ OutputHtmlServlet.java
3 | import java.io.IOException; |
4 | import java.io.PrintWriter; |
6 | import jakarta.servlet.ServletException; |
7 | import jakarta.servlet.annotation.WebServlet; |
8 | import jakarta.servlet.http.HttpServlet; |
9 | import jakarta.servlet.http.HttpServletRequest; |
10 | import jakarta.servlet.http.HttpServletResponse; |
12 | @WebServlet("/OutputHtmlServlet") |
13 | public class OutputHtmlServlet extends HttpServlet { |
15 | public void doGet(HttpServletRequest request, HttpServletResponse response) |
16 | throws ServletException, IOException { |
18 | PrintWriter out = response.getWriter(); |
19 | out.println("< HTML >"); |
20 | out.println("< HEAD >"); |
21 | out.println("< TITLE >HTMLを出力するサーブレット</ TITLE >"); |
22 | out.println("</ HEAD >"); |
23 | out.println("< BODY >"); |
24 | out.println("HTMLを出力するサーブレット"); |
25 | out.println("</ BODY >"); |
26 | out.println("</ HTML >"); |
解説
このプログラムでは19行目から26行目でHTMLタグを出力しています。
19:out.println("<HTML>");
20:out.println("<HEAD>");
21:out.println("<TITLE>HTMLを出力するサーブレット</TITLE>");
22:out.println("</HEAD>");
23:out.println("<BODY>");
24:out.println("HTMLを出力するサーブレット");
25:out.println("</BODY>");
26:out.println("</HTML>");
出力されたHTML文書をもとにブラウザが画面を表示しているため、HTMLタグの部分が表示されてしまうようなことはなく、本文のみが正しく表示されています。
また、今までのサーブレットと違い21行目でTITLEを記述しているため、ブラウザのタブ部分にタイトルが表示されていることも確認できます。
このように、サーブレットからHTMLを出力し画面を表示することも可能です。
今回のプログラムからも分かりますが、サーブレットでは各行ごとにprintln()メソッドを利用して出力しなくてはならないので、複雑な画面を作る際には効率がよくありません。そのため、1.3.3項でも触れましたが、JSPを使い画面を生成する方法が一般的です。
このJSPについては次の章で詳しく学習します。
NEXT>> 5.4 本章のまとめ