プログラム

(秘)JavaServlet技法

初心者から上級者まで。Java言語によるプログラミングの真髄をレクチャーします。Webシステム開発のエキスパート「株式会社 慶」が発行。

全て表示する >

(秘)JavaServlet技法

2004/11/10

*************************************************************************
_/_/_/_/_/_/_/_/_/_/_/_/_/  (秘)JavaServlet技法  _/_/_/_/_/_/_/_/_/_/_/_/
*************************************************************************
第117号  2004/11/08 発行現在の購読者数:4397
  ▼  Servlet技法:第117回
  ▼  コラム
  ▼  次回予告
  ▼  編集後記
  ▼  編集長からのお知らせ

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  Servlet技法:第117回
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
今回はTomcatと連携して使うwebサーバー、Apacheについて簡単に
お話したいと思います。



↓前回までの記事はこちら↓
http://www.kei-ha.co.jp/mag.html


↓ご意見・ご質問はこちらから↓
mag@kei-ha.co.jp


お久し振りです。リンこm(_ _)mです。
今回は、セッション(Session)についての演習を行いましょう!
セッションとはなんぞやというのは、
04/07/12発行の第101回メルマガ(http://www.kei-ha.co.jp/mag/mag0101.html)
04/07/26発行の第103回メルマガ(http://www.kei-ha.co.jp/mag/mag0103.html)
書いてあるので、概念は掴んでおいてくださいね♪
一言で言えば「クライアントが行う一連の行動」がセッションです。
ではでは、さっそく演習に行きましょう(^0^)/

◆実行環境フォルダの作成
以下のようにCドライブ直下にフォルダを作成してください。
C:.
├─tom
│  └─WEB-INF
│      └─classes

◆Tomcatの設定(指定のURLでアプリケーションを呼び出す設定)
  ・Tomcatのインストールが済んでいる場合は設定ファイルの変更をします。
    ※インストールが済んでいない方は下記のURLを参考にしてください。
      http://www.kei-ha.co.jp/mag/mag0054.html
      ※現最新バージョンは5.0.28です。

  ・c:\jakarta-tomcat-5.0.28\confの直下にある、
    server.xmlを開き

    <!-- TOM Context -->
    <Context path="/tom" docBase="c:/tom" debug="0"
             reloadable="true" crossContext="true">
      <Logger className="org.apache.catalina.logger.FileLogger"
              prefix="localhost_tom_log." suffix=".txt"
              timestamp="false"/>
    </Context>


◆Servletの作成(SessionStart.java, SessionGet.java, SessionEnd.java)
・以下の内容でを作成し、classesフォルダ直下に配置してください。
  フォルダに格納したら、コンパイルを実行しSession.classが作成されるのを
  確認して下さい。

★セッションを開始するサーブレット↓
-------------------------- SessionStart.java --------------------------
import java.io.* ;
import java.util.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class SessionStart extends HttpServlet {
  //HTTP リクエストの処理
  public void service(HttpServletRequest request,
                      HttpServletResponse response)
                        throws ServletException, IOException {

    // セッションを開始します
    HttpSession session = request.getSession(true) ;
    // セッションに情報を設定します
    session.setAttribute("MESSAGE" , "今日はセッションをお勉強!") ;

    response.setContentType("text/html; charset=Shift_JIS") ;
    PrintWriter out = response.getWriter() ;
    out.println("<html>") ;
    out.println("<head>") ;
    out.println("<title>セッションの開始</title>") ;
    out.println("</head>") ;
    out.println("<body>") ;
    out.println("セッションを開始しました(^0^)/") ;
    out.println("</body>") ;
    out.println("</html>") ;
  }
}
-------------------------- SessionStart.java --------------------------

★セッション情報を取得するサーブレット↓
-------------------------- SessionGet.java --------------------------
import java.io.* ;
import java.util.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class HelloWorldTestSession extends HttpServlet {
  //HTTP リクエストの処理
  public void service(HttpServletRequest request,
                      HttpServletResponse response)
                        throws ServletException, IOException {

    String msg = null ;

    // セッションを取得します
    HttpSession session = request.getSession(false) ;
    if (session == null) {        // セッションが存在しない場合
      msg = "セッションは存在していませんでした。" ;
    } else {                      // セッションが存在する場合
      // 設定されているデータを取得
      String message = (String)session.getAttribute("MESSAGE") ;
      msg = "セッションがあるみたいですね〜!<br>" +
            "セッションに設定されているメッセージ:<br>" +
            "<b>" + message + "</b>" ;
    }

    response.setContentType("text/html; charset=Shift_JIS") ;
    PrintWriter out = response.getWriter() ;
    out.println("<html>") ;
    out.println("<head>") ;
    out.println("<title>セッションの取得</title>") ;
    out.println("</head>") ;
    out.println("<body>") ;
    out.println("セッション情報を取得しましたo(^0^)o") ;
    out.println(msg) ;
    out.println("</body>") ;
    out.println("</html>") ;
  }
}
-------------------------- SessionGet.java --------------------------

★セッションを終了するサーブレット↓
-------------------------- SessionEnd.java --------------------------
import javax.servlet.* ;
import javax.servlet.http.* ;
import java.io.* ;
import java.util.* ;

public class HelloWorldEndSession extends HttpServlet {

  //HTTP リクエストの処理
  public void service(HttpServletRequest request,
                      HttpServletResponse response)
                        throws ServletException, IOException {

    // セッションを取得します
    HttpSession session = request.getSession(false) ;

    // セッションが存在する場合
    if (session != null) {
      session.invalidate() ;  // セッションを無効にします
    }

    response.setContentType("text/html; charset=Shift_JIS") ;
    PrintWriter out = response.getWriter() ;
    out.println("<html>") ;
    out.println("<head>") ;
    out.println("<title>セッションの終了</title>") ;
    out.println("</head>") ;
    out.println("<body>") ;
    out.println("セッションを終了させましたm(_ _)m") ;
    out.println("</body>") ;
    out.println("</html>") ;
  }
}
-------------------------- SessionEnd.java --------------------------

◆完成!!
  ここまで終了すれば準備は完了です。
  実際にURLを指定して呼び出してみましょう。

  ・Tomcatを起動する。
    c:\jakarta-tomcat-5.0.28\binのstartup.batを起動する。

  ・ブラウザを起動してURLを指定しそれぞれのページを開く
    http://localhost:8080/tom/SessionStart
    http://localhost:8080/tom/SessionGet
    http://localhost:8080/tom/SessionEnd

   →結果はどうでしょうか?
     各ボタンを押すとそれぞれのページが表示されましたでしょうか?

◆ポイント
  ・getSession()
    引数にtrueを指定することで現在のセッションが存在しない場合に新しい
    セッションが生成されます。
  ・setAttribute()
    セッションに情報を設定できます。
  ・getSession()
    引数にfalseを指定することで新しいセッションを作成しなくなります。
    セッションが存在しない場合にはnullが返ってきます。
  ・getAttribute()
    セッションに設定されている情報を取得できます。
  ・invalidate()
    セッションを無効にすることができます

今回は少し長かったかもしれませんね?お疲れ様でした!
では、また来週(^-^)/~~~
                                                                  りんこ

----☆PR☆---------------------------------------------------------------
  オブジェクト指向を勉強したい!,Javaを勉強したい!
  メールマガジン『JavaScript&Javaで目指そう!基本情報技術者試験』
を購読してますか?  (無料)執筆は,宿題メールでおなじみの斎藤末広
  登録  http://www.mag2.com/m/0000066251.htm
  詳細  http://www.3721p.com/java/jmaga/
---------------------------------------------------------------☆PR☆---
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  コラム
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Internet Explorer(IE)に搭載されているのは「JavaScript」ではなく「JScript」
というスクリプト言語です!皆さん知っていました?私も最近知りました(^^;
皆さんがよく口にする「JavaScript」はNetscapeの独自拡張なのです。
IEに組み込まれているものはJavaScriptではありません。
現在ではほぼ同一の動作が行われているので、意識することは無かったと思います。
ちなみに「Java」と関係はないことは有名なので説明はしませんよ〜。
もうちょっとだけJScriptについて説明すると、JScriptはMicrosoftが開発した
JavaScript互換のスクリプト言語です。
ウェブ閲覧ソフトでMicrosoftのライバルで社あるNetscapeが、Sunと共同で開発した
のがJavaScriptです。それまで静的なものであったウェブを動的に変えた画期的な技術
でした。
Microsoftは、どうにかしてIEにも組み込もうとしましたが、ライバル会社のNetscape
が認めるわけがありません。そこで、Microsoftは独自に開発して互換性のあるスクリプト
言語を生み出したのです。それが、皆さんがJavaScriptと思っていた、JScriptなのです。
まあ豆知識程度のもので、だからなにって感じのものではあるのですがね〜

                                                                    りんこ
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  次回予告
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  □  Servlet技法:118回
  □  コラム
  □  次回予告
  □  編集後記
  □  編集長からのお知らせ
      次号は、11月15日発行予定です。乞うご期待!!
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
  編集後記
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

ぎゃーーーーーーー!

発行が遅れてしまいましたーーーーー
申し訳ございません(ノ_・。)

というわけで、今回よりちょっと編制が変わりました。
またまた新たな切り口で
みなさまのためになるメルマガを発行していきまっす

そんなこんなでよろしくお願いしまーす
そして、今回の遅延にお許しを…('A`)

                              ゆーいち

*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
              *  *  *  編集長からのお知らせ  *  *  *
*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
◆━◇ PR ◇━◆
□■□-------------------------------------------------------------------
■◇■モバイルコマースなら「K-CODE」http://kcode.jp/kcode/index.html
□■□-------------------------------------------------------------------

  ┏━━━━━━━━━━━━┓
  ┃携帯メルマガサイト誕生!┃
  ┗━━━━━━━━━━━━┛
  ☆☆☆お気楽"無料"マガジンサイト『プッチマガ』☆☆☆
  登録も配信もラクラク♪3分でメルマガ配信できちゃう!

  ●●●今週のオススメ『プッチマガ』●●●
  真のSEに贈る、品質管理のノウハウ集
  【品質の番人】!これまで誰も書かなかった
  「システムの品質を実現する方法」を具体的に伝授します。
  登録はもちろん無料!毎週火曜日発行です。

  ↓メルマガ購読&登録はコチラ
  http://kcode.jp/pmag/index.html 提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃あなたのソースを再チェック┃
  ┗━━━━━━━━━━━━━┛
  ☆KSCCでJava、HTML、SQL等々ソースコードを総チェック!☆
  ・性能劣化の原因となるロジックの自動検出機能
  ・プログラムのステップ数計測(Javaは実ステップ数も)
  etc。。他にも機能満載!↓無料お試し&ご注文はコチラ
  ☆近々バージョンアップ予定!☆
  http://kcode.jp/shop/ks 提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━┓
  ┃ソフトウェア業界航海術┃
  ┗━━━━━━━━━━━┛
  ソフトウェア業界の本質をまとめました
  「皆に読ませちゃいました」(某中小ソフトウェア会社社長)
  「こういう視点で書かれた本は他にない。」(某フリーSE)
 「バイブル的存在の位置付けとし、業務に対する考え方(自覚)を、
  社員にも広めて行ければと考えております。」(某大手ソフトウェア会社課長)
   http://kcode.jp/shop/ks 提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━┓
  ┃航空ファン要チェック!!┃
  ┗━━━━━━━━━━━━┛
  ♪♪♪航空祭でも出店中!♪♪♪
  新作続々登場!ダイキャストモデルも完成しました!
  T-シャツからお子様用飛行服まで豊富な品揃え!
  一度遊びにきて下さいね♪
   http://kcode.jp/shop/bluemax 提供:BlueMax
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃   (秘)Linuxサーバ      ┃
  ┗━━━━━━━━━━━━━┛
  ☆☆新メールマガジン「(秘)Linuxサーバ」☆☆

    Linux初心者が「Linuxとは何なのか」というところから、
    どのようにしてLinuxサーバを構築していけば良いのか
    といったところまで幅広い分野を扱っていくメールマガジンです。
    Linuxに興味をお持ちの方は、ぜひご購読ください。

    ↓ご登録はこちらから↓
    http://www.kei-ha.co.jp/magmenu.html  提供:株式会社慶
-------------------------------------------------------------------------
  ┏━━━━━━━━━━━━━┓
  ┃  (秘)データベース構築術  ┃
  ┗━━━━━━━━━━━━━┛
  ☆☆新メールマガジン「(秘)データベース構築術」☆☆

「DBをやってみたいけど〜」と思っていた方、今回を機に登録してみてください。
気づいたらDBを構成できるようになっているはずです。

http://www.kei-ha.co.jp/magdb.html  提供:株式会社慶
-------------------------------------------------------------------------
   ┏━━━━━━━━━━━━━┓
   ┃ソフトウェア業界 新航海術┃
   ┗━━━━━━━━━━━━━┛
 ☆☆メールマガジン「ソフトウェア業界 新航海術」☆☆
 中小ソフトウェア会社経営者のみならず技術者、管理職必見のメルマガです!!
 技術と経営(財務、法務、人事)の両面で会社と従業員が現実に直面している
 切実な問題の本質を明らかにし、解答を与えます。
 今すぐ→ http://kei-it.com/sailing/  提供:株式会社慶
-------------------------------------------------------------------------
∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞〜∞

                  このメールマガジンは、

                  まぐまぐ
                  http://www.mag2.com/

                  melma!
                  http://www.melma.com/

                  Macky
                  http://macky.nifty.com/index.htm

                  カプライト
                  http://kapu.biglobe.ne.jp/index.html

                  を利用して発行しています。

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
        「(秘)JavaServlet技法」は株式会社慶が発行しています。
                  http://www.kei-ha.co.jp/mag.html
             ご意見・ご質問等はこちら→mag@kei-ha.co.jp
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2001-10-02  
最終発行日:  
発行周期:毎週月曜発行  
Score!: - 点   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。