■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
                      2008年04月13日

    楽しいJava講座 - 初心者から達人へのパスポート
                  vol.099

                                セルゲイ・ランダウ
 バックナンバー: http://www.flsi.co.jp/Java_text/
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■


[このメールマガジンは、画面を最大化して見てください。]


========================================================
◆ 01.Tomcatのアプリケーション開発
========================================================


最後に下記のようなuserInfo.jspをitemSelect.htmlと同じ場所に
作成してください。
--------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="Shift_JIS" %>

<HTML>
<HEAD>
<TITLE>ユーザー登録完了</TITLE>
</HEAD>
<BODY bgcolor="#77ffff" text="#fa5a00">

<%@ page import="jp.co.flsi.lecture.webapp.entity.*" %>
<jsp:useBean class="jp.co.flsi.lecture.webapp.entity.Customer" id="CUSTOMER" scope="session" />

<H1>ユーザー登録完了</H1>
ユーザーID(<%= CUSTOMER.getNum() %>)の登録が完了しました。
<BR>
<BR>
商品の検索のページに進むには「商品を検索する」ボタンをクリックしてください。
<BR>
注文手続きを進めるには「注文手続きに進む」ボタンをクリックしてください。
<BR>
<FORM action="../itemSelect.jsp" method="POST">
<INPUT TYPE="submit" NAME="shopping" VALUE="商品を検索する">
</FORM>
<FORM action="../confirmOrder.jsp" method="POST">
<INPUT TYPE="submit" NAME="checkout" VALUE="注文手続きに進む">
</FORM>
<BR>
<BR>
</FORM>
</BODY>
</HTML>
--------------------------------------------------------

ここでは、「商品を検索する」ボタン、「注文手続きに進む」ボタンの
どちらのボタンをクリックしてもそれぞれJSPを呼び出すようにしています。
普通なら、このように直接JSPを呼び出すのではなく、Webページからは
サーブレットを呼び出して、サーブレットに処理の流れをコントロールして
もらうべきなのですが、ここでは、(Webページから直接JSPを呼び出すことも
できるという)技術の説明のために直接JSPを呼び出すようにしています。


では、ここで呼び出されるitemSelect.jspを作成しましょう。
itemSelect.jspは下記のように作成して下さい。
(いつものようにitemSelect.htmlと同じ場所に作成します。)
--------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS" %>

<HTML>
<HEAD>
<TITLE>商品の検索</TITLE>
</HEAD>
<BODY bgcolor="#77ffff" text="#fa5a00">
<H1>商品の検索</H1>

<%@ page import="jp.co.flsi.lecture.webapp.entity.*" %>
<jsp:useBean class="jp.co.flsi.lecture.webapp.entity.Customer" id="CUSTOMER" scope="session" />

<%= CUSTOMER.getName() %>様、INTSHOPへようこそ。
<BR>
<BR>

<FORM action="servlet/items" method="POST">
キーワード(商品名の一部)とカテゴリーを入力し、「送信」ボタンをクリックしてください。
<BR>
<BR>
キーワード:<INPUT TYPE="text" NAME="itemName" VALUE="" SIZE=20>
<BR>
カテゴリー:<INPUT TYPE="text" NAME="category" VALUE="" SIZE=20>
<BR>
<BR>
<INPUT TYPE="submit" NAME="sumit" VALUE="送信">
</FORM>
</BODY>
</HTML>
--------------------------------------------------------


confirmOrder.jspのほうは既に作成してありますね。



では、続いて、既存のWebページを修正して、ユーザー登録のページを呼び出せる
ようにしましょう。

まず、order.jspを下記のように編集し、ユーザー登録が済んでいない人に
ユーザー登録を促すようにしましょう。

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

<HTML>
<HEAD>
<TITLE>購入手続き</TITLE>
</HEAD>
<BODY bgcolor="#77ffff" text="#fa5a00">
<H1>購入する商品</H1>
<FORM action="confirmorder" method="POST">
<TABLE border="1" width="100%">
  <TBODY>
    <TR>
      <TH>商品番号</TH>
      <TH>商品名</TH>
      <TH>価格</TH>
      <TH>カテゴリー</TH>
      <TH>購入個数</TH>
    </TR>

