2009-07-23 27 views
7

Çerezler neden bir sunucu filtresinden başvuruda bulunamıyor? (HttpServletRequest ile olduğu gibi)Java EE Filtreler çerez alamıyor mu?

public void doFilter(ServletRequest request, ServletResponse response, 
          FilterChain chain) 
          throws ServletException, IOException { 
    request. 
} 

ServletRequest getCookies desteklemez: sadece Java EE çerez değerlerini sterilize etmek izin vermeyeceğini beni aşar görünüyor.

cevap

19

Çerezleri almak için bir HttpServletRequest ürününe göndermeniz gerekir.

HttpServletRequest httpReq = (HttpServletRequest) request; 

ServletResponse sınıf çerezleri desteklemediği nedeni protokolü bir ServletRequest http necessarly değildir, çünkü Çerezler olmadığından emin olamamasıdır. Çerezler bir Http şeydir. HTTP protokolü aracılığıyla erişilmesi gereken servletlere

2

Aslında bunu HttpServletRequest'a atabileceğinizi biliyorsunuz, değil mi? :-)

5

. Bu nedenle, sunucu uygulamanızın bir HttpServlet olması gerekmez; örneğin, FTP yoluyla belirli belgeleri gönderen bir sunucu olabilir. Bu nedenle, bir servletin temel özellikleri ServletRequest ve ServletResponse arabirimlerinde kapsüllenmiş, ancak sunucu uygulamanızın bir HTTPServlet olduğunu biliyorsanız, bunları Servlet'iniz sürece bir ClassCastException olasılığı olmadan HttpServletRequest ve HttpServletResponse için downcast edebilirsiniz. gerçekten bir HttpServlet.

İlgili konular