1. Top » 
  2. Eclipse

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【Java】複数のサーブレットを組み合わせるための画面遷移の話

サーブレットから他のリソースへリクエストを転送することをディスパッチといいます。
英語の綴りはdispatchです。
リソースとは平たく言えば、他のサーブレット、JSP、HTMLなどのことです。
サーブレットではjavax.servlet.RequestDispatcherインタフェースによってディスパッチを行います。

ところでディスパッチにはフォワードインクルードの二つがあります。
フォワードの場合、転送先のリソースに出力を任せます。
インクルードの場合、転送先のリソースの出力をインクルードします。
それぞれforward/includeのメソッドで行い、request/responseを渡します。
ここではよく使うforwardの方を使ってみます。

サーブレット→サーブレット
hogeプロジェクト→Java Resources:src→hoge右クリック→ForwardServlet1.java
hogeプロジェクト→Java Resources:src→hoge右クリック→ForwardServlet2.java

ForwardServlet1の方には次のように書きます。
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
RequestDispatcher dis = request.getRequestDispatcher("/ForwardServlet2");
dis.forward(request, response);
}


ForwardServlet2の方には次のように書きます。
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/plain; charset=Windows-31J");
response.getWriter().println("Servlet2からの出力");
}


実行はForwardServlet1の方を実行します。右クリック→Run As→Run on Serverです。
すると次のように実行されます。

j2ee_08_01.jpg

このようにサーブレット2からの出力が表示されます。


ところで
サーブレット→JSPの場合、リンク(Stringで与えられている)をjspへのリンクに変えればいい。
またフォワードされる前のサーブレットからは出力処理をしません。
出力処理、つまりresponseへの処理はバッファに一度蓄えられているのですが
フォワードしたときにバッファがクリアされてしまって反映されません。
ですので出力処理はすべてフォワードされた後のサーブレットで行います。



category of Haskell:
Java】サーブレット/JSPを書く勉強をするための環境について知っていること(一回目)
Java】サーブレット/JSPを書く勉強をするための環境について知っていること(二回目)
Java】開発環境を活用してサーブレットを書く。
Java】サーブレットの基本的な話をする
【Java】JSPの話へと移る
【Java】JSPからサーブレットを呼び出す
【Java】パラメータを渡す
スポンサーサイト

【Java】パラメータを渡す

JSPサーブレットの連携が出来ることは分かりました。
これを利用して、HTML上のフォームなどを入れたJSPサーブレットの連携によって
そのパラメータを取得できます。

hogeプロジェクト→Java Resources:src→hoge右クリック→ParamServletの新規作成
hogeプロジェクト→Web Content右クリック→ParamJSP.jspの新規作成


それぞれ次のように書きます。

JSP
<body>
<h2>パラメータを引き渡す</h2>
<form action="/hoge/ParamServlet">
<input type="TEXT" width="180" name="text"></input>
<input type="submit"></input>
</form>
</body>


formというHTMLの構文はよく使うものです。
たとえばテキスト、テキストエリア、ラジオボタン、チェックボックスなどがあります。
そのACTIONという属性にサーブレットへのリンクを設定します。
これによってサーブレットを呼び出します。

サーブレット
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String msg = request.getParameter("text");
response.setContentType("text/plain; charset=Windows-31J");
response.getWriter().println("text: " + msg);
}


今までrequest、つまりブラウザ→プログラムという方向は利用していませんでした。
パラメータを引き渡すような処理ではこの部分を利用します。
requestからJSPのフォームのうち、nameという属性で指定した名前を用いることで
パラメータの取得を行うことが出来ます。

request.getParameter(名前)


これを実行すると次のようになります。

j2ee_07_01.jpg

入力すると

j2ee_07_02.jpg

渡される。

このようにJSPサーブレットという方向でパラメータを渡せるようになりました。
ただし日本語を入れると文字化けするので

request.setCharacterEncoding("Windows-31J");


という設定が必要です。
※実際にはこれだけでは文字化けするかもしれません
※設定で直るはずなのですが、少し再現出来なくて対策なし

【Java】サーブレット/JSPを書く勉強をするための環境について知っていること(二回目)

さて、前回の記事で環境をダウンロードして、解凍するまできました。
今回はこれを使って開発のテストを行っていきます。

1.まずはじめに
まずはじめにEclipseを立ち上げる。
(次のようなスプラッシュウィンドウが出る。表示はEclipseのバージョンによって異なる)
j2ee_02_01.jpg

初回起動時、次のようにどこにファイルなどを保存するかの指定が出来る。
これをWorkspaceといいます。前回作ったフォルダjavasrcを指定する。
また左下のチェックボックスにチェックを付けておくと、この場所で固定されます。
二回目以降も聞かれるのは多少面倒なので、とりあえず固定しておくといいです。
j2ee_02_02.jpg

さて、次のような画面が初期画面です。昔と比べて少し変わりましたね。
この画面に来たら、とりあえず右上の矢印を選んでください。Workbenchへ飛びます。
ワークベンチというのは、いわゆるプログラムを開発する画面のことです。
j2ee_02_03.jpg

