클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

JSP 내장 객체와 액션 태그 5 - 액션 태그에 대하여 본문

웹 · 앱 개발/JSP & Servlet

JSP 내장 객체와 액션 태그 5 - 액션 태그에 대하여

huenuri 2024. 8. 28. 08:38

드디어 액션 태그 한 소단원만 남겨놓은 상태이다. 빨리 개념 학습을 마치고 퀴즈까지 다 풀고 인사교에 갈 수 있을지 모르겠지만 할 수 있는데까지 진행해보자.

오늘은 안 되는 것들이 많아서 그걸 해결하는데 많은 시간을 보냈다.


 

 

 

 

액션 태그

액션 태그는 스크립트릿, 주석, 디렉티브와 함께 JSP 페이지를 이루고 있는 요소 중 하나이다.

<jsp:forward>나 <jsp:include>와 같은 액션 태그가 제공하는 기능은 JSP의 내장 객체를 통해 자바 코드 형태로 작성할 수 있는 것을 태그로 표현할 수 있도록 한 것이다. 그럼 액션 태그가 왜 필요할까?

 

그 이유는 jsp 페이지에서는 동일한 내용이라도 자바 코드를 기술하기보다는 태그를 기술하는 것이 깔끔하게 코딩할 수 있는 가독성 높은 소스 코드가 된다. 액션 태그를 사용하면 자바로 기술했을 때보다 코드 양을 대폭 줄일 수 있다.

액션 태그는 XML 문법을 따른다. 즉 시작 태그와 함께 반드시 종료 태그를 포함해야 한다.

 


 

 

 

<jsp:forward> 액션 태그

이 태그는 현재 JSP 페이지에서 URL로 지정한 특정 페이지로 넘어갈 때 사용하는 태그이다.

<jsp:forward page = "relativeURLspec"/>

 

포워드 방식으로 페이지를 이동하는 것으로 기존 request 연결을 유지하면서 서버상의 url로 request 정보를 전달한다. 액션 태그에서는 <jsp:forward>를 사용하여 포워딩할 수 있다.

 


 

 

 

페이지 이동

1. 브라우저로 로드할 페이지를 작성한다.

 

 

 

2. 포워딩으로 이동할 페이지를 작성한다.

 

 

빨간색에서 실행했는데 노란색으로 출력이 되고 있다. 이는 <jsp:forward> 태그로 포워딩했기 때문이다.


 

 

 

<jsp:param> 액션 태그

액션 태그로 이동하는 페이지에 정보를 추가하고 싶을 때 사용한다. 이 태그는 요청한 페이지로 정보를 전달할 때 사용하는 태그이다. 단독으로는 사용하지 못하고 <jsp:include>나 <jsp:forward> 태그 내부에 기술하여 사용한다.

 


 

 

 

조건에 따른 페이지 이동

1. 사용자로 로그인할지 관리자로 로그인할지 선택하는 라디오 버튼 페이지 작성하기

 

 

 

2. 이전 페이지에서 선택한 라디오 버튼에 따라 <jsp:forward> 태그를 이용하여 이동할 페이지를 달리하는 페이지 작성하기

 

 

 

3. 사용자 페이지 작성하기

 

 

 

 

4. 관리자 페이지 작성하기

 

 

 

 

하지만 관리자 페이지로는 이동이 되지 않았다. 이 문제는 나중에 시간이 날 때 다시 한 번 생각해봐야겠다.


 

 

 

 

<jsp:include> 액션 태그

공통된 내용을 하나의 JSP 페이지에 기술할 때 사용하는 태그이다.

 

 

웹 사이트들을 살펴 보면 메인 페이지와 서브 페이지에 나타나는 헤더와 푸터 부분에는 동일하고 가운데 부분만 매번 변경된다.

 

 

이렇게 모듈화하면 헤더와 푸터가 변경되더라도 포함된 페이지만 변경하고 메인 페이지나 서브 페이지는 수정하지 않아도 변경된 내용이 그대로 적용되어 나타난다.

<jsp:include> 액션 태그와 include 지시자는 내부적으로 동작하는 원리가 다르다.

include 지시자는 지정된 페이지가 현재 페이지에 포함되어 하나로 합쳐진 상태에서 컴파일하여 실행되는 구조이다. 포홈되는 페이지를 독립적 형태가 아닌 페이지의 일부분으로 구성할 수 있다. 즉, 변수를 서로 공유해서 사용할 수 있는 것이다.

 

<jsp:include> 액션 태그는 컴파일할 때 합쳐지지 않고 제어권이 지정한 페이지로 넘어갔다가 다시 되돌아온다. 서로 독립적으로 컴파일되고 실행할 때 독립적으로 실행되는 두 페이지가 서로 연락을 취하여 하나의 페이지인 것처럼 동작한다. 따라서 변수를 서로 공유해서 사용할 수 없다.

 

 


 

 

 

<jsp:include> 액션 태그를 사용한 모듈화

1. 화면 상단에 출력할 공통 페이지를 작성한다.

 

 

 

 

2. 화면 하단에 출력할 공통 페이지를 작성한다.

 

 

3. 메인 페이지로 헤더과 푸터를 포함하고 있는페이지를 작성한다.

 

 

 

4. 서브 페이지로 헤더와 푸터를 포함하고 있는 페이지를 작성한다.

 

 

 

이곳이 서브 페이지이다. 이렇게 모두 이동이 잘 되는 것을 확인할 수 있었다.

 


 

 

 

학습을 마치고

이 부분은 정말 초고속으로 학습해보았다. 그래도 모두 마칠 수 있어서 정말 기쁘다. 마지막으로 취즈 문제가 남아있는데 이건 쉬는 시간에 틈틈이 풀어보고, 나머지는 8교시 자율학습 시간에 한번 해볼 생각이다.

이제 갈 준비를 서둘러야겠다.