2010年9月27日月曜日

Jsp/Servletのスコープ

リクエストスコープの有効範囲は1つのリクエストが終わるまでの間です。
セッションスコープは同じクライアント間が有効範囲です。
アプリケーションスコープはWebアプリケーション内で有効です。リクエストやセッションが違っても有効です。また、アプリケーションコンテキストと呼ばれます。

■getAttribute(String name)での値はObjectで帰ってくるので、必要に応じてキャスト
行う、

■セッションIDとカウンター
package session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import sun.net.www.content.text.plain;

public class CounterServlet extends HttpServlet
{
    public void doGet(HttpServletRequest request,
        HttpServletResponse response)
        throws ServletException, IOException
    {
        HttpSession session = request.getSession();//セッションの取得
       
        Integer count = (Integer) session.getAttribute("count");//セッションかたcountの取得
       
        if(count == null)//nullなら0を代入        {
            count = new Integer(0);
        }
        count = new Integer(count.intValue() + 1);//カウントUP
       
        session.setAttribute("count", count);//セッションに格納
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
       
        pw.print("<p>sessionIdは" + session.getId() + "</p>");//セッションIDの取得       
        pw.print("<p>" + count + "</p>");//カウントの表示       
    }
   
}

0 件のコメント:

コメントを投稿