2009-06-07 6 views
6

Google 검색 또는 서블릿에서 리디렉션하는 방법에 대해 수 시간 씩 인터넷 검색을하고 인터넷 검색을합니다. 그러나 적용하려고하면 작동하지 않습니다. 내가 JSP 페이지 안에있는response.sendRedirect로 리디렉션 할 수 없습니다

코드 : 내가 언제 그 정규 표현식의 작품을 디버깅에서하고 있는지 알고

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

은은 articleID은 위해 response.sendRedirect 그것은 아무튼 도달 그러나 때 if 내부 이동, 번호가 아닙니다 실제로 리다이렉트한다.

이 경우 매우 중요한 것을 놓치고 있습니까?

미리 감사드립니다.

답변

22

당신이해야 return를 참조하십시오

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

그게 전부 야. 리턴 추가가 효과적입니다. 고맙습니다. – Dmitris

+5

"이유"를 고려해 볼 가치가 있습니다. sendRedirect()는 HTTP 응답에 헤더를 추가합니다. 그런 다음 응답에 일부 내용을 쓰는 경우 브라우저는 리디렉션 헤더가 불필요한 것으로 간주하고 무시합니다. 응답 객체에서 메서드를 호출하는 순서를 고려할 때 항상 가치가 있습니다. 명백한 이유없이 이상한 오류 모드로 이어질 수 있습니다. Servlet API는 이러한 잠재적 인 문제를 설명하는 데 매우 명쾌합니다. – skaffman

+0

[나도 같은 문제가] (http://stackoverflow.com/q/9866964/1041341),이 솔루션을 시도했지만 woking 없습니다, 제발 도와주세요 –

1

이 스크립틀릿에 내용이 있습니까? 그렇다면 리디렉션이 작동하지 않습니다.

또한 일반적인 로직은 서블릿 또는 컨트롤러로 사용되는 다른 클래스 내에 이러한 논리를 갖고 HTML의 렌더링 만 처리하도록 JSP를 남겨 두는 것입니다. 또한 문제를 해결할 수도 있습니다. 예를 들어, 리디렉션 후 here

+0

[나는 또한 같은 문제가 (http://stackoverflow.com/q/9866964/1041341), 나는이 솔루션을 시도했지만 거기에 woking 아니, 도와주세요 –

관련 문제