6개월 대장정/JSP 개념

52일차 - [JSP] <jsp:forward> 액션 태그

pitang 2021. 11. 4. 03:58
반응형

안녕하세요. pitang입니다.

<jsp:forward> 액션 태그를 이용한 JSP 페이지 이동을 알아보겠습니다.

 

<jsp:forward> 액션 태그

<jsp:forward> 액션 태그는 하나의 JSP 페이지에서 다른 JSP 페이지로 요청 처리를 전달할 때 사용된다.

 

액션 태그의 기본 문법은 <jsp:forward page="이동할 페이지 /> 와 같다.

이동할 페이지는 웹 어플리케이션 내에서의 경로이다.

 

<jsp:forward>는 웹 컨테이너 내에서 요청 흐름을 이동시키기 때문에, 웹 브라우저는 다른 JSP가 요청을 처리했다는 사실을 알지 못한다.

웹 브라우저 주소는 변경되지 않으므로 웹 브라우저는 원래 jsp파일이 생성한 결과로 인식한다.

하지만, 이동할 페이지의 jsp파일이 실제 출력 결과이다.

 

<jsp:forward>와 <jsp:include>의 차이점은 request 제어권에서의 차이가 있다.

- forward의 경우 url1 -(forward)-> url2 전달하면 제어권을 다시 url1이 받지 못한다.

그러므로, url1에서 처리한 결과 화면이 전혀 보이지 않고 url2에서 처리한 화면만이 보이게 된다.

 

- include의 경우 url1 -(include)-> url2 전달하면 url2로 제어권을 잠시 빌려주고 처리를 완료한 후, 다시 url1으로 제어권을 반납한다.

그러므로, url1의 내용 속에 url2가 들어가서 보이게 된다.

 

ex1)

01main.jsp
01other.jsp
console

-> main contents가 출력되지 않고, 01other.jsp의 결과가 출력된다. 주소는 그대로 01main.jsp의 경로이다.

 

ex2)

02main.jsp
02other.jsp
console

 

ex3)

03main.jsp
03other.jsp
URL
console

-> 03main이 주소이고, 03other로 바뀌지 않고 03other 파일이 출력된 것을 볼 수 있다.

 

ex4)

04main.jsp
04other.jsp
URL
console

 

ex5)

06main.jsp
06other.jsp
console


<jsp:param> 액션 태그

 

<jsp:param> 액션 태그를 사용하면 <jsp:forward> 액션 태그로 이동할 페이지에 파라미터를 추가로 전달할 수 있다.

<jsp:param> 액션 태그는 <jsp:forward> 액션 태그의 자식 태그로 추가한다.

 

동작 방식은 <jsp:include>에서 설명한 것과 동일하다.

 

ex1)

05main.jsp
05other.jsp
console


로그인 화면

 

ex1)

07form.jsp
07process.jsp
07view1normal.jsp - 07view2vip.jsp
console normal
console vip


WEB-INF 폴더 활용

 

WEB-INF - 웹 어플리케이션 설정 정보를 담고 있는 web.xml 파일이 위치한다.

WEB-INF/classes - 웹 어플리케이션에서 사용하는 클래스 파일이 위치한다.

WEB-INF/lib - 웹 어플리케이션에서 사용하는 jar 파일이 위치한다.

 

WEB-INF는 Web Information의 약자로 Web에 관련된 정보를 의미한다.

Context Root 하위의 정보에 대해 접근할 수 있지만 WEB-INF에는 접근할 수 없다.

 

WebContent - WEB-INF - jsp20211025

 

ex1)

08form.jsp
08process.jsp
08view1normal.jsp - 08view2vip.jsp
console normal
console vip

-> 08view1normal.jsp 와 08view2vip.jsp 는 WEB-INF 폴더에 만들어 접근할 수 없는 파일로 만들어주었다.

 

ex2)

09main.jsp
09pagea.jsp - 09pageb.jsp
URL code=a
console code=a
URL code=b
console code=b

-> 09pageb.jsp는 WEB-INF 폴더의 하위 파일로, 접근할 수 없도록 만들어주었다.

 

ex3)

10main.jsp
10pagea.jsp
10pageb.jsp
URL code=food
console food pagea
URL code=song
console song pageb

 

 

 

감사합니다.

 

*m1맥북을 사용 중입니다.*

728x90
반응형