<c:redirect> tag

2020/JSP SERVLET 2019. 12. 24. 13:51
반응형

<c:redirect> tag는 지정된 JSP페이지로 리다이렉트할 때 사용합니다. response.sendRedirect()기능과 동일하며 <c:redirect> 태그로 리다이렉트할 때 매개변수를 전달할 수 있습니다. 사용 형식은 다음과 같습니다.

 

<c:redirect url="redirect할 URL">

[<c:param name="매개변수이름" value="전달값" /> ]

...

</c:redirect>

 

  여기서 url은 리다이렉트 될 URL이 저장될 변수를 지정합니다.

 

출력화면 : http://localhost:8080/EL-JSTL/test03/redirectTest.jsp

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

escapeXml  (0) 2019.12.24
<c:out> TAG  (0) 2019.12.24
<c:url> tag  (0) 2019.12.24
<c:forEach> tag  (0) 2019.12.24
JSTL <c:choose> tag  (0) 2019.12.20
블로그 이미지

꽃꽂이하는개발자

,
반응형

웹 프로그램 실행 시 자원을 서블릿 관련 객체에 저장하는 방법으로 주로 HttpServletRequest, HttpSession, ServletContext  객체에서 사용되며 저장된 자원(데이터)은 프로그램 실행 시 서블릿이나 JSP에서 공유하여 사용합니다.

 

서블릿 관련 객체에서 바인딩 관련 기능을 제공하는 메서드

 - setAttribute(String name, Object obj) 자원을 각 객체에 바인딩합니다.

 - getAttribute(String name) 각 객체에 바인딩 된 자원(데이터)을 name으로 가져옵니다.

 - removeAttribute(String name) 각 객체에 바인딩된 자원(데이터)을 name으로 제거합니다.

 

실행 결과를 보면 정상적으로는 '서울시 성북구'가 출력되어야 하는데 null이 출력됩니다. 왜 그럴까요?  

 

포워딩 과정 1단계인 웹 브라우저에서 요청할 때 서블릿에서 전달되는 첫 번째 request는 웹브라우저를 통해 재요청되는 3단계의 두번째 request와 다른 요청입니다.

  즉, redirect방식으로는 서블릿에서 바인딩한 데이터를 다른 서블릿으로 전송할 수 없다는 것입니다.

 

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

redirect  방법은 서블릿의 요청이 클라이언트의 웹 브라우저를 다시 거쳐 요청되는 방식입니다.

웹에서 첫번째 서블릿에 요청하고 첫번째 서블릿은 sendRedirect()메서드를 이용해 두번째 서블릿을 웹 브라우저를 통해서 요청

웹 브라우저는 sendRedirect()메서드가 지정한 두 번째 서블릿을 다시 요청합니다.

 

 

first를 서블릿매핑 하였지만 아래에 sendRedirect("second") 메서드를 이용해 웹 브라우저에게 다른 서블릿인 second로 재요청 하는걸 알 수 있습니다.

 

그러면 첫번째 서블릿의 요청을 받아 실행하는 두번째 서블릿입니다.

그러면 두번째 서블릿 매핑을 통해 실행되며 화면이 나오게 됩니다.

 

주소창에

 

이렇게 입력하였지만 뜨는건

이 화면이 뜨게 된답니다.

 

또 하나의 방법은

get방식을 이용해 이름/값 쌍으로 데이터를 다른 서블릿으로 전달합니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

forward : 하나의 서블릿에서 다른 서블릿이나 JSP와 연동하는 방법을 포워드(forward)라고 합니다.

기능 

1. 요청에 대한 추가 작업을 다른 서블릿에게 수행하게 합니다

2. 요청에 포함된 정보를 다른 서블릿이나 JSP와 공유할 수 있습니다.

3. 요청에 정보를 포함시켜 다른 서블릿에 전달할 수 있습니다.

4. 모델2 개발 시 서블릿에서 JSP로 데이터를 전달 하는 데 사용됩니다.

 

포워드의 4가지 방법

1. redirect 방법

-HttpServletResponse 객체의 sendRedirect()메서드를 이용합니다.

-sendRedirect("포워드 할 서블릿 또는 JSP")

2. Refresh 방법

- HttpServletResponse 객체의 addHeader()메서드 이용

- 형식: response.addHeader("Refresh", 경과시간(초); url = 요청할 서블릿 또는 JSP");

3. location 방법

- 자바스크립트 location 객체의 href속성을 이용합니다.

- location.href='요청할 서블릿 또는 JSP';

4. dispatch 방법

- 일반적으로 포워드 기능을 지칭하고 서블릿이 직접 요청하는 방법입니다.

- RequestDispatcher 클래스의 forward() 메서드를 이용합니다

- RequestDispatcher dis = request.getRequestDispatcher("포워드할 서블릿 또는 JSP"); dis.forward(request, response);

 

이후부터 각각의 포워딩을  사용해 보도록 하겠습니다.

반응형
블로그 이미지

꽃꽂이하는개발자

,