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

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

Javaの画面表示-その18:JSPでセッションを使って、表示部分と処理部分を分ける

2006-11-06 14:55:40 | Weblog

  シリーズJavaの画面表示のつづきです。今、JSPやってます。それも、JSPでMVCに分けるための、要素技術についてです。
 前回フォワードをやりました。今回はセッションを使います。

 これで、JSPのカオル姫方式版ができます。
 カオル姫方式というのは、ここのブログでいっている話で、MVCのすべてのメソッド間で共有する共通領域を持っておき、その領域から、値を取り出したりセットすることによって、メソッドをMVCにわけるという方法です。

 ということで、今日はセッションです。




■JSPのセッションのやりかた

JSPのセッションのやりかたは、こんなかんじだと思う

1.とりあえず<%@ page session="true" %>をかく。
  そうすると、セッションがあれば、そのセッションをわたし、もしなければ、新規に作る

2.そうすると、sessionという変数が(宣言してなくても、この変数は使える)
  sessionになるので、
    session.setAttribute(項目名,値);
  でセッションに値を設定し
    値 = (キャストする型)session.setAttribute(項目名);
  でセッションの値を取得できる。

3.その他は、サーブレットと同じである。





■今日のお題

 そこで、index.jspが仮にコントローラー&モデルだとして、
   1、username、title、msgを設定し
   2、画面(View)部分のJSP(test2.jsp)で、
     セッションの値を取得し、表示する
 ってことを考える。




■ソース

そうすると、ソースはこんなかんじ(赤字の部分が、セッションの話)

●コントローラー&モデル部分(index.jsp)
<html>
<head>
<title>Hello World JSP</title>
</head>
<body>
<%@ page session="true" %>
<%
		//==============================//
		//	セッションを設定する   //
		//==============================//
	session.setAttribute("username","ウィリアムのいたずら");
	session.setAttribute("title","テスト");
	session.setAttribute("msg","ハローワールド");

		//==============================//
		//	ビューにフォワード     //
		//==============================//
application.getRequestDispatcher("/jsp/test2.jsp").forward(request,response);
%>
</body>
</html>

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




●View部分(test2.jsp)
<html>
<head>
<title>Hello World JSP</title>
</head>
<%@ page session="true" %>
<%
		//==============================//
		//	セッションを受け取る   //
		//==============================//
	String username = (String)session.getAttribute("username");
	String title	= (String)session.getAttribute("title");
	String msg	= (String)session.getAttribute("msg");
%>
<body>
<H1><%=title%></H1>
<BR>
<B><%=username%></B>さんへ<BR>
<%=msg%>
</body>
</html>

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

なお、今回の話題とは直接は外れるが(次回以降の話題)
View(=画面表示)の部分は、セッションの部分と表示部分を分離し、
必要な変数を、セッションからとってくる部分をまとめて書いてしまい、
VIEWのところは、その取得した変数を使って、書き出すようにしておくと
(上記の例)いろいろと、やりやすい。




てなことで、次回のこのシリーズに続きます。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 仕様書からプログラムソース... | トップ | ロボットも人もコンピュータ... »
最新の画像もっと見る

Weblog」カテゴリの最新記事