Rumah >Java >javaTutorial >Bagaimanakah JAVA mengendalikan pembolehubah Sesi dalam JSP melalui Servlet?

Bagaimanakah JAVA mengendalikan pembolehubah Sesi dalam JSP melalui Servlet?

WBOY
WBOYke hadapan
2023-05-02 17:34:131181semak imbas

Gunakan Servlet untuk mengawal sesi

Mengekalkan keadaan sesi adalah masalah yang mesti dihadapi semasa membangunkan aplikasi Web Terdapat banyak cara untuk menyelesaikan masalah ini . Contohnya, menggunakan kuki, medan borang jenis tersembunyi, atau menambah maklumat status secara langsung ke URL, dsb., dan Servlet sendiri menyediakan antara muka HttpSession untuk menyokong penyelenggaraan keadaan sesi pada antara muka ini.

Sesi dicipta untuk mengisi batasan protokol HTTP. Sila ambil perhatian bagaimana protokol HTTP berfungsi - pengguna membuat permintaan dan pelayan bertindak balas. Sambungan antara klien dan pelayan adalah diskret dan tidak berterusan. Protokol HTTP tidak menyediakan fungsi yang membolehkan pelayan menjejaki permintaan pengguna. Selepas pelayan selesai menjawab permintaan pengguna, pelayan tidak boleh terus mengekalkan sambungan dengan penyemak imbas. Dari sisi pelayan, setiap permintaan adalah bebas, jadi protokol HTTP dianggap sebagai protokol tanpa kewarganegaraan Apabila pengguna beralih antara berbilang halaman utama, pelayan tidak dapat mengetahui identitinya. Kemunculan Sesi adalah untuk menebus had ini. Menggunakan Sesi, anda boleh menyimpan maklumat pengguna apabila dia beralih antara berbilang halaman utama. Ini menjadikan banyak perkara yang tidak mungkin dilakukan sebelum ini menjadi lebih mudah.

Dalam tempoh dari apabila pelawat tiba di halaman utama tertentu hingga apabila dia keluar, setiap pelawat akan menerima Sesi yang berasingan.
Java Servlet mentakrifkan antara muka HttpSession untuk melaksanakan fungsi Session Proses penggunaan Session dalam Servlet adalah seperti berikut:

(1) Gunakan kaedah getSession HttpServletRequest untuk mendapatkan sesi yang sedia ada ia tidak ditakrifkan pada masa ini sesi, buat sesi baharu, anda juga boleh menggunakan kaedah getSession (true)

  (2) Tulis pembolehubah sesi. Anda boleh menggunakan kaedah HttpSession.setAttribute(nama, nilai) untuk menyimpan sekeping maklumat dalam Sesi. Anda juga boleh menggunakan HttpSession.putValue(nama, nilai), tetapi kaedah ini sudah lapuk.

 (3) Pembolehubah Sesi Baca. Anda boleh menggunakan kaedah HttpSession.getAttribute(name) untuk membaca nilai pembolehubah dalam Sesi Jika nama pembolehubah tidak ditentukan, null dikembalikan. Perlu diingat bahawa jenis pembolehubah yang dibaca daripada getAttribute ialah Object, dan penukaran jenis paksa mesti digunakan, seperti:
  String uid = (String) session.getAttribute("uid"); Anda juga boleh menggunakan HttpSession.getValue (nama), tetapi kaedah ini juga sudah lapuk.

(4) Tutup sesi Selepas menggunakan sesi, anda boleh menggunakan kaedah session.invalidate() untuk menutup sesi. Tetapi ini tidak diperlukan dengan ketat. Kerana enjin Servlet menutup penglihatan secara automatik selepas satu tempoh masa.

Berikut ialah contoh mudah untuk menggambarkan penggunaan sesi

// SessionExample.java
import java.io.*;
import java.util.*;
import javax. servlet.*;
import javax.servlet.http.*;
//Import pakej perisian yang diperlukan
kelas awam SessionExample memanjangkan HttpServlet
{
public void doGet(HttpServletSquestervlet respons ; Dapatkan Penulis keluaran
   HttpSession session = request.getSession(true); 🎜> out .println("");
out.println("");
out.println("") ;
out.println("");

Tarikh dibuat = new Date(session.getCreationTime());
//Dapatkan masa apabila objek sesi dicipta

Tarikh diakses = new Date(session.getLastAccessedTime()); 🎜> Out.println("ID " + session.getId()+" ");

  session.setAttribute("UID","12345678");
      // Tambah pembolehubah Nama=Tom

dalam sesi Penghitungan e = Names(NamesAttribute);🎜> { //Melintasi setiap pembolehubah

String //Dapatkan nama dahulu
Nilai rentetan = session.getAttribute(name).toString();
//Dapatkan nilai daripada sesi mengikut nama
keluar . println(nama + "=" + value+" "); //Cetak
   }
 out.println(""); //Cetak penanda HTML
 out.println("");
}
  }
 }



Atas ialah kandungan terperinci Bagaimanakah JAVA mengendalikan pembolehubah Sesi dalam JSP melalui Servlet?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam