ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

サーブレット部分をパターン化、自動生成すると、生産性は上がると思う(2)

2007-08-02 13:25:56 | 開発ネタ

 以前、パラメータごとにとってきて、その処理をサーブレット内で書いて、出力もそこでやるより、

(1)画面からの入力は
    ・すべてのパラメーターをハッシュマップに入れる
    ・セッションも、そのハッシュマップに入れる

(2)処理は、そのハッシュマップを、POJOクラスのメソッド
   にわたす(そのクラス、メソッドは任意。
   なので、そこの呼び出しは書く)

(3)画面への出力は
    ・JSPなら、セッションに値を渡す
    ・XMLなら、ハッシュマップに入れている値からとってくる


すれば、自動化できるということを書きました。

今回はその2回目、「(1)画面からの入力は」について




■セッションとパラメータをすべてハッシュマップに入れる

 サーブレットのセッションとパラメータをすべて、ハッシュマップに入れてしまう(要するに、サーブレット版、カオル姫方式)。
 そうすれば、ハッシュマップをモデルに渡して、モデルのほうでは、サーブレット関係無しに処理できる。
 テストのときにも、サーブレットの再起動がないので便利便利。。

 っていうことで、前にも書いたかもしれないけど、「セッションとパラメータをすべてハッシュマップに入れる」処理は、こんなかんじ。。

/*
 * インポート部分は省略
 */
public class sample extends HttpServlet {
	/*
	 * メソッド:service<BR>
	 * だけど、今日の部分はdoPost,doGetでもおなじだよ
	 * 
	 */
	public void service(HttpServletRequest request, 
                      HttpServletResponse response) 
                          throws ServletException, IOException {

		//	データを入れるところ宣言
		HashMap	map	=	new HashMap();

		//======================================//
		//	セッション開始		  //
		//======================================//
	 	HttpSession session = request.getSession(true);

		//======================================//
		//セッションデータを全部ハッシュマップに//
		//======================================//
		Enumeration	namelist;
		namelist = session.getAttributeNames();
		if ( namelist	!=	null )
		{
			while(namelist.hasMoreElements() == true )
			{
				String key = (String)namelist.nextElement();
				map.put(key,session.getAttribute(key));
			}
		}
		
		//======================================//
		// 引数のデータを全部ハッシュマップ  //
		//======================================//
		Enumeration	namelist2;
		request.setCharacterEncoding("utf-8");
		namelist2 = 		request.getParameterNames();
		if ( namelist2	!=	null )
		{
			while(namelist2.hasMoreElements() == true )
			{
				String key = (String)namelist2.nextElement();
				map.put(key,request.getParameter(key));
			}
		}

/*
 * 以降、省略(というか、次回以降に続く)
 *

(上記< > = は、本当は半角)

引数はUTF-8の場合です。




ってことで、(1)はおしまい。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« オープン型のOSを使った情報... | トップ | XSSのエスケープについてなど... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事