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.
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:
public void setAttribute(String name,String value)
2
public Object getAttribute(String name)
3
public void removeAttribute(String name)
4
public void invalidate()
5
public String getId( )
6
public void setMaxInactiveInterval(int interval)
7
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());
<%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
Beberapa kaedah yang biasa digunakan untuk mendapatkan sesi
<!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>
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
ActionContext context = ActionContext.getContext(); Map request = (Map) context.get("request"); Map session = context.getSession(); Map application = context.getApplication();
ActionContext actionContext = ActionContext.getContext(); HttpServletRequest request = (HttpServletRequest) actionContext .get(ServletActionContext.HTTP_REQUEST); HttpSession session = request.getSession(); ServletContext context = (ServletContext) actionContext .get(ServletActionContext.SERVLET_CONTEXT);
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!