サーブレット:第五編【seesion】

2335 ワード

1.sessionの基本概念
sessionは別のセッション技術です.違いはCookieがブラウザに保存され、sessionがサーバに保存されていることです.ユーザがブラウザを使用する場合,サーバはユーザの情報を何らかの形でサーバに記録する.Cookieよりもsessionの方が使いやすくて柔軟で、Cookieは文字列しか保存できず、sessionはオブジェクトを保存できます!
2.session常用API
  • long getCreationTime();【Session作成取得時間】
  • String getId();【Sessionのid取得】
  • long getLastAccessedTime();【セッションの最後のアクティブな時間に戻る】
  • ServletContext getServletContext();【サーブレットContextオブジェクトの取得】
  • void setMaxInactiveInterval(int var1);【セッションタイムアウトの設定】
  • int getMaxInactiveInterval();【セッションタイムアウト取得】
  • Object getAttribute(String var1);【Sessionプロパティの取得】
  • Enumeration getAttributeNames();【Sessionのすべての属性名の取得】
  • void setAttribute(String var1, Object var2);【Sessionプロパティの設定】
  • void removeAttribute(String var1);【Sessionプロパティの削除】
  • void invalidate();【このセッションの破棄】
  • boolean isNew();【このセッションが新しいか】
  • セッションドメインオブジェクト
    sessionはドメインオブジェクトとして破棄されなければservlet間で通信を実現できる.
    //   session  
     HttpSession session = request.getSession();
    //  session  
    session.setAttribute("name","Test");
    

    上記の値を取得
    //   session  
     HttpSession session = request.getSession();
    String value = (String)session.getAttribute("name");
    

    セッションはいつ使いますか?一般的に、ユーザーレベルのデータを保存するにはsessionを使用します.ブラウザが閉じない限り、データがまだsessionを使用することを望んでいます.
    3.sessionライフサイクルと有効期間
    1.sessionは、ユーザがサーバのservlet、jspなどの動的リソースに初めてアクセスするときに作成され、サーバのメモリに保存する(HTML、IMAGEなどの静的リソースにアクセスすると作成しない).セッション生成後、ユーザはアクセスを継続し、セッションを読み書きするかどうかにかかわらず、サーバはセッションが一度アクティブになったと考えられる.メモリオーバーフローを防止するために,サーバは長時間アクティブでないセッションをメモリから削除する,この時間はセッションのタイムアウト時間である.セッションのデフォルトのタイムアウト時間は30分で、次の3つの方法で時間を変更します.
  • Tomcat/conf/web.xmlでの構成
  • 
        20
    
    
  • プロジェクトのweb.xmlで
  • を設定
    
        20
    
    
  • setMaxInactiveInterval()
  • を通過
    4.Cookieとsessionの比較
    1.有効期間が異なる.セッションサイクルとは、アクティブでない時間を指します.例えば私たちは10 Sを設定して、10 S内でsessionが活発でなければ、失効します.ただし、9 Sのときにセッションを使用すると、再計算、再起動、サーバのシャットダウン、またはWebアプリケーションのセッションの再ロードも無効になります.クッキーのライフサイクルは累積時間で計算されます.Cookieはクライアントに格納され、sessionはサービス側にある.サーバへの負担比較.コンカレント量が大きすぎるとsessionはメモリを大量に消費します.一般的にcookieを使用することをお勧めします.
    先にここに着いて、後でプロジェクトの応用を更新します~