■商品データ登録処理をJSP・サーブレット・Beanクラスで実装してみる
*ファイルの構成
・商品データ入力画面---product_touroku.html
・Bean---formBeans.Product.java
・サーブレット---ProductServlet.java(web.xmlにパス情報を登録)
・正常系表示画面---product_kakunin.jsp
・異常系表示画面---product_error.html
@product_touroku.html
商品情報登録
AformBeans.Product.java
package formBeans;
import java.io.Serializable;
public class Product implements Serializable{
private String name;
private String maker;
private int price;
public Product(){
}
public String getMaker() {
return maker;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
public void setMaker(String string) {
maker = string;
}
public void setName(String string) {
name = string;
}
public void setPrice(int i) {
price = i;
}
}
BProductServlet.java
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
import formBeans.Product;
public class ProductServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext sc = null;
try{
//文字コードの設定
request.setCharacterEncoding("Shift_JIS");
//フォーム入力データの取得
String name = request.getParameter("name");
String maker = request.getParameter("maker");
String price_string = request.getParameter("price");
//サーブレットコンテキストの取得
sc = this.getServletContext();
//入力データのチェックとリクエスト情報の転送振り分け
//すべての項目が入力されているならば
if( name.length()!=0 & maker.length()!=0 & price_string.length()!=0 ){
int price = Integer.parseInt(price_string);
//金額が正の値ならば
if( price > 0){
//Productオブジェクト(Bean)の作成
Product pd = new Product();
pd.setName(name);
pd.setMaker(maker);
pd.setPrice(price);
//リクエスト情報に項目(属性名)とオブジェクトデータを新たに設定
request.setAttribute("pdinfo", pd);
//入力データ確認画面へ転送する
sc.getRequestDispatcher("/product_kakunin.jsp").forward(request, response);
}else{//金額が0以下ならば
//エラー画面へ転送する
sc.getRequestDispatcher("/product_error.html").forward(request, response);
}
}else{//未入力項目があれば、エラー画面へ転送
sc.getRequestDispatcher("/product_error.html").forward(request, response);
}
}catch(Exception e){
//上記以外の例外の場合もエラー画面へ転送
e.printStackTrace();
sc.getRequestDispatcher("/product_error.html").forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
Cproduct_kakunin.jsp
<%@ page contentType="text/html; charset=Shift_JIS" %>
入力データ(商品)確認画面
入力データ(商品)確認画面
| 商品名 | メーカー | 税込価格 |
|
|
|
Dproduct_error.html
エラー発生
エラー!
入力データの内容を確認してください.
すべての項目を入力してください.
税込金額は正の整数を入力してください.
★web.xmlファイルに、サーブレット (ProductServlet)の配備情報を記述
productsrv
ProductServlet
productsrv
/productsrv