Di halaman web, ketika klien mengakses server setiap saat, beberapa dari mereka tidak perlu memintanya berulang kali. Misalnya, beberapa gambar, video, dll., Tidak perlu memintanya setiap saat, yang akan meningkatkan beban kerja server. Untuk mencegah hal ini, kami menggunakan filter untuk mengatur klien untuk di -cache.
Pengaturan cache halaman dan non-cache dan peran meta dalam halaman html
Dalam HTTP 1.1, cache-control diaktifkan untuk mengontrol cache halaman. Berikut adalah beberapa parameter yang umum digunakan:
Tidak ada cache, baik browser maupun server cache tidak harus menangani informasi halaman;
publik, baik browser dan server cache dapat menemui informasi halaman;
Tidak ada toko, informasi permintaan dan respons tidak boleh disimpan dalam sistem disk pihak lain;
Must-revalidasi, untuk setiap permintaan dari klien, server proxy harus ingin server memverifikasi bahwa cache sudah ketinggalan zaman;
Modifikasi terakhir hanya waktu generasi terakhir halaman, format GMT;
Kedaluwarsa nilai batas yang kedaluwarsa, format GMT, berarti bahwa browser atau server cache harus mendapatkan informasi halaman baru dari server nyata setelah titik waktu ini;
Dua nilai di atas diatur ke format GMT tipe karakter dalam JSP, dan tidak dapat berlaku, sehingga tipe panjang diatur agar berlaku;
Berikut adalah kode filter yang tidak dipotong:
<span style = "font-size: 24px;"> paket cn.hncu.filter; impor java.io.ioException; impor javax.servlet.filter; impor javax.servlet.filterchain; impor javax.servlet.filterconfig; impor javax.servlet.servletException; impor javax.servlet.servletrequest; impor javax.servlet.servletresponse; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpservletResponse; Cachefilter kelas publik mengimplementasikan filter {@Override public void dashar () {} </span> <span style = "font-size: 24px;"> @Override public void dofilter (servletRequest Request, servletResponse response, filterChain rantai) melempar ioExeption, servletexception {servletResponse, filterChain rantai) fungs. Ini digunakan untuk mengatur apakah klien menetapkan cache. Kami menggunakan respons di sini untuk memberi tahu klien untuk mengatur rantai.dofilter (permintaan, respons); Respons httpservletResponse res = (httpservletResponse); res.setHeader ("expries", "-1"); res.setHeader ("Pragma", "No-Cache"); res.setHeader ("cache-control", "no-cache"); /*Di atas dapat diatur untuk tidak cache, tetapi juga dapat diatur agar lebih komprehensif: // Sisi browser atau server cache tidak diperbolehkan untuk menyimpan informasi halaman saat ini. /* response.setHeader ("pragma", "no-cache"); response.setDateheader ("kedaluwarsa", "-1"); response.addHeader( "Cache-Control", "no-cache" );//Neither the browser nor the cache server should cache page information response.addHeader( "Cache-Control", "no-store" );//Non of the request and response information should be stored on the other party's disk response.addHeader( "Cache-Control", "must-revalidate" );*//Every request from the client, Server proxy harus ingin server memverifikasi apakah cache sudah ketinggalan zaman; } @Override public void init (filterconfig arg0) melempar servletException {}} </span> <span style = "font-size: 18px;"> </span>Di bawah ini adalah file filter yang mengatur cache
paket cn.hncu.filter; impor java.io.ioException; impor java.util.date; impor javax.servlet.filter; impor javax.servlet.filterchain; impor javax.servlet.filterconfig; impor javax.servlet.servletException; impor javax.servlet.servletrequest; impor javax.servlet.servletresponse; impor javax.servlet.http.httpservletResponse; CACHEFILTER2 kelas publik mengimplementasikan filter {@Override public void destroy () {} @Override public void dofilter (permintaan servletRequest, respons servletResponse, rantai filterchain) melempar ioException, ServletException {// Filter memiliki banyak fungsi. Ini digunakan untuk mengatur apakah klien menetapkan cache. Kami menggunakan respons untuk memberi tahu klien untuk mengatur cache // mengatur cache selama 1 hari di sini untuk mengaktifkan sumber daya kelas gambar dan video (konfigurasikan jalur intersep yang sesuai di filter) untuk meminta browser klien untuk cache selama 1 hari) // pengembalian intersep di sini res = (httpservletResponse) respons; Tanggal d = tanggal baru (); Lama = d.getTime ()+60*60*24; // res.setHeader ("expries", ""+time); // caranya, atur cache untuk satu hari res.setDateheader ("expries", time); // Sama seperti kalimat di atas/ * tanggal tanggal = tanggal baru (); response.setDateheader ("Modifikasi Terakhir", Date.GetTime ()); // Modifikasi Terakhir: Waktu generasi terakhir dari halaman respons.setDateheader ("kedaluwarsa", date.getTime ()+60*60*24); // kedaluwarsa: respons batas kedaluwarsa.setHeader ("cache-control", "public"); // Cache-Control mengontrol apakah halaman tersebut di-cache, publik: baik browser dan server cache dapat menangani informasi halaman; response.setheader ("pragma", "pragma"); // Pragma: Tetapkan apakah halaman di-cache, jika pragma, di-cache, dan tidak ada cache tidak di-cache*/} @Override public void init (filterconfig arg0) melempar servletException {}Catatan: File filter di atas perlu dikonfigurasi di web.xml untuk memfilter sesuai dengan jalur yang dikonfigurasi.
Di atas adalah penjelasan terperinci tentang apakah pengaturan filter javaee adalah instance di -cache yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!