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)