2009-06-07 9 views
6

ile yeniden yönlendirme Edilemiyorum ve jsp veya servlet'te bir yönlendirmenin nasıl yapılacağı hakkında saatlerce googled. Ancak, uygulamayı denediğimde işe yaramıyor. i jsp sayfası içinde varresponse.sendRedirect

Kodu: Ben herhangi bir zamanda bu regexp'in işleri ayıklama gelen ve olmadığını bilmek

<% 
    String articleId = request.getParameter("article_id").toString(); 
    if(!articleId.matches("^[0-9]+$")) 
    { 
     response.sendRedirect("index.jsp"); 
    } 
%> 

, articleID o response.sendRedirect Götürmezse ulaşır ancak ne zaman if içeri girer, sayı değil aslında yönlendirme yapar.

Bu durumda çok temel bir şeyi özlüyor muyum?

Şimdiden teşekkürler.

cevap

22

You should return bkz:

response.sendRedirect("index.jsp"); 
return; 
+1

Thats öyleydi. Ekleme işe yaradı. Teşekkür ederim. – Dmitris

+5

Bunun “neden” ini dikkate almaya değer. SendRedirect(), HTTP yanıtına bir başlık ekler ve bu kadardır. Daha sonra, yanıt için bir miktar içerik yazmaya devam ederseniz, tarayıcı yönlendirme başlığının gereksiz olduğunu düşünebilir ve görmezden gelebilir. Her zaman yanıt nesnesinde yöntemleri çağırdığınız sıra göz önüne alındığında, genellikle açık bir neden olmadan tek hata modlarına yol açabilir. Servlet API'si, bu olası sorunları açıklamakta oldukça açık. – skaffman

+0

[Aynı sorunla da karşılaşıyorum] (http://stackoverflow.com/q/9866964/1041341), bu çözümü denedim ama orada ağlamıyorum, lütfen yardım edin –

1

Bu scriptletten önce içerik var mı? Eğer öyleyse, yönlendirme işe yaramaz. Ayrıca, yaygın uygulama, bir sunucu veya denetleyici olarak hizmet veren başka bir sınıf içinde böyle bir mantığa sahip olmak ve JSP'yi yalnızca HTML'nin oluşturulmasını işlemek için bırakmaktır. Sorununuzu da çözebilir. Örneğin, yönlendirme sonra here

+0

[Ben de aynı sorun var] (http://stackoverflow.com/q/9866964/1041341), bu çözüm çalıştı ama oraya değil, lütfen yardım edin –