2014-12-20 4 views
0

java로 서블릿을 사용하고 있습니다. 한 서블릿에서 다른 서블릿으로 전달하려고합니다. 다른 서블릿에 속성을 전달하려고합니다.서블릿으로 전달하고 속성을 설정

JSP로 전달하려는 경우 제대로 작동합니다. 내가

request.setAttribute("attrName", attribute) 
request.getRequestDispatcher("forward.jsp").forward(request, response); 

을하지만 서블릿과 같은 작업을 수행 할 때 :

request.setAttribute("attrName", attribute) 
request.getRequestDispatcher("TheServlet").forward(request, response); 

내 서버는 밖으로 괴물과 나는 다음과 같은 오류 얻을 : 나는 내가 사용할 수 있습니다 알고

javax.servlet.ServletRequestWrapper.isAsyncStarted(ServletRequestWrapper.java:395) 

을 서블릿으로 리다이렉트하는 라인 :

response.sendRedirect("TheServlet"); 

하지만 전달 대신 리다이렉트 할 때 어떤 이유로 집합 속성이 작동하지 않습니다.

답변

1

redirect는 브라우저에 전송 된 HTTP 응답으로, 지정된 URL에 대한 새 요청을 제출하도록 요청합니다. 완전히 새로운 요청을 발생시키기 때문에 이전에 설정 한 요청 속성은 새 요청에서 사용할 수 없습니다.

서블릿으로 전달하는 측면에서 web.xml 구성을 확인 했습니까? 전달 된 서블릿이 전달 된 요청을 볼 수 있도록 설정 되었습니까?

첫 번째 서블릿의 세션에 속성을 저장하고 두 번째 서블릿에 액세스 할 수 있습니다. 사용 http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getSession()

또한 리디렉션의 URL 쿼리 문자열에 속성 값을 전달할 수 있습니다. 따라서 리디렉션 URL은 'myRedirectUrl? attributeName = attributeValue'와 같습니다.

또한 '전달'대신 '포함'방법을 사용해보십시오.

+0

그래서 서블릿 a에서 서블릿 b로 속성을 전달하려면 어떻게해야합니까? 나는 web.xml에서 많이 변경하지는 않았지만 앞으로는 (요청 속성이 작동하지 않습니다.) – Bosiwow

+0

나는 사용자를위한 오류 메시지이므로 문자열 url로 전달할 것입니다. 고맙습니다. – Bosiwow

+0

당신은 포워드와 포워드 사이의 차이점을 알려줄 수 있습니까? – Bosiwow

관련 문제