Sesi dimulai di struts 2.0

Di asp.net, global.asax dapat mengadakan acara session_start. ketika pengguna pertama kali mengunjungi situs web, sesi dimulai, acara akan dipicu. apakah hal serupa itu ada di struts atau java yang ditentukan?


person user1883329    schedule 11.05.2013    source sumber


Jawaban (3)


Anda dapat mengimplementasikan antarmuka javax.servlet.http.HttpSessionListener dan mendaftarkannya di web.xml. Metode kelas implementasi Anda akan dipanggil pada pembuatan/penghancuran sesi, dll.

Entri di web.xml akan berjumlah seperti di bawah ini

<listener>
    <description>sessionListener</description>
    <listener-class>
        your.com.HttpSessionListenerImplementation
    </listener-class>
</listener>

Ini tidak terkait dengan struts tetapi bagian dari API servlet dan tersedia di container servlet mana pun

person Dev Blanked    schedule 11.05.2013

Tidak di Struts2, juga bukan sebagai fitur bawaan. Tentu saja Anda dapat mengatasinya dengan tumpukan pencegat/pencegat.

Di Java EE, sesi adalah tugas server aplikasi. Dengan demikian kita harus dapat berasumsi bahwa kita selalu memiliki sesi setidaknya dari perspektif struts2.

Orang ini menunjukkan contoh yang cukup jelas tentang cara membuat interseptor: http://www.mkyong.com/struts2/struts-2-creating-own-interceptor/

Untuk rincian lebih lanjut tentang pencegat, lihat: http://struts.apache.org/release/2.1.x/docs/interceptors.html

Di bagian paling bawah dari tautan terakhir ada tautan ini: Bagaimana kita mendapatkan akses ke sesi (dari Interceptor karena dalam aksinya kita akan menggunakan SessionAware, meskipun kita juga bisa melakukannya dengan cara ini).

Umumnya Anda ingin melakukan sesuatu yang istimewa ketika seseorang masuk, dan tindakan masuk akan menjadi tempat yang baik untuk memasukkan apa yang Anda inginkan ke dalam Sesi. Untuk beberapa alasan Anda menginginkan sesuatu dilakukan lebih awal sehingga mengulangi:

  1. Buat pencegat SessionSetup khusus
  2. Daftarkan interseptor Anda dan buat tumpukan interseptor khusus di struts.xml
  3. Apakah semua paket Anda menggunakan tumpukan ini.
person Quaternion    schedule 11.05.2013

Anda dapat menggunakan interseptor cakupan sesi yang disediakan di struts 2 untuk manajemen sesi. Berikut ini adalah kegunaan yang baik. Anda dapat menentukan apakah Anda ingin memulai sesi dengan parameter "mulai".

<interceptor-ref name="scope">
                <param name="type">start</param>
                <param name="session">revisionList,revisionManagmentDetails</param>
                <param name="key">revisionManagementSessionKey</param>
            </interceptor-ref>
person user3820414    schedule 02.05.2018