액션 태그 / 세션 / 쿠키

액션 태그란 무엇인가?
- JSP 페이지에서 다른 페이지에 접근할 수 있도록 태그를 이용하여 구현된 기능
- 웹 페이지의 공통 부분을 모듈화
- 페이지 흐름 제어 include forward
- 파라미터 전송 parameter

웹 앱은 많은 웹 페이지들의 서로 공동된 부분을 공통적으로 포함하고 있음
이러한 공통 부분을 부품화하여 재사용하면 각각의 웹 페이지마다의 필요한 부분을 공유할 수 있게 됨
따라서 코드를 단순화할 수 있고 가독성을 향상시키고 반복하여 코딩하지 않아도 되기 때문에 시간과 노력을 줄일 수 있음
또 필요한 경우 유지보수를 용이하게 할 수 있음

<jsp:include> 액션태그
실행 처리 결과가 현재 include 액션 태그 위치에 포함되어 컴파일 되어 실행됨
flush 속성은 포함할 페이지를 실행하기 전에 출력 버퍼를 지울지를 결정함
flush 속성이 true(기본값)이면 포함할 페이지를 실행하기 전에 출력 버퍼를 지우고
페이지 실행 결과가 현재 페이지 위치에 포함되고 false이면 출력 버퍼를 비우지 않고
포함될 페이지 실행 결과가 현재 위치에 포함됨

# 파라미터 전송
웹 페이지의 공통 스크립트 요소에 특정 파라미터를 전달할 수 있음
jsp:include 액션 태그 내부에 jsp:param 액션 태그를 포함하는 형태로 사용함

# include 지시문
include지시문은 include액션태그와 같이 서로 다른 웹 페이지에서 공통으로
사용되는 페이지를 포함시켜 사용함
주로 헤더 푸터 메뉴 등을 모듈화하여 재사용하기 위해 사용됨
include 액션태그와는 달리 단순하게 포함된 내용이 현재 페이지에 텍스트로 포함되어 사용된다는 차이점이 존재
따라서 페이지 내의 변수가 공유되기 때문에 변수 중복 오류 발생에 주의해야 함

include 액션태그	include 지시문
	동적						정적
  일부 기능을 모듈화       			코드나 문장을 모듈화
호출할 때마다 재컴파일      		  최초 한 번만 처리
   처리 결과가 포함		  		  코드 자체가 포함
호출 페이지로 이동 후 다시 복귀		      이동 없음

jsp:forward 액션태그
현재 페이지에서 다른 페이지로 이동할 경우에 주로 사용

include 액션태그와 동작 방식은 같지만 약간 다르게 동작함
forward 되는 페이지가 생성한 응답 결과를 웹 브라우저에게 전달한다는 점이 다름
즉 jsp:forward 액션 태그의 이전 내용은 출력 버퍼에서 사라지고 이후 코드는 실행조차 되지 않음

현재 jsp 페이지에서 include 액션 태그를 만나면 include 액션태그에서 page속성으로 지정한
외부 파일의 실행 내용이 현재 jsp 페이지의 출력 버퍼에 추가 저장되어 출력됨
그리고 include 액션 태그는 외부 파일이 실행된 후 현재 jsp 페이지로 실행제어를 리턴함


# sendRedirect()와의 차이점
forward 액션태그는 이동 url 페이지의 내용으로 변경되지만 브라우저 주소창은 변하지 않음
