【Java】サーブレット内でHTMLを出力する

■サーブレット

サーブレットとは、プログラミング言語のJavaを使用したサーバサイドのプログラムを実装する手法である(サーブレットクラス)。

サーブレットクラスは、アプリケーションサーバ(APサーバ)上で実行する。

一般的に、サーブレットクラスはブラウザからのリクエストによって実行し、その結果をHTMLで出力する。そして、出力したHTMLをブラウザにレスポンスする。

サーブレット実行イメージ

■サーブレットクラスの書き方

以下にサーブレットクラスの基本的な書き方を示す。

// サーブレット関係のクラスをインポートする
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// HttpServletクラスを継承する
public class ServletSample extends HttpServlet{

	// HttpServletクラスのdoGet()メソッドをオーバーライド
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException{
		// ここに処理を書く。 
	}
}

■サーブレットクラス内でHTMLを出力

今回はサーブレットクラスのdoGet()メソッドをオーバーライドし、サーブレットクラス内でHTML出力を実装する。

なお、プロジェクトの階層構造は以下に示す。

・「JspServletSample」プロジェクトの階層構造

JspServletSample
|--build
|  |--classes
|  |  |--servlet
|  |  |  |--ServletSample.class
|--src
|  |--main
|  |  |--java
|  |  |  |--servlet
|  |  |  |  |--ServletSample.java
|  |  |--webapp
|  |  |  |--META-INF
|  |  |  |  |--MANIFEST.MF
|  |  |  |--WEB-INF
|  |  |  |  |--lib

※「./src/main/java/servlet」の「servlet」はパッケージ名

▼サンプルコード

package servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// URLパターンを指定
@WebServlet("/ServletSample")
public class ServletSample extends HttpServlet{

	private static final long serialVersionUID = 1L;
	
	protected void doGet(HttpServletRequest request, 
			HttpServletResponse response) throws ServletException, IOException{
		
		// HTMLを出力
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head>");
		out.println("<title>ページタイトル</title>");
		out.println("<body>");
		out.println("<p>サーブレットサンプルページ</p>");
		out.println("</body>");

	}
}

▼実行結果

タイトルとURLをコピーしました