Jadual Kandungan
1. Kuki
1 Konsep kuki
2. Penciptaan kuki
3 Dapatkan kuki
4 . b>Gunakan cookie.setValue()
Tetapi masa kesahan kuki boleh ditetapkan melalui cookie.setMaxAge()
2. Konsep sesi
2. Perhatikan perubahan dalam paket apabila mendapatkan sesi
Dapatkan objek sesi melalui request.getSession()
<. 🎜>3. Prinsip sesi
Jawapan:
4、session的常用方法
4.1、session存在域对象的数据
4.2、设置session的时效
4.3、强制使session失效
5、session的钝化和活化
三、cookie和session的区别
Rumah Java javaTutorial Cara menggunakan kuki dan teknologi sesi dalam Java

Cara menggunakan kuki dan teknologi sesi dalam Java

Apr 23, 2023 pm 06:55 PM
java cookie session

    Penyelesaian kepada protokol tanpa kewarganegaraan http:

    HTTP ialah protokol tanpa kewarganegaraan. Protokol tanpa kewarganegaraan tidak memerlukan pelayan untuk mengekalkan maklumat atau menyatakan tentang setiap pengguna merentas berbilang permintaan.

    Tetapi sesetengah aplikasi web mungkin perlu menjejaki kemajuan pengguna dari satu halaman ke halaman lain, contohnya, apabila pelayan web diperlukan untuk menyesuaikan kandungan halaman web untuk pengguna. Penyelesaian untuk situasi ini termasuk:

    • Penggunaan kuki HTTP.

    • Sesi sebelah pelayan.

    • Pembolehubah tersembunyi (apabila halaman semasa mengandungi borang)

    • Penulisan semula URL menggunakan parameter berkod URI, contohnya, /index.php ? session_id=some_unique_session_code.

    Sebab untuk menjadikan protokol tanpa kewarganegaraan adalah kerana pelayan tidak perlu menjejaki status berbilang permintaan, bukannya ia tidak boleh berbuat demikian jika ia mahu. Ini memudahkan kontrak antara pelanggan dan pelayan dan dalam banyak kes (seperti menyampaikan data statik melalui CDN) meminimumkan jumlah data yang perlu dipindahkan. Jika pelayan diperlukan untuk mengekalkan keadaan akses pelanggan, struktur untuk membuat dan membalas permintaan akan menjadi lebih kompleks. Malah, kesederhanaan model adalah salah satu ciri terbesarnya.

    1. Kuki

    1 Konsep kuki

    Kuki ialah teknologi sesi yang dicipta dan diselenggara pada pelayan tetapi disimpan di bahagian pelayar

    Senario aplikasi kuki: ingat nama pengguna dan kata laluan, tidak perlu log masuk selama tujuh hari

    2. Penciptaan kuki

    //创建cookie
    Cookie cookie = new Cookie("username", "admin");
    //将cookie响应到浏览器
    response.addCookie(cookie);
    Salin selepas log masuk

    Cara kuki diwakili dalam mesej:

    Jika kuki dicipta dalam pelayan dan bertindak balas kepada penyemak imbas, ia akan muncul dalam mesej respons: Set-Cookie: username=admin

    Selepas itu, setiap kali penyemak imbas menghantar permintaan kepada pelayan, ia akan membawa Kuki ini akan muncul dalam mesej permintaan: Kuki: username=admin

    Selepas membalas kuki ke penyemak imbas, ia akan disimpan dalam memori berjalan penyemak imbas Apabila penyemak imbas ditutup, penyemak imbas memori berjalan akan dikeluarkan, jadi kuki akan dikosongkan. Oleh itu, masa kesahan lalai sesi adalah dari masa penyemak imbas dibuka hingga masa penyemak imbas ditutup

    3 Dapatkan kuki

    //获取浏览器发送请求所携带的所有cookie
    Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for (Cookie cookie : cookies) {
            System.out.println(cookie.getName() + "," + cookie.getValue());
        }
    }
    Salin selepas log masuk

    5 Tetapkan masa kesahihan kuki

    Selepas membalas kuki ke penyemak imbas, ia akan disimpan dalam memori berjalan penyemak imbas. . Apabila penyemak imbas ditutup, memori berjalan penyemak imbas akan Dikeluarkan, jadi kuki akan dikosongkan. Oleh itu, masa kesahan lalai sesi adalah dari masa penyemak imbas dibuka hingga masa penyemak imbas ditutup
    /*Cookie cookie = new Cookie("username", "root");
    response.addCookie(cookie);*/
    Cookie[] cookies = request.getCookies();
    if(cookies != null){
        for (Cookie cookie : cookies) {
            if(cookie.getName().equals("username")){
                cookie.setValue("zhangsan");
                response.addCookie(cookie);
            }
        }
    }
    Salin selepas log masuk

    a> Apabila masa kesahihan yang ditetapkan ialah integer negatif , tidak mempunyai kesan, iaitu masa yang sah adalah dari semasa penyemak imbas dibuka hingga apabila penyemak imbas ditutup

    b> ialah 0, ini bermakna bahawa kuki akan dipadamkan serta-merta

    c> kuki akan dipadamkan secara automatik daripada memori yang sedang berjalan apabila masa yang ditentukan dicapai

    Jika masa yang sah lebih daripada satu sesi, apabila penyemak imbas ditutup, ia akan Menyimpan data dalam kuki ke cakera. Apabila penyemak imbas dibuka semula, data dalam cakera akan dimuatkan semula ke dalam memori yang sedang berjalan

    6. Tetapkan laluan berkesan kuki

    setPath();

    Apabila kuki dibuat dan bertindak balas kepada penyemak imbas, kuki dengan laluan yang sah ditetapkan Kuki hanya akan dibawa apabila mengakses laluan yang ditentukan

    2. Konsep sesi

    Sesi ialah teknologi sesi yang dicipta dan diselenggara dalam pelayan dan disimpan di bahagian pelayan

    Senario aplikasi sesi: merekod status log masuk pengguna

    2. Perhatikan perubahan dalam paket apabila mendapatkan sesi

    Dapatkan objek sesi melalui request.getSession()

    Apabila request.getSession( diakses buat kali pertama dalam sesi ini ) apabila mendapatkan objek sesi, kuki dengan kunci JSESSIONID akan muncul dalam mesej respons

    Setiap kali permintaan dihantar ke pelayan melalui penyemak imbas, kuki dengan JSESSIONID ini akan dibawa

    <. 🎜> walaupun semasa mengakses pelayan, gunakan request.getSession() untuk mendapatkan semula objek sesi Selagi terdapat kuki JSESSIONID dalam mesej permintaan, kuki ini tidak akan muncul lagi dalam mesej respons

    <. 🎜>3. Prinsip sesi

    Soalan:

    Apakah prinsip sesi?

    Apakah hubungan antara sesi dan kuki?

    Mengapa sesi yang sama diperolehi dalam satu sesi?

    Jawapan:

    Apabila sesi diperoleh melalui request.getSession(), kuki dengan kunci JSESSIONID dalam mesej permintaan akan diperoleh

    Jika tiada kunci dalam mesej permintaan Kuki JSESSIONID menunjukkan bahawa sesi semasa baru sahaja bermula dan merupakan kali pertama untuk mendapatkan objek sesi dalam sesi semasa. Pada masa ini, objek sesi akan dibuat di dalam pelayan, dan kuki akan dibuat dengan kunci JSESSIONID dan nilai urutan rawak UUID kemudian objek sesi yang dibuat akan disimpan dalam koleksi peta yang diselenggara oleh pelayan, dengan urutan rawak UUID sebagai kunci , menggunakan objek sesi sebagai nilai, dan akhirnya membalas kuki JSESSIONID kepada penyemak imbas

    若请求报文中存在键为JSESSIONID的cookie,此时获取该cookie的值,即UUID随机序列,以UUID随机序列为键,从服务器所维护的map集合中就可以获取唯一的session对象

    4、session的常用方法

    4.1、session存在域对象的数据

    void setAttribute(String name, Object value);

    Object getAttribute(String name);

    void removeAttribute(String name);

    4.2、设置session的时效

    session的时效指在指定时间内,若没有对session进行任何的操作,此时session会自动失效

    a>通过web.xml设置,单位是分钟

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    Salin selepas log masuk

    b>通过session.setMaxInactiveInterval()设置,单位是秒

    session.setMaxInactiveInterval(1800);
    Salin selepas log masuk
    4.3、强制使session失效

    session.invalidate()

    5、session的钝化和活化

    session的钝化指服务器关闭,但是浏览器没有关闭,此时session中的数据会被序列化到磁盘上

    session的活化指服务器启动,并且浏览器仍然没有关闭,此时会将序列化到磁盘上的数据重新加载到内存中

    注意:若session中存储的是实体类对象,此时若要钝化,则该实体类和该实体类的成员变量也都要实现序列化的接口

    三、cookie和session的区别

    1、cookie存储在浏览器端,session存储在服务器端,因此cookie相对而言不安全

    2、cookie只能存储字符串类型的键值对,session可以存储任意类型的数据,因此若存储相同的数据,cookie可能会产生大量的cookie

    3、由于每次浏览器发送请求都会携带cookie,若有大量的cookie,就会造成网络负担

    Atas ialah kandungan terperinci Cara menggunakan kuki dan teknologi sesi dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    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

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Artikel Panas

    R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
    2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Cara menghidupkan semula rakan sepasukan
    1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
    4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Akar Kuasa Dua di Jawa Akar Kuasa Dua di Jawa Aug 30, 2024 pm 04:26 PM

    Panduan untuk Square Root di Java. Di sini kita membincangkan cara Square Root berfungsi di Java dengan contoh dan pelaksanaan kodnya masing-masing.

    Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

    Penjana Nombor Rawak di Jawa Penjana Nombor Rawak di Jawa Aug 30, 2024 pm 04:27 PM

    Panduan untuk Penjana Nombor Rawak di Jawa. Di sini kita membincangkan Fungsi dalam Java dengan contoh dan dua Penjana berbeza dengan contoh lain.

    Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

    Nombor Armstrong di Jawa Nombor Armstrong di Jawa Aug 30, 2024 pm 04:26 PM

    Panduan untuk Nombor Armstrong di Jawa. Di sini kita membincangkan pengenalan kepada nombor Armstrong di java bersama-sama dengan beberapa kod.

    Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

    Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

    Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

    Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

    Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

    Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

    See all articles