<%@ page import="jp.co.flsi.lecture.webapp.entity.*" %>
<% int totalPrice = 0; %>
<jsp:useBean class="jp.co.flsi.lecture.webapp.entity.Order" id="ORDER" scope="session" />
<% OrderItem anOrderItem;
for (int i = ORDER.getOrderItems().size() - 1; i >= 0 ; i--) {
anOrderItem = ORDER.getOrderItems().elementAt(i); %>
<TR>
      <TD><%= anOrderItem.getNum() %></TD>
      <TD><%= anOrderItem.getName() %></TD>
      <TD><%= anOrderItem.getPrice() %>円</TD>
      <TD><%= anOrderItem.getCategory() %></TD>
      <TD align="right"><%= anOrderItem.getOrderQuantity() %></TD>
    </TR>
<% totalPrice += anOrderItem.getPrice() * anOrderItem.getOrderQuantity();
} %>

  </TBODY>
</TABLE>
<BR>
<TABLE border="1">
    <TR>
      <TH>合計金額:</TH>
      <TH><%= totalPrice %>円</TH>
    </TR>
</TABLE>
<BR>
<BR>
<A href="../userReg.jsp">
ユーザー登録がお済みでない方は、先にここをクリックしてユーザー登録を行ってください。
</A>
<BR>
<BR>
ユーザーIDとパスワードをご入力ください。
<TABLE border="0">
    <TR>
      <TH>ユーザーID:</TH>
      <TD><INPUT TYPE="text" NAME="userId" VALUE="" SIZE=20></TD>
    </TR>
    <TR>
      <TH>パスワード:</TH>
      <TD><INPUT TYPE="password" NAME="password" VALUE="" SIZE=20></TD>
    </TR>
</TABLE>
<BR>
<BR>
<INPUT TYPE="submit" NAME="confirmOrder" VALUE="最終購入確認画面に進む">
</FORM>
</BODY>
</HTML>
--------------------------------------------------------

ここでは、
--------------------------------------------------------
<BR>
<A href="../userReg.jsp">
ユーザー登録がお済みでない方は、先にここをクリックしてユーザー登録を行ってください。
</A>
<BR>
--------------------------------------------------------
という行が追加されただけですね。



では、テストしてみましょう。
EclipseでTomcatを起動し、Webブラウザーを起動して、下記のURLを
入力してください。

http://localhost:8080/JStudy2/itemSelect.html

(1) 「キーワード」欄、「カテゴリー」欄ともに何も入力せずに
「送信」ボタンをクリックしてみてください。

(2) 次のページ(商品リストのページ)で商品をどれか(たとえば「製品001」)
選択(チェック・マークを入れる)し、「選択した商品をカートに入れる」
ボタンをクリックします。

(3) 選択した商品が次のページ(ショッピング・カートのページ)で
リストされていることを確認し、「選択した商品を購入する」ボタンを
クリックします。

(4) 次のページ(購入手続きのページ)で、
「ユーザー登録がお済みでない方は、先にここをクリックしてユーザー登録を行ってください。 」
をクリックします。

(5) 次のページ(ユーザー登録のページ)で、ユーザーIDにTTTT0、パスワードはxxxxx
、氏名に山本山太郎、郵便番号は222-2222、住所はほにゃら県ほにゃら町1-1-1と入力
して、「規約に同意しユーザー登録をする」ボタンをクリックしましょう。

(6) 次のページ(ユーザー登録のページ)で「注文手続きに進む」ボタンをクリック
しましょう。

(7) 次のページで、購入する商品がちゃんとリストされていることを確認し、
商品の送付先を確認しましょう。


おやおや、住所、氏名が文字化けしていますね。
問題:これはなぜでしょう。


答えは次回。


(次回に続く)


では、今日はここまでにします。

何か、わからないところがありましたら、下記のWebページまで質問を
お寄せください。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      http://www.flsi.co.jp/Java_text/
★このメールマガジンは
     「まぐまぐ(http://www.mag2.com)」
 を利用して発行しています。
★バックナンバーは
      http://www.flsi.co.jp/Java_text/
 にあります。
★このメールマガジンの登録/解除は下記Webページでできます。
      http://www.mag2.com/m/0000193915.html
★このメールマガジンへの質問は下記Webページにて受け付けて
 います。わからない所がありましたら、どしどしと質問をお寄
 せください。
      http://www.flsi.co.jp/Java_text/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Copyright (C) 2008 Future Lifestyle Inc. 不許無断複製