J2EEアプリケーションで使用するWebアプリケーションの作成を行います。
ここでは、WebアプリケーションプロジェクトにHTMLファイルとJSPファイルを追加して、Webアプリケーションを完成させます。
サーブレットクラス作成
[プロジェクトエクスプローラ]ビューで[ShoppingCart]を選択し、ワークベンチのメニューより[ファイル] > [新規] > [サーブレット]を選択します。
サーブレットウィザードでサーブレットクラスを作成します。
サーブレットウィザード(1ページ目)
項目名 | 入力値 |
|---|---|
プロジェクト | ShoppingCart |
フォルダ | /ShoppingCart/src |
Javaパッケージ | pkgShoppingCart |
クラス名 | ShoppingCart |
スーパークラス | javax.servlet.http.HttpServlet |
既存のサーブレットクラスの使用 | (チェックしない) |
サーブレットウィザード(2ページ目)
項目名 | 入力値 |
|---|---|
名前 | cart |
初期化パラメタ | (何も入力しない) |
URLマッピング | /cart |
サーブレットウィザード(3ページ目)
項目名 | 入力値 |
|---|---|
修飾子 | [public]をチェック |
インタフェース | javax.servlet.Servlet |
作成するメソッドスタブの選択 | [スーパークラスからのコンストラクタ]、[継承された抽象メソッド]、[doGet]を選択 |
ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart]プロジェクトに以下のファイルが生成されていることを確認してください。
ShoppingCart.java
アプリケーションクラス作成
ワークベンチの[プロジェクトエクスプローラ]ビューで[ShoppingCart]を選択し、ワークベンチのメニューから[ファイル] > [新規] > [クラス]を選択します。
Javaクラスウィザードでアプリケーションクラスを作成します。
Javaクラスウィザード
項目名 | 入力値 |
|---|---|
ソースフォルダ | ShoppingCart/src |
パッケージ | pkgShoppingCartBean |
エンクロージング型 | チェックしない |
名前 | ShoppingCartBean |
修飾子 | [public]を選択 |
スーパークラス | java.lang.Object |
インタフェース | 指定しない |
作成するメソッドスタブの選択 | チェックしない(すべて) |
現在のプロジェクトのプロパティで構成したとおりコメントを追加 | チェックしない |
ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart]プロジェクトに以下のファイルが生成されていることを確認してください。
ShoppingCartBean.java
Javaファイル編集
Javaエディタを使用して以下のソースファイルを編集します。
ワークベンチの[プロジェクトエクスプローラ]ビューでソースファイルを右クリックし、[アプリケーションから開く] > [Javaエディタ]を選択します。
/**
*
*/
package pkgShoppingCart;
import java.io.IOException;
/** 追加ここから **/
import java.io.UnsupportedEncodingException;
import java.util.Hashtable;
import javax.servlet.RequestDispatcher;
/** 追加ここまで **/
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** 追加ここから **/
import javax.servlet.http.HttpSession;
import pkgShoppingCartBean.ShoppingCartBean;
/** 追加ここまで **/
/**
* Servlet implementation class for Servlet: ShoppingCart
*
*/
public class ShoppingCart extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public ShoppingCart() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
/** 追加ここから **/
HttpSession session = request.getSession(true); try { // アプリケーションオブジェクトの取得
ShoppingCartBean _application =
(ShoppingCartBean) session.getAttribute("cart");
if (_application == null) { // 新規またはSessionTimeOut
_application = new ShoppingCartBean();
session.setAttribute("cart", _application);
} // パラメータクラスから入力データを取得
Hashtable tbl = getValues(request);
//購入およびキャンセル処理
if (!((String)tbl.get("Purchase")).equals("") ||
!((String)tbl.get("Cancel")).equals("")) {
_application.remove();
session.removeAttribute("cart");
//JSP呼び出し
RequestDispatcher rd =
getServletContext().getRequestDispatcher("/ShoppingCartPurchase.jsp");
rd.forward(request,response);
return;
} //商品の種類番号を取得
String SType = (String)tbl.get("RadioGroup");
if (!SType.equals("")) {
//Beanに商品を登録
String ItemName = (String)tbl.get("D"+SType);
_application.setItem(ItemName);
} //JSP呼び出し
RequestDispatcher rd =
getServletContext().getRequestDispatcher("/ShoppingCartBean.jsp");
rd.forward(request,response);
} catch (Exception e) {
session.removeAttribute("cart");
}
/** 追加ここまで **/
}
/** 追加ここから **/
/**
* パラメタを獲得する。
*
* @param name パラメタの名前
* @return パラメタの値
*/
protected static String getParameter(HttpServletRequest req, String name) {
String value = req.getParameter(name);
if (value == null) {
return null;
} String encodedValue;
try {
encodedValue = new String(value.getBytes("iso-8859-1"), "Shift_JIS");
} catch (UnsupportedEncodingException e) {
// エンコードに失敗したため、未エンコードの値を設定する。
encodedValue = value;
}
return encodedValue;
}
public Hashtable getValues(HttpServletRequest req) throws Exception {
String D1;
String D2;
String D3;
String RadioGroup;
String Submit;
String Purchase;
String Cancel; if ((D1 = getParameter(req, "D1")) == null)
D1 = "";
if ((D2 = getParameter(req, "D2")) == null)
D2 = "";
if ((D3 = getParameter(req, "D3")) == null)
D3 = "";
if ((RadioGroup = getParameter(req, "RadioGroup")) == null)
RadioGroup = "";
if ((Submit = getParameter(req, "Submit")) == null)
Submit = "";
if ((Purchase = getParameter(req, "Purchase")) == null)
Purchase = "";
if ((Cancel = getParameter(req, "Cancel")) == null)
Cancel = "";Hashtable tbl = new Hashtable(); tbl.put("D1", D1);
tbl.put("D2", D2);
tbl.put("D3", D3);
tbl.put("RadioGroup", RadioGroup);
tbl.put("Submit", Submit);
tbl.put("Purchase", Purchase);
tbl.put("Cancel", Cancel);return tbl; } /** 追加ここまで **/ } |
package pkgShoppingCartBean;
/** 追加ここから **/
import javax.ejb.CreateException;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import pkgTutorialBean.Item;
import pkgTutorialBean.TutorialBeanLocal;
import pkgTutorialBean.TutorialBeanLocalHome;
/** 追加ここまで **/
public class ShoppingCartBean {
/** 追加ここから **/
TutorialBeanLocal TutorialBeanL = null;
public ShoppingCartBean() throws NamingException,CreateException {
javax.naming.Context initialContext = new InitialContext();
TutorialBeanLocalHome TutorialBeanH =
(TutorialBeanLocalHome)initialContext.lookup("java:comp/env/ejb/TutorialBean");
TutorialBeanL = TutorialBeanH.create();
}
public void setItem(String ItemName) {
TutorialBeanL.AddCart(ItemName);
}
public Item[] getItem() {
Item[] item = null;
item = TutorialBeanL.getItems();
return (item);
}
public void remove() throws javax.ejb.RemoveException {
TutorialBeanL.remove();
}
/** 追加ここまで **/
} |
HTMLファイル作成
以下のHTMLファイルを作成し、プロジェクトに追加します。
ShoppingTutorial.html
ShoppingTutorialMain.html
ShoppingTutorialDummy.html
ワークベンチの[プロジェクトエクスプローラ]ビューで[ShoppingCart] > [ContextRoot]を選択し、ワークベンチのメニューから、[ファイル] > [新規] > [HTML]を選択します。
HTMLページウィザードでHTMLページを作成します。以下の情報を入力したら[終了]をクリックします。
HTMLページウィザード
項目名 | 入力値 |
|---|---|
親フォルダを入力または選択 | ShoppingCart/ContextRoot |
ファイル名 | ShoppingTutorial |
項目名 | 入力値 |
|---|---|
親フォルダを入力または選択 | ShoppingCart/ContextRoot |
ファイル名 | ShoppingTutorialMain |
項目名 | 入力値 |
|---|---|
親フォルダを入力または選択 | ShoppingCart/ContextRoot |
ファイル名 | ShoppingTutorialDummy |
ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart] > [ContextRoot]に作成したHTMLファイルが生成されていることを確認してください。
HTMLファイル編集
HTMLエディタを使用して以下のHTMLファイルを編集します。
ワークベンチの[プロジェクトエクスプローラ]ビューでHTMLファイルを右クリックし、[アプリケーションから開く] > [HTMLエディタ]を選択します。
ここではテキストモードで編集を行いますので、[テキスト]タブをクリックして切り替えます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <!-- 削除ここから -- <title>ここにタイトルを挿入</title> -- 削除ここまで --> <!-- 追加ここから --> <title>ShoppingTutorial</title> <!-- 追加ここまで --> </head> <body> <!-- 追加ここから --> <p align="center"> <font size="6"><strong>ショッピングカート</strong></font></p> <p align="center"> <hr> <p></p>
<p align="center">
<form action="/ShoppingCart/cart" method="get" target="rbottom">
<table border="1" width="80%">
<tbody>
<tr>
<td bgcolor="#00ffff" width="33%">
<p align="center"><strong>テレビ</strong></p></td>
<td bgcolor="#00ffff" width="33%">
<p align="center"><strong>コンピュータ</strong></p></td>
<td bgcolor="#00ffff" width="33%">
<p align="center"><strong>冷蔵庫</strong></p></td>
</tr>
<tr>
<td>
<p>
<select id="Drop1" name="D1" size="1" style="height: 20px; width: 225px">
<option selected value="19型フラットテレビ">19型フラットテレビ
</option>
<option value="21型テレビBS内蔵">21型テレビBS内蔵
</option>
<option value="21型液晶テレビ">21型液晶テレビ
</option>
</select></p></td>
<td>
<p>
<select id="Drop2" name="D2" size="1" style="height: 20px; width: 225px">
<option selected value="ノートパソコン">ノートパソコン
</option>
<option value="デスクトップパソコン">デスクトップパソコン
</option>
</select></p></td>
<td>
<p>
<select id="Drop3" name="D3" size="1" style="height: 20px; width: 225px">
<option selected value="2ドア冷蔵庫(100L)">2ドア冷蔵庫(100L)
</option>
<option value="2ドア冷蔵庫(200L)">2ドア冷蔵庫(200L)
</option>
<option value="3ドア冷蔵庫(300L)">3ドア冷蔵庫(300L)
</option>
</select></p></td>
</tr>
<tr>
<td align="center">購入
<input id="Value4" name="RadioGroup" type="radio" value="1"></td>
<td align="center">購入
<input id="Value5" name="RadioGroup" type="radio" value="2"></td>
<td align="center">購入
<input id="Value6" name="RadioGroup" type="radio" value="3"></td>
</tr>
</tbody>
</table>
<p align="center">
<input name="Submit" type="submit" value=" 送 信 "></p>
</form>
<hr>
<!-- 追加ここまで -->
</body>
</html> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-31j"> <!-- 削除ここから -- <title>ここにタイトルを挿入</title> -- 削除ここまで --> <!-- 追加ここから --> <title>ShoppingTutorialMainbottom</title> <!-- 追加ここまで --> </head> <base target="rtop"> <!-- 追加 --> <body> </body> </html> |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<!-- 削除ここから --
<title>ここにタイトルを挿入</title>
-- 削除ここまで -->
<!-- 追加ここから -->
<title>ShoppingTutorialMain</title>
<!-- 追加ここまで -->
</head>
<!-- 削除ここから --
<body>
</body>
-- 削除ここまで-->
<!-- 追加ここから -->
<frameset frameborder="no" rows="60%,*">
<frame name="rtop" src="ShoppingTutorial.html">
<frame name="rbottom" src="ShoppingTutorialDummy.html">
</frameset>
<!-- 追加ここまで -->
</html> |
JSPファイル作成
以下のJSPファイルを作成し、プロジェクトに追加します。
ShoppingCartBean.jsp
ShoppingCartPurchase.jsp
ワークベンチのメニューから、[ファイル] > [新規] > [JSP]を選択します。
JavaServer PageウィザードでJSPを作成します。以下の情報を入力したら[終了]をクリックします。
JavaServer Pageウィザード
項目名 | 入力値 |
|---|---|
親フォルダを入力または選択 | ShoppingCart/ContextRoot |
ファイル名 | ShoppingCartBean |
項目名 | 入力値 |
|---|---|
親フォルダを入力または選択 | ShoppingCart/ContextRoot |
ファイル名 | ShoppingCartPurchase |
ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart] > [ContextRoot]に作成したJSPファイルが生成されていることを確認してください。
JSPファイル編集
JSPエディタを使用して以下のJSPファイルを編集します。
ワークベンチの[プロジェクトエクスプローラ]ビューでJSPファイルを右クリックし、[アプリケーションから開く] > [JSPエディタ]を選択します。
ここではテキストモードで編集を行いますので、[テキスト]タブをクリックして切り替えます。
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<!-- 削除ここから --
<title>ここにタイトルを挿入</title>
-- 削除ここまで -->
<!-- 追加ここから -->
<jsp:useBean id="cart" scope="session" class="pkgShoppingCartBean.ShoppingCartBean"></jsp:useBean>
<title>ShoppingCartBean</title>
<!-- 追加ここまで -->
</head>
<body>
<!-- 追加ここから -->
<center>
<h2>現在の購入商品</h2>
<form name="Purchase" action="/ShoppingCart/cart" method="get">
<input type="submit" value=" 購 入 " name="Purchase">
<input type="submit" value="キャンセル" name="Cancel">
</form><table border="1">
<tbody>
<tr>
<td align="center" bgcolor="#00ffff"><strong>商品名</strong></td>
<td align="center" bgcolor="#00ffff"><strong>数量</strong></td>
</tr>
<%
pkgTutorialBean.Item[] items = cart.getItem();
for (int i = 0; i < items.length; i++) {
out.println("<tr><td align=\"center\">"+items[i].getName()+"</td>");
out.println("<td align=\"center\">"+items[i].getQuantity()+"</td></tr>");
}
%>
</tbody>
</table>
</center>
<br>
<!-- 追加ここまで -->
</body>
</html> |
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<!-- 削除ここから --
<title>ここにタイトルを挿入</title>
-- 削除ここまで -->
<!-- 追加ここから -->
<title>ShoppingCartPurchase</title>
<!-- 追加ここまで -->
</head>
<body>
<!-- 追加ここから -->
<center>
<h2>またのご利用お待ちしております。
<br></h2>
</center >
<!-- 追加ここまで -->
</body>
</html> |
ワークベンチのメニューから[ファイル] > [すべて保存]を選択し、編集したファイルを保存します。
deployment descriptorの編集
EJBを呼び出すために、DDエディタを使用して参照EJBを定義します。
ワークベンチの[プロジェクトエクスプローラ]ビューで[ShoppingCart] > [ContextRoot] > [WEB-INF] > [web.xml]を右クリックし、[アプリケーションから開く] > [DDエディタ(Web)]を選択します。
[参照EJB]タブを選択し、[ローカル参照EJB] > [追加]をクリックしてEJBを呼び出すための以下の情報を入力します。
[参照EJB]タブ
項目名 | 入力値 |
|---|---|
Beanの参照名 | ejb/TutorialBean |
Bean種別 | Session |
LocalHomeインタフェース名 | pkgTutorialBean.TutorialBeanLocalHome |
Localインタフェース名 | pkgTutorialBean.TutorialBeanLocal |
Bean名 | TutorialBean.jar#TutorialBean |
[ファイル]タブを選択し、[welcomeファイル] > [追加]をクリックして、[ファイル名]に次のファイル名を入力します。
ShoppingTutorialMain.html
次のファイル名を選択し、[削除]をクリックして削除します。
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
ワークベンチのメニューから[ファイル] > [保存]を選択し、編集したファイルを保存します。