Java サーブレット・JavaBeans・jspが連携するサンプル

Javaのサーブレット・JavaBeans・jspが連携するサンプルです。

実行環境
・Windows10
・Eclipse4.6  (JavaEE)
・apache-tomcat-8.0.39

目次

環境

サンプルの環境です。

ファイル

以下の3つファイルがあります。
・Test1.java・・・サーブレットのファイル
・Color1.java・・・JavaBeansのファイル
・test1.jsp・・・jspファイル

Eclipseでの配置は以下のようになっています。
ページ表示時のアクセスの順番は、Test1.java → Color1.java → test1.jspです。

URL

アクセスするURLは以下です。
http://localhost:8080/test2/testjava
URLの意味は、localhost:Tomcatのポート番号/プロジェクト名(コンテキスト・ルート)/ソースコードの中に記述した@Webservletの値です。

Webコンテナ

サーブレットやJSPを動かすためには、Web用のプロジェクトとTomcatなどのWebコンテナが必要です。
Eclipseで動的Webプロジェクトを作成する手順
EclipseにTomcatを登録する手順

 

サーブレットのファイル

サーブレットのファイルです。(Test1.java)

18,19行目は、JavaBeansを生成し値をセットしています。
21行目は、JavaBeansをリクエストにセットしています。
25,26行目は、jspファイルにフォワードしています。
11行目の/testjavaは、URLでアクセスする時に使用します。

package test1;

import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/testjava")
public class Test1 extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
			
			Color1 cr1 = new Color1();
			cr1.setColor("赤黄青");
	
			request.setAttribute("cr1", cr1);
						
			ServletContext sc = getServletContext();
			
			sc.getRequestDispatcher("/WEB-INF/test1.jsp")
				.forward(request, response);
	}
}

 

JavaBeansのファイル

JavaBeansのファイルです。(Color1.java)

以下はJavaBeansの仕様です。
・Serializableインターフェースを実装します。(5行目)
・メンバ変数はprivateをつけ、クラスの外部からアクセスできないようにします。(8行目)
・publicで引数のないコンストラクタを持ちます。(10行目)
・ゲッター/セッターでprivateにしたメンバ変数の値を取得、設定します。(13,16行目)

package test1;

import java.io.Serializable;

public class Color1 implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private String color;
	
	public Color1(){
	}

	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
}

 

jspのファイル (EL式を使用)

jspのファイルです。(test1.jsp)

1行目は、pageディレクティブです。JSPファイルの設定をしています。
9行目は、jspのコメントです。
10行目の${cr1.color}はEL式です。値にアクセスできます。
画面には、EL式です=赤黄青 と表示されます。

<%@ page contentType="text/html; charset=UTF-8"%>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>
<%-- コメント --%>
<p>EL式です=${cr1.color}</p>

</body>
</html>

EL式

EL式は、簡易に書ける構文です。
従来のスクリプトレット(<%・・・%>)に代わります。JSP 2.0で導入されました。
EL式は、式言語ともいいます。

 

jspのファイル (EL式を使用しない)

上記のjspでEL式を使わない場合のサンプルコードです。

2行目は、pageディレクティブです。importでパッケージ名.クラス名を指定しています。
4行目は、requestオブジェクトとgetAttributeメソッドでオブジェクトを取得しています。
13行目は、Color1クラスのgetColorメソッドで値にアクセスしています。
画面には、テスト=赤黄青 と表示されます。

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="test1.Color1" %>
<%
	Color1 cr0 = (Color1)request.getAttribute("cr1");
%>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>
<body>

<p>テスト=<%=cr0.getColor() %></p>

</body>
</html>

暗黙オブジェクト

4行目のrequestは、暗黙オブジェクトです。
JSPで用意されているオブジェクトです。そのまま使用できます。

関連の記事

Java サーブレットのセッションのサンプル(getSession)
Java JSTLのカスタムタグの導入と使用例のサンプル(core,i18n)

△上に戻る