52일차 - [JSP] <jsp:forward> 액션 태그
안녕하세요. 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)
-> main contents가 출력되지 않고, 01other.jsp의 결과가 출력된다. 주소는 그대로 01main.jsp의 경로이다.
ex2)
ex3)
-> 03main이 주소이고, 03other로 바뀌지 않고 03other 파일이 출력된 것을 볼 수 있다.
ex4)
ex5)
<jsp:param> 액션 태그
<jsp:param> 액션 태그를 사용하면 <jsp:forward> 액션 태그로 이동할 페이지에 파라미터를 추가로 전달할 수 있다.
<jsp:param> 액션 태그는 <jsp:forward> 액션 태그의 자식 태그로 추가한다.
동작 방식은 <jsp:include>에서 설명한 것과 동일하다.
ex1)
로그인 화면
ex1)
WEB-INF 폴더 활용
WEB-INF - 웹 어플리케이션 설정 정보를 담고 있는 web.xml 파일이 위치한다.
WEB-INF/classes - 웹 어플리케이션에서 사용하는 클래스 파일이 위치한다.
WEB-INF/lib - 웹 어플리케이션에서 사용하는 jar 파일이 위치한다.
WEB-INF는 Web Information의 약자로 Web에 관련된 정보를 의미한다.
Context Root 하위의 정보에 대해 접근할 수 있지만 WEB-INF에는 접근할 수 없다.
ex1)
-> 08view1normal.jsp 와 08view2vip.jsp 는 WEB-INF 폴더에 만들어 접근할 수 없는 파일로 만들어주었다.
ex2)
-> 09pageb.jsp는 WEB-INF 폴더의 하위 파일로, 접근할 수 없도록 만들어주었다.
ex3)
감사합니다.
*m1맥북을 사용 중입니다.*