Java's Filter, aop programlama düşüncesinin bir uygulaması

1. Filtrelemeye giriş

Filtre, yalnızca istek ve yanıtı değiştirmek için kullanılan Servlet spesifikasyonundaki gelişmiş bir özelliktir.

Filter, FilterChain konseptini ortaya koyar, müşteri talebi, şekilde gösterildiği gibi, servlete ulaşmadan önce filterChain'deki tüm filtrelerden geçecektir:

İkincisi, filtrenin yaşam döngüsü

Filtreyi web.xml'de yapılandırın.Sunucu başlatıldığında somutlaştırılacak ve başlatılacaktır. Bir ağ isteği olduğunda filtrelenecektir.Sunucu kapatıldığında yok edilecektir. Tüm süreç aşağıdaki şekilde gösterilmektedir:

Üç, ilk filtreyi yaz

Filtre sınıfının sığdırıcı arabirimini uygulaması ve içindeki üç yöntemi yeniden yazması gerekir. Bunların arasında, başlatma sırasında init () çağrılır; her seferinde doFiler () yöntemi çağrılır ve bu yöntemde chain.doFilter () çalıştırılmalıdır, aksi takdirde istek yapılmaz Sonraki filtre veya sunucuya teslim edilecektir; sunucu kapatıldığında ondestroy () çağrılır.

Filtreyi yapılandırın:

Bunlar arasında, url_pattern çoklu veya joker karakterlerle yapılandırılabilir.Erişim, yol eşleştirmesini ve dağıtıcıyı karşıladığında, istek, işlenmek üzere filtre tarafından durdurulacak ve işlenen yanıt, filtre tarafından tekrar yakalanacak ve işlenebilecektir.

Sevk görevlisi varsayılan olarak REQUEST'e ayarlıdır ve dört farklı dağıtıcı vardır:

TALEP: istendiğinde geçerlidir

İLERİ: Yalnızca sunucu uygulamasına bir sunucu uygulaması iletildiğinde geçerlidir

DAHİL: jsp geçti < jsp: kapsayıcı / > İstek sunucu uygulaması geçerli

HATA: < % @ page errorPage = ""% > etkili

Dört, anti-sülük

Filtrenin özellikleri, sülük önleme, karakter kodlama işleme, günlük kaydı, veri şifreleme, bazı siyah sözcükleri filtreleme vb. Gibi özel görevleri yerine getirmesini sağlar.

Örneğin: Anti-hotlinking resimleri, diğer web siteleri bu web sitesinin resim kaynaklarını talep ettiğinde, yanlış resimler görüntülenir.Yalnızca bu uygulamanın resimleri doğru resimleri görüntüleyebilir.Kod aşağıdaki gibidir:

Web.xml'de yapılandırın:

Görsellerin altındaki tüm resimlere erişilirken bu filtreyi geçecektir.Erişim başlık bilgilerine göre site ziyaret edilirse doğru resim görüntülenecek aksi takdirde yanlış resim ekrana gelecektir.

Beş, karakter kodlaması

Doğrudan kodda:

Web.xml'de yapılandırın:

Sayfa kodlama yöntemi de tutarlı olmalı, hepsinin utf-8 kullanmasını ummalı ve ayrıca Tomcat'in /config/server.xml kodlamasını yapılandırması gerekir:

Ek olarak, daha yaygın günlük kaydı filtreleri, istisna yakalama filtreleri, izin doğrulama, içerik değiştirme filtreleri vb. Vardır.

Filtre, çok esnek bir mekanizmaya, güçlü bir işleve sahiptir ve servlet ve jsp ile birleştirilmemiştir. Filter, görünüm odaklı programlamanın bir tür düşünme düzenlemesidir ve birçok görevi yerine getirebilir.

2.5 filtresinin web.xml'de yapılandırılması gerekir ve yürütme sırası yapılandırma sırasına göre yapılır.Ayrıca, filtre 3.0 için açıklama şeklinde yapılandırılabilir. Şu anda herhangi bir yapılandırma sırası yoktur.

IOS, ZipperDown güvenlik açığını ortaya çıkarıyor, popüler uygulamaların neredeyse tamamı hit
önceki
Bu bir devin omzu! Alibaba'nın 2018'de açtığı harika projelerin özeti
Sonraki
Wang Xiaolu: Gereksiz hükümet harcamalarını azaltmak ve kurumlar vergisi indirimi ile el ele gitmek
Arka arkaya üç yolcu için ilk durak! Sixers, Minnesota'ya doğru yola çıkacak
Baba oğul askerler! Barea atış alıştırması yaptı ve oğlu topu sepetin altından aldı.
OnePlus 6 amiral gemisi yüksek çözünürlüklü görüntülemeler yayınlandı, artık OPPO değil
Savaşçı Kuzenler maçtan önce kameraya sırıttı
Google artık buna dayanamıyor ve Android üreticilerini düzenli olarak güvenlik güncellemelerini zorlamaya zorlayacak
Nurkic: Bana yardım eli uzatan herkese teşekkür ederim
Lenovo, Huawei olmadan 5G oylamasını reddediyor, ancak Qualcomm'a destek verdiniz
Tencent dünyanın en karlı oyun şirketine hükmediyor, Apple üçüncü sırada
Huang Yiping: İdari olarak finansal kurumların özel girişimleri finanse etme maliyetlerini düşürmesini istemeyin
LCD iPhone'un kullanabileceği MLCD + ekranı nedir?
Java istisnalarını incelikle nasıl ele alabilirim?
To Top