일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dependency
- 콜렉션
- unboxing
- maven
- Scanner
- Jenkins
- 제너릭
- 루프
- 무한
- wrapper
- https://start.spring.io
- 인텔리제이
- boxing
- 싱글턴
- 내장객체
- 빌드
- bootstrap
- 클래스
- start.spring.io
- 자동형변환
- 메소드
- 스프링
- 싱글톤
- Java
- 컬렉션
- Short
- 언박싱
- 박싱
- 제네릭
- suvlet
- Today
- Total
Developer Gonie
[9주차] 11. forward 액션태그, 다른곳으로 흐름을 이동시키고 싶을때(기능만 보면 response.sendRedirect와 같음) 본문
[9주차] 11. forward 액션태그, 다른곳으로 흐름을 이동시키고 싶을때(기능만 보면 response.sendRedirect와 같음)
이대곤 2022. 7. 12. 19:53forward 액션태그란?
이전에 작성한 글에서 include 액션태그는 실행 결과를 가져오기 위해 흐름이 요청한쪽으로 이동했다가 응답으로 실행한 결과를 가지고 돌아왔는데, forward 액션태그는 흐름이 요청한 쪽으로 한 번 이동하면, 실행이 끝나도 다시 되돌아 가지 않는다. 즉, 응답이 없다. 이래서 돌아오지 않고 앞으로 전진하는 것이기 때문에 이름 자체가 forward라고 붙려지는거 같다.
세부적인 차이점을 비교하지 않는다는 가정하에
큰 틀에서, 페이지를 이동하는 것이기 때문에 response.sendRedirect() 혹은 <a> 태그와 같은 기능으로 볼 수 있다.
다른 점으로 forward 액션태그는 이동한 곳에서 이전에 존재하던 request 객체를 공유한다는 점 정도가 있다.
이 액션태그가 사용되는 jsp 파일은 화면 출력용 코드가 있어도 눈에 보여지기전에 바로 액션태그로 요청한 파일쪽으로 넘어가므로 화면 출력용 보다는 페이지 이동중에 눈에 보이지 않아도 되는 로직을 중간에 껴 넣고 싶을 때 사용한다.
한가지 예를들면 아래의 예시에서 중간단계를 거쳐야 하는데 이를 구현하기 위해서
두번째 jsp파일의 맨 마지막줄에 세번쨰jsp를 요청하는 forward 액션태그를 삽입하면 될 것이다.
네이버 로그인창(첫번째jsp파일) - "DB조회, 로그남김"(두번째jsp파일) - 로그인 성공해서 메인페이지(세번째jsp파일)
include 액션태그와 마찬가지로 필요에 따라 param 액션태그를 사용해 파라미터 값을 포함시켜 요청할 수 있다.
요청을 받은 그 파일 쪽에서는 request 객체를 통해 전달받은 파라미터의 값을 열람해 사용할 수 있다.
//방법1 : request 객체를 공유하는 것 만으로 충분한 경우, 간결히 작성가능
<jsp:forward page="Ex01_result.jsp"/>
//방법2 : request 객체가 포함하고 있는 데이터 말고도 넘겨주고 싶은 인자가 있는 경우
<jsp:forward page="Ex01_result.jsp">
<jsp:param value="30" name="age"/>
</jsp:forward>
예시. forward 액션태그
페이지1
페이지2
* forward 액션태그를 만나면 브라우저 출력관련 버퍼가 초기화되어 화면은 출력 되려다가 말음.
단, System.out.print()문은 잘 실행되어 여기 페이지를 거쳐간 것을 콘솔창을 통해 알 수 있음.
페이지3
* 특이한 점으로 url은 이전의 jsp 파일을 가리키고 있지만, 브라우저의 출력 결과는 액션태그로 요청한 jsp파일의 결과가 보여짐
* request 객체가 공유되고 있는것을 알수 있음
'K-DigitalTraining 강의 > 8. JSP' 카테고리의 다른 글
[9주차] 13. JSP에서의 JDBC, INSERT 쿼리문 수행 (0) | 2022.07.13 |
---|---|
[9주차] 12. JSP에서의 JDBC 사용준비 및 SELECT 쿼리문 수행 (0) | 2022.07.13 |
[9주차] 10. include 액션태그, 다른 페이지의 실행결과를 현재 페이지에 포함시키고 싶을 때 + 액션태그란? (0) | 2022.07.12 |
[9주차] 9. JSP에서 다음 페이지로 데이터를 전달시키는 4가지 방법 (0) | 2022.07.12 |
[9주차] 8. JSP의 내장객체 'session' (0) | 2022.07.12 |