Interstage Application Server スタートガイド |
目次
![]() ![]() |
第4章 J2EEアプリケーションの開発運用 | > 4.1 開発 |
J2EEアプリケーションで使用するWebアプリケーションの作成を行います。
ここでは、WebアプリケーションプロジェクトにHTMLファイルとJSPファイルを追加して、Webアプリケーションを完成させます。
サーブレットクラス作成
アプリケーションクラス作成
Javaファイル編集
HTMLファイル作成
HTMLファイル編集
JSPファイル作成
JSPファイル編集
deployment descriptorの編集
1. [プロジェクトエクスプローラ]ビューで[ShoppingCart]を選択し、ワークベンチのメニューより[ファイル] > [新規] > [サーブレット]を選択します。
2. サーブレットウィザードでサーブレットクラスを作成します。
項目名 |
入力値 |
---|---|
プロジェクト |
ShoppingCart |
フォルダ |
/ShoppingCart/src |
Javaパッケージ |
pkgShoppingCart |
クラス名 |
ShoppingCart |
スーパークラス |
javax.servlet.http.HttpServlet |
既存のサーブレットクラスの使用 |
(チェックしない) |
項目名 |
入力値 |
---|---|
名前 |
cart |
初期化パラメタ |
(何も入力しない) |
URLマッピング |
/cart |
項目名 |
入力値 |
---|---|
修飾子 |
[public]をチェック |
インタフェース |
javax.servlet.Servlet |
作成するメソッドスタブの選択 |
[スーパークラスからのコンストラクタ]、[継承された抽象メソッド]、[doGet]を選択 |
3. ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart]プロジェクトに以下のファイルが生成されていることを確認してください。
4. ワークベンチの[プロジェクトエクスプローラ]ビューで[ShoppingCart]を選択し、ワークベンチのメニューから[ファイル] > [新規] > [クラス]を選択します。
5. Javaクラスウィザードでアプリケーションクラスを作成します。
項目名 |
入力値 |
---|---|
ソースフォルダ |
ShoppingCart/src |
パッケージ |
pkgShoppingCartBean |
エンクロージング型 |
チェックしない |
名前 |
ShoppingCartBean |
修飾子 |
[public]を選択 |
スーパークラス |
java.lang.Object |
インタフェース |
指定しない |
作成するメソッドスタブの選択 |
チェックしない(すべて) |
現在のプロジェクトのプロパティで構成したとおりコメントを追加 |
チェックしない |
6. ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart]プロジェクトに以下のファイルが生成されていることを確認してください。
Javaエディタを使用して以下のソースファイルを編集します。
7. ワークベンチの[プロジェクトエクスプローラ]ビューでソースファイルを右クリックし、[アプリケーションから開く] > [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.HttpServlet; 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 HttpServlet { /* (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.*; import javax.rmi.*; import javax.naming.*; import pkgTutorialBean.*; /** 追加ここまで **/ public class ShoppingCartBean { /** 追加ここから **/ TutorialBeanRemote TutorialBeanR=null; public ShoppingCartBean() throws NamingException,CreateException,java.rmi.RemoteException { javax.naming.Context initialContext = null; initialContext = new InitialContext(); Object obj = (Object)initialContext.lookup("java:comp/env/ejb/TutorialBean"); TutorialBeanHome TutorialBeanH = (TutorialBeanHome)PortableRemoteObject.narrow(obj, TutorialBeanHome.class); TutorialBeanR = TutorialBeanH.create(); } public void setItem(String ItemName) throws java.rmi.RemoteException { TutorialBeanR.AddCart(ItemName); } public Item[] getItem() throws java.rmi.RemoteException { Item[] item = null; item = TutorialBeanR.getItems(); return (item); } public void remove() throws javax.ejb.RemoveException,java.rmi.RemoteException { TutorialBeanR.remove(); } /** 追加ここまで **/ } |
以下のHTMLファイルを作成し、プロジェクトに追加します。
8. ワークベンチの[プロジェクトエクスプローラ]ビューで[ShoppingCart] > [ContextRoot]を選択し、ワークベンチのメニューから、[ファイル] > [新規] > [HTML]を選択します。
9. HTMLページウィザードでHTMLページを作成します。以下の情報を入力したら[終了]をクリックします。
項目名 |
入力値 |
---|---|
親フォルダを入力または選択 |
ShoppingCart/ContextRoot |
ファイル名 |
ShoppingTutorial |
項目名 |
入力値 |
---|---|
親フォルダを入力または選択 |
ShoppingCart/ContextRoot |
ファイル名 |
ShoppingTutorialMain |
項目名 |
入力値 |
---|---|
親フォルダを入力または選択 |
ShoppingCart/ContextRoot |
ファイル名 |
ShoppingTutorialDummy |
10. ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart] > [ContextRoot]に作成したHTMLファイルが生成されていることを確認してください。
HTMLエディタを使用して以下のHTMLファイルを編集します。
11. ワークベンチの[プロジェクトエクスプローラ]ビューで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ファイルを作成し、プロジェクトに追加します。
12. ワークベンチのメニューから、[ファイル] > [新規] > [JSP]を選択します。
13. JavaServer PageウィザードでJSPを作成します。以下の情報を入力したら[終了]をクリックします。
項目名 |
入力値 |
---|---|
親フォルダを入力または選択 |
ShoppingCart/ContextRoot |
ファイル名 |
ShoppingCartBean |
項目名 |
入力値 |
---|---|
親フォルダを入力または選択 |
ShoppingCart/ContextRoot |
ファイル名 |
ShoppingCartPurchase |
14. ワークベンチの[プロジェクトエクスプローラ]ビューで、[ShoppingCart] > [ContextRoot]に作成したJSPファイルが生成されていることを確認してください。
JSPエディタを使用して以下のJSPファイルを編集します。
15. ワークベンチの[プロジェクトエクスプローラ]ビューで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> |
16. ワークベンチのメニューから[ファイル] > [すべて保存]を選択し、編集したファイルを保存します。
EJBを呼び出すために、DDエディタを使用して参照EJBを定義します。
1. ワークベンチの[プロジェクトエクスプローラ]ビューで[ShoppingCart] > [ContextRoot] > [WEB-INF] > [web.xml]を右クリックし、[アプリケーションから開く] > [DDエディタ(Web)]を選択します。
2. [参照EJB]タブを選択し、[参照EJB] > [追加]をクリックしてEJBを呼び出すための以下の情報を入力します。
項目名 |
入力値 |
---|---|
Beanの参照名 |
ejb/TutorialBean |
Bean種別 |
Session |
Homeインタフェース名 |
pkgTutorialBean.TutorialBeanHome |
Remoteインタフェース名 |
pkgTutorialBean.TutorialBeanRemote |
Bean名 |
TutorialBean.jar#TutorialBean |
3. [ファイル]タブを選択し、[welcomeファイル] > [追加]をクリックして、[ファイル名]に次のファイル名を入力します。
4. 次のファイル名を選択し、[削除]をクリックして削除します。
5. ワークベンチのメニューから[ファイル] > [保存]を選択し、編集したファイルを保存します。
目次
![]() ![]() |