Servlet/JSP 第4回では前回まで学んだServletクラスの作成、実行を踏まえて実際にブラウザに表示する簡単な
Servletクラスを実装、実行します。
実際にコードを写して書いてみて動きを確認してみましょう。
EclipseでServletクラスを作成
ここから実際にServletクラスを作成してWebページに表示してみます。
簡単なじゃんけんの手が表示されるServletを作成します。
実行の度に「グー」「チョキ」「パー」がランダムに表示されます。
package servlet;
//importは上書き保存をした際に基本的にEclipsが自動でインポートする
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/JyankenServlet") //解説1
public class JyankenServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
String[] hand = {"グー","チョキ","パー"};
int index = (int)(Math.random()*3);
String jyanken=hand[index];
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("MM月dd日");
String today = sdf.format(date);
//解説2
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\"/>");
out.println("<title>今日のじゃんけん</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>" + today + "じゃんけんぽん「" + jyanken + "」</p>");
out.println("</body>");
out.println("</html>");
}
}
解説1 URLパターン
URLパターンの設定については”Servletの基本2”で説明していますので、そちらをご覧ください。
解説2 HTML出力
コードの30行目からはHTML出力の為の記述となります。
①30行目ではHttpServletResponseのsetContentTypeメソッドで文字コードを「UTF-8」に設定しています。
②31行目では、32行目から「out.println」でHTML入力をする為の準備としてPrintWriterインスタンスを利用する。
①、②にでブラウザに出力するための準備完了です。
Servletクラスを実行
それではServletクラスを実行してみましょう!
Webアプリケーションサーバーを起動してブラウザからURLを入力して実行します。
実行画面
正常に実行できた場合、上記実行画面となります。
今日の日付、じゃんけんの手は、ブラウザを起動するごとにランダムで表示されます。
URL:http://localhost:8080/Jyanken/JyankenServlet ここからアクセス
localhost:8080 サーバー名
Jyanken プロジェクト名
JyankenServlet @WebServletアノテーションに設定したURLパターン名
Servletの基本1~実装と実行までのまとめ
Servletクラスの基本
・Servletクラスはブラウザからリクエストして実行できる
・Servletクラスの実行結果は、一般的にはHTML(webページ)である。
Servletクラスの定義
・jakarta.servlet.http.HttpServletを継承する
・doGetメソッドをオーバライドして処理を記述する。
・doGetメソッドの引数であるHttpServletRequestはリクエストに関するっ丈夫と機能を持つ。
HttpServletResponseはレスポンスに関する情報と機能を持つ。
HTML出力
・HttpServletResponseのsetContentTypeメソッドで文字コードを設定する。
・HttpServletResponseのgetWriterメソッドで取得したPrintWriterインスタンスを使ってHTMLを出力する。
ServletクラスのURLとURLパターン
・http://サーバー名/プロジェクト名/URLパターン
・URLパターンは@WebServletアノテーションを使って設定する。
Servletクラスの実行
・GETリクエストされた場合、doGetメソッドが実行される。
コメント