2016-03-28 17 views
2

Şu anda dahili bir çalışma aracı için hazırladığım bir web sayfam var. Kullanıcının veritabanına giriş yapmasını ve sonra sorguyu yürütmesini sağlayan örnek bir web sitesidir. Oturum açmamış kullanıcılara giriş sayfasına yeniden yönlendirmek için bir filtre uyguladım. Ben Home.jsp doğrudan o yeniden direkt edecek Girişi Sayfa erişirseniz benim web.xml buJava JSP Sorgu Dizesinde Filtreleme

public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) 
    throws IOException, ServletException { 

    HttpServletRequest request = (HttpServletRequest) req; 
    HttpServletResponse response = (HttpServletResponse) res; 
    HttpSession session = request.getSession(false); 

    if (session == null || session.getAttribute("user") == null) { 
     // No logged-in user found, so redirect to login page. 
     response.sendRedirect(request.getContextPath() + "/Login.jsp"); 
    } else { 
     // Logged-in user found, so just continue request. 
     chain.doFilter(req, res); 
    } 
} 

Ben

<filter> 
<filter-name>loginFilter</filter-name> 
<filter-class>Servlets.LoginFilter</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>loginFilter</filter-name> 
<url-pattern>/Home.jsp</url-pattern> 
</filter-mapping> 

var gibi doFilter işlevi görünüyor. Ancak, giriş yaptıktan sonra, kullanıcı veritabanına karşı bir sorguyu yürütmesini sağlayan Home.jsp sayfasına taşınır. Ev URL

http://localhost:8084/LiveTrades/Home.jsp

gibi görünecek Ama girdi sağlayan bir kez, kullanıcı için 'kedi' girmiş varsayarak (

http://localhost:8084/LiveTrades/Request?BIC=cat gibi url dize ile sonuçlarını gösteren yeni bir sayfaya geçer 'BIC' alanı girişi.

Bir kullanıcı, oturum açmadığınız zaman yukarıdaki URL'yi doğrudan girerse, gerekmediğinde düzgün işlenir. Bunun nedeni filtremimin yalnızca Home.jsp sayfasından çağrılmasından kaynaklandığını biliyorum. Request * ile sayfaların filtrelenmesini önlemek için bunu nasıl aşabilirim?

Başka bir jsp sayfasının olması daha kolay olur mu ?, Results.jsp ve veri tabanındaki bilgileri işleyen Servlet'in verileri Results.jsp'ye geçirmesini ister misiniz? Ardından, Results.jsp dosyasını web.xml dosyasına ekleyebilirim.

cevap

0

Web sayfamı yeniden yapılandırarak bu sorunu çözmeyi başardım. Sonuçlar şimdi bir JSP sayfası aracılığıyla görüntülenir, veriler bir Servlet'den JSP sayfasına aktarılır. Şimdi filtremde, Sonuç JSP sayfasını ve çözülmüş problemi eklemekteyim.