Rumah > Java > javaTutorial > teks badan

Analisis objek sesi dan contoh kaedah dalam java

WBOY
Lepaskan: 2023-05-13 22:01:04
ke hadapan
1260 orang telah melayarinya

Objek sesi digunakan untuk merekodkan status akses setiap klien dalam skop sesi, untuk menjejaki status operasi setiap klien Maklumat yang disimpan dalam sesi boleh mendapatkan data yang sah bagi sesi ini apabila penyemak imbas membuat permintaan seterusnya.

Anda boleh menggunakan objek sesi (objek terbina dalam jsp) terus dalam halaman jsp, atau anda boleh mendapatkan kembali objek sesi melalui pageContext.getSession() atau request.getSession.

Sesi boleh menyimpan maklumat pengguna dan melaksanakan fungsi seperti troli beli-belah.

Protokol HTTP ialah protokol tanpa kewarganegaraan Pelanggan menghantar permintaan kepada pelayan, dan kemudian pelayan mengembalikan respons Pelayan tidak menyimpan maklumat sambungan yang berkaitan masa ia bersambung, Pelayan tidak lagi mempunyai maklumat sambungan sebelumnya dan tidak dapat menentukan bahawa sambungan ini mempunyai maklumat klien yang sama dengan sambungan sebelumnya. Oleh itu, sesi mesti digunakan untuk merekodkan maklumat tentang sambungan.

Dari saat klien membuka penyemak imbas dan menyambung ke pelayan hingga ke saat klien menutup penyemak imbas dan meninggalkan pelayan, ia dipanggil sesi. Apabila pelanggan mengakses pelayan, dia mungkin berulang kali menyambung ke beberapa halaman pada pelayan, menyegarkan semula halaman berulang kali, atau menghantar maklumat secara berterusan ke halaman, dsb. Pelayan harus mengetahui bahawa ini adalah klien yang sama melalui beberapa kaedah, dan maka satu sesi diperlukan.

Prinsip kerja sesi adalah seperti berikut:

1 Apabila pelanggan mengakses halaman pada pelayan untuk kali pertama, pelayan akan menetapkan objek sesi kepada pengguna dan menentukan a. ID unik untuk sesi ini, dan Hantar ID kepada klien dan tuliskannya ke dalam kuki, supaya klien dan sesi pelayan mewujudkan surat-menyurat satu-dengan-satu; akses sumber lain pada pelayan, pelayan tidak lagi Objek sesi baharu diperuntukkan kepada klien sehingga penyemak imbas klien ditutup, tamat masa, atau kaedah invalidate() sesi dipanggil untuk membatalkannya, dan sesi antara klien dan pelayan tamat.

3. Apabila pelanggan membuka semula penyemak imbas untuk melawati tapak web, pelayan akan menetapkan semula objek sesi kepada pelanggan dan menetapkan semula sessionID.

Objek sesi digunakan terutamanya untuk pengendalian atribut dan pengurusan sesi adalah seperti berikut:

1

Tetapkan nilai atribut dengan nama yang ditentukan dan tambahkannya skop sesi , menukar nilai sifat ini jika ia wujud dalam skop sesi.

public void setAttribute(String name,String value)2

Dapatkan nilai atribut dengan nama yang ditentukan dalam skop sesi Jenis nilai pulangan adalah objek.

public Object getAttribute(String name)3

, padamkan atribut sesi dengan nama yang ditentukan Jika atribut tidak wujud, pengecualian akan berlaku.

public void removeAttribute(String name)4

, batalkan sesi. Sesi semasa boleh dibatalkan serta-merta, dan semua objek yang disimpan dalam sesi asal tidak boleh diakses lagi.

public void invalidate()5

, dapatkan ID sesi semasa. Setiap sesi mempunyai sessionID pengecam unik pada bahagian pelayan Satu-satunya data yang dihantar oleh objek sesi ke penyemak imbas ialah sessionID, yang biasanya disimpan dalam kuki.

public String getId( )6

Tetapkan tempoh maksimum sesi dalam saat Nombor negatif menunjukkan bahawa sesi tidak akan tamat tempoh.

public void setMaxInactiveInterval(int interval)7

, dapatkan tempoh maksimum sesi.

public int getMaxInActiveInterval()8 Gunakan kaedah getCreationTime() dan getLastAccessedTime() bagi objek sesi untuk mendapatkan masa penciptaan sesi dan masa akses terakhir, tetapi nilai pulangan secara amnya, anda perlu menggunakan penukaran berikut mendapatkan tarikh dan masa tertentu.

Date creationTime = new Date(session.getCreationTime());
Date accessedTime = new Date(session.getLastAccessedTime());
Salin selepas log masuk
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
Salin selepas log masuk

Beberapa kaedah yang biasa digunakan untuk mendapatkan sesi

1 pada musim bunga mvc

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>" rel="external nofollow" >   
    <title>session对象方法</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
 -->
  </head>
 
  <body>
    <b>
    会话ID:<%=session.getId() %> <br>
    是否新会话:<%=session.isNew() %><br>
    设置和获取属性对象:用户名 =
    <%session.setAttribute("用户名","bing"); %>
    <%=session.getAttribute("用户名") %><br>
    <%
    Date creationTime = new Date(session.getCreationTime());
    Date accessedTime = new Date(session.getLastAccessedTime());
     %>
     会话创建时间:<%=creationTime %><br>
     上次访问时间:<%=accessedTime %><br>
     会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
     <%session.setMaxInactiveInterval(12); %>
     修改后的会话持续时间(s):<%=session.getMaxInactiveInterval() %><br>
     <%session.invalidate(); %>
     </b>
  </body>
</html>
Salin selepas log masuk

2 dalam struts2

(1)

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Salin selepas log masuk
. 🎜>(2)

ActionContext context = ActionContext.getContext(); 
Map request = (Map) context.get("request"); 
Map session = context.getSession(); 
Map application = context.getApplication();
Salin selepas log masuk
3. Dapatkan

ActionContext actionContext = ActionContext.getContext(); 
HttpServletRequest request = (HttpServletRequest) actionContext
.get(ServletActionContext.HTTP_REQUEST); 
HttpSession session = request.getSession(); 
ServletContext context = (ServletContext) actionContext 
 .get(ServletActionContext.SERVLET_CONTEXT);
Salin selepas log masuk
melalui ServletActionContext

Atas ialah kandungan terperinci Analisis objek sesi dan contoh kaedah dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan