7、JavaWeb-セッション(クッキー、セッション)
26244 ワード
会話の文字通り:一回のコミュニケーションや会話
Webでは、セッションはブラウザからWebサイトを開くことを表し、このサイトで何を操作してもブラウザを閉じるまで、このプロセスをセッションと呼びます.
セッションの終了方法:クライアントは を閉じる.サービス側は を破棄した.
セッションを処理する理由:
ユーザーが何度ブラウザを閉じても、このセッションは存在します.
比喩:
あなたは昨日教室に来ました.今日はあなたが昨日教室に来たことを知る必要があります.マークを残して に来たことを知らせてくださいここに来たと教えてくれました.私はあなたが来たことを記録する必要があります.
あなた:クライアント私:サーバー
Javawebでは、この2つの異なるエンドに対して、2つの小さなメカニズムが誕生しています.
クッキー:クライアントに何かを残して、クライアントが今度持ってきて、私はあなたが来たことを知っています.
例えば、私の店はとても大きいですが、どうやってあなたが来たことを証明しますか?
会員になってください.VIPカードをあげます.今度カードを持ってきてください.あなたが来たことを知っています.
Session:サーバー側に登録したことがあります.
例えば、理髪店に行ってください.どうやって来たの?
理髪店は会員を集めて、彼のノートにあなたのニュースを記録して、今度直接大名に報告すればいいです.
Cookie
コンストラクタ:
サーバはクッキーに応答してクライアントに
サービスユーザーからのリクエストにクッキーがあるかどうかを確認
クッキーはユーザーが来たかどうかをテストします
Session
クライアントがサーバに接続すると、サーバは自動的にセッションを生成します.
1つの接続は1つのセッションに対応し、セッションは1つのセッションで情報を伝達することができる.
setAttributeで値を設定します.
getAttributeで値を取得します.
サーバー側が制御し、サーバーが再起動すると情報が失われます!
セッションログアウト方法1:
セッションログアウト方法2:
Webでは、セッションはブラウザからWebサイトを開くことを表し、このサイトで何を操作してもブラウザを閉じるまで、このプロセスをセッションと呼びます.
セッションの終了方法:
セッションを処理する理由:
ユーザーが何度ブラウザを閉じても、このセッションは存在します.
比喩:
あなたは昨日教室に来ました.今日はあなたが昨日教室に来たことを知る必要があります.
あなた:クライアント私:サーバー
Javawebでは、この2つの異なるエンドに対して、2つの小さなメカニズムが誕生しています.
クッキー:クライアントに何かを残して、クライアントが今度持ってきて、私はあなたが来たことを知っています.
例えば、私の店はとても大きいですが、どうやってあなたが来たことを証明しますか?
会員になってください.VIPカードをあげます.今度カードを持ってきてください.あなたが来たことを知っています.
Session:サーバー側に登録したことがあります.
例えば、理髪店に行ってください.どうやって来たの?
理髪店は会員を集めて、彼のノートにあなたのニュースを記録して、今度直接大名に報告すればいいです.
Cookie
コンストラクタ:
Cookie cookie = new Cookie(String name,String value);
Cookie cookie = new Cookie(String name,String value);
Cookie cookie = new Cookie(String name,String value);
サーバはクッキーに応答してクライアントに
Response.addCookie(Cookie);
Response.addCookie(Cookie);
Response.addCookie(Cookie);
サービスユーザーからのリクエストにクッキーがあるかどうかを確認
Cookie[] cookies = Request.getCookie();
// cookie
// cookies ,
Cookie.getName();
Cookie.getValue();
クッキーはユーザーが来たかどうかをテストします
package com.westos.serlvet;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class CookieTest extends HttpServlet {
boolean flag = false;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// :
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// Cookie
// , cookie
Cookie[] cookies = request.getCookies();
System.out.println("cookie:"+cookies);
if (flag){// flag ,
if (cookies!=null){// cookie
for (int i = 0; i < cookies.length ; i++) {
Cookie cookie = cookies[i];
if (cookie.getName().equals("lastLoginTime")){
response.getWriter().println(" :"+cookie.getValue());
System.out.println(" cookie");
}
}
}
}else { // flag ,
response.getWriter().println(" , ");
System.out.println(" cookie");
}
// cookie
Cookie cookie = new Cookie("lastLoginTime",System.currentTimeMillis()+"");
// cookie //cookie.setMaxAge();
// cookie
response.addCookie(cookie);
//response.addCookie(new Cookie("lastLoginTime",System.currentTimeMillis()+""));
flag = true;
}
}
Session
クライアントがサーバに接続すると、サーバは自動的にセッションを生成します.
1つの接続は1つのセッションに対応し、セッションは1つのセッションで情報を伝達することができる.
setAttributeで値を設定します.
getAttributeで値を取得します.
サーバー側が制御し、サーバーが再起動すると情報が失われます!
package com.westos.serlvet;
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 java.io.IOException;
public class SessionTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// :
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
//Session , session
//HttpSession sessioin
HttpSession session = req.getSession();
// sessionID, , seesionID;
String id = session.getId();
resp.getWriter().println(" sessionId:
"+id);
String name = "qinjiang";
// session ;
session.setAttribute("name",name);
resp.getWriter().println(" :"+name);
}
}
package com.westos.serlvet;
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 java.io.IOException;
// session
public class SessionTest2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// :
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
//
HttpSession session = req.getSession();
System.out.println(" SessionID:"+session.getId());
String name = (String) session.getAttribute("name");
resp.getWriter().println(" session "+name);
//Servlet < Seesion < WebContext
}
}
セッションログアウト方法1:
session.invalidate();//
セッションログアウト方法2:
<session-config>
<session-timeout>1session-timeout>
session-config>