そして次のようになります。ここまで来ると最初の段階が終わりです。
j2ee_02_04.jpg


2.Tomcatの設定をする
次にEclipseからTomcatをうまく利用するために設定する。
まずFile→New→Otherと進む。
j2ee_02_05.jpg

するとダイアログが出てくるので、この中のServerを選んでNextへ。
j2ee_02_06.jpg

Next後、Serverの種類としてApacheからTomcatのv5.5を選びNextです。
j2ee_02_07.jpg

基本的に設定はデフォルトでいいのですが、Installed Directoryとして
Apache Tomcat v5.5をダウンロードして解凍した場所を指定しておく。
j2ee_02_08.jpg

こうすることで下のView内のServerに今のServerが出てきます。
出てきていない場合はWindows→Show Vier→Serverを選んで出しておきます。
j2ee_02_13.jpg

ここからサーバを右クリックし、Startを選択します。
初回起動時、次のようにFirewallに引っかかるというメッセージが出るので、ブロックを解除します。
j2ee_02_14.jpg

ブロックを解除した後、再び右クリック→Restartとします。
その後ブラウザにてhttp://localhost:8080/にアクセスすると次のような画面が出ます。
(もしかしたら真っ白ページかもしれません)
いずれにしてもTomcatが起動していることが分かります。
j2ee_02_15.jpg

以上で基本設定を終わります。
SqliteやJDBCドライバはすぐには利用しないのでとりあえず保留です。
次回は実際にサーブレットとJSPを書きます。



category of Java:
【Java】サーブレット/JSPを書く勉強をするための環境について知っていること(一回目)

【Java】サーブレット/JSPを書く勉強をするための環境について知っていること(一回目)

普段Javaのプログラムを書くとき、基本的にはEclipseを使うことが多い。
ごくまれにEmacsを使って書いているときもありますが、いちいちAPIを引くのも大変なので
コードアシスト&自動整形(Ctrl+Shift+F)がとても便利に感じられる。

サーブレット/JSPはサーバ上で動くJavaプログラムのようなモノで動的なもの。
動的なものというのは、要するにアクセスしたいという要求を出してからサーバ上で実行されるということ。
普通のWebページなどははじめからファイルがサーバ上においてある静的なものということになる。

サーブレットやJSPの開発するときに、プログラムを動作させるためにTomcatというプログラムを使う。
またサーブレットを開発すると、web.xmlを記述したり、適切な場所に配置したり、Tomcatを管理したりと
いろいろとやることが多くて、如何せん取っつきにくい。
(単純に言えば、本を見たりサイトを見て勉強する段階でこの捜査が面倒だ。)

というわけでEclipseの出番になるのだが、Eclipseを用いるとこういった作業を意識せずに
サーブレット/JSP開発をすることが出来るようになると考えていい。
というわけでその環境を整えるということについて知っていることをまとめた。



まずはじめに必要なものを取ってくる。
具体的に言うと

  • Eclipse本体(必要なら日本語化に必要なモノ。今回は使わない)
  • DBのソフト、今回はsqlite 3
  • DBに接続するためのJDBCドライバというもの
  • プログラムを動作させるTomcat本体
  • ※Java SDKがインストールされているパソコン
  • ※Javaの最低限の知識

この4つを準備する。(下二つはとりあえず前提)
以下、アクセス先は09年の09月15日現在です。

1.Eclipseの準備
アクセス先はhttp://www.eclipse.org/downloads/になる。
公式サイト、ダウンロードからEclipse IDE for Java EE Developers (189 MB)をダウンロード。
日本語化したい場合はEclipseのWikiなどを参考にする。
j2ee_02.jpg


2.Tomcatの準備
アクセス先はhttp://tomcat.apache.org/download-55.cgiになる。
とりあえずverとして5.5系を使うことにする、たぶん6.x系でも大丈夫。
とりあえず扱いやすいこともあってzipファイルをダウンロード。
j2ee_04.jpg


3.Sqlite&JDBC
これは別に必須ではないけれども、こういったアプリではDBへ接続するというのをよくやるのでとりあえず。
有名どころとしてはMySQLとPos・・・の2つがあるのだけれども、簡単に使えるSqliteを使う。
アクセス先はhttp://www.sqlite.org/download.htmlになる。
同様にzipをダウンロード、中には実行ファイルがただひとつ入っている。
j2ee_03.jpg

JDBCドライバのアクセス先はとりあえずhttp://www.zentus.com/sqlitejdbc/ここです。
JDBCにはいろいろ種類があるらしく、別にどれでもいいのですが、たまたまこれを使います。
j2ee_05.jpg

以上でダウンロード完了です。
おそらくEclipseのダウンロードが一番かかるはず。


配置&解凍などの作業
とりあえずblog用に環境を作りますので好きな場所に解凍してください。
今回はF:\blog_j2ee\以下に配置しています。

j2ee_06.jpg

解凍します。
またjavasrcというフォルダを作っておきます。

j2ee_07.jpg

以上で配置完了です。
次は開発環境をさらに整えていきます。

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。