*action tag(표준액션)
- 태그를 기술하면 정해진 일을 한다.(jsp태그와의 차이점 : jsp는 기술 했다고 해서 일을 하지는 않는다.)
- 사용자가 태그를 만들 수 있다.(tag library)
- <jsp:태그명 속성="값" ... ></jsp:태그명>
- <jsp:태그명 속성="값" ... ></jsp:태그명> | prefix surfix(제조사가 어딘지 알려주는 형식) 시작태그(열림) 끝태그(닫힘) => 합쳐쓰면 </>
- prefix : 사용자 정의 tag lib에서는 따로 정의하고 사용해야 한다.
include : 다른 jsp를 끼워넣어 보여줄 때
<jsp:include page="끼워넣을 jsp"/>
웹에서 중요한 것 : 요청에 대한 응답, 페이지 이동, 관계 유지
<jsp:include page="끼워 넣을 jsp"/>
- 이때 끼워 넣을 jsp에는 <%= %>를 이용 할 수 있다. => 동적인 페이지를 인크루드할 수 있다.
- 보여지는 html이 합쳐진다.
- 변수, 메서드의 공유가 되지 않는다.
- 속도가 include 지시자보다 느리다.
- page지시자의 충돌이 발생하지 않는다.
- 중복되는 디자인 사용시
forward : 페이지 이동 (서버쪽에서 바로 이동하기 때문에 페이지의 이동을 브라우저가 모른다)
<jsp:forward page="이동할 jsp의 uri">
uri = 도메인이 포함되지 않은 주소(따라서 내 서버안에서만 해결 할 수 있다.)
사족:따라서 forward에서는 객체를 넘길 수가 없다. 굳이 넘겨주려면 함수를 사용해야 한다.
- 이동하는 페이지로 parameter를 넘길 수 없다.
<jsp:forward page="이동할 jsp">
<jsp:param name="파라메터명" value="값"/>
</jsp:forward>
사족:파라메터로 전달할 수 있는 값은 문자열 뿐이다.
파람에서 쓰인 파라메터를 이동하는 페이지에서 받고 싶을 때(속성값으로 넘어가는게 아니라 파라메터로 붙어 넘어가기 때문에)에는 request.getParameter("name");으로 받는다.
- Bean 사용
- 값을 가진 객체(VO(value object):디자인패턴에서 나온 객체 = 자바에서는 bean이라고 부른다.)
사족:자바에서 사용 하는 개념. 값을 가지고 있는 존재이다. 값을 여러 개 가지고 있는 것은 beans라고 한다. 업무 하나를 bean으로보고 업무 여러개를 모아놓은것이 enterprise beans이다.
사족:VO : 값을 저장하고 반환할 목적으로 만든 것
사족:GOF(Gang of Four)의 디자인패턴. 비슷한 개발 코드를 뽑아낸 것. 이바이 아곱슨(?)
<jsp:useBean id="객체명" class="객체화 할 클래스" scope="저장하고 사용 할 영역"/> 객체를 생성
- setter method
<jsp:setProperty name="객체명(식별자 이름)" property="set을 제회한 method명을 소문자로" value="값"/>
- getter method
<jsp:getProperty name="객체명" property="get을 제외한 method명 소문자"/>
사족:package는 역방향 도메인을 사용한다.
- 객체화 : 반드시 기본 생성자가 존재해야 한다.
<jsp:useBean id="객체명" class="객체화 할 class" scope="범위"/>
<jsp:useBean id="참조변수명" class="패키지명.클래스명" class" scope="page/request/session/application"/>
- setter method
<jsp:setProperty name="사용할 객체명" property="set을 제외한 메서드명을 소문자로" value="값"/>
-getter method
<jspLgerProperty name="객체명" property="get을 제회한 메서드명 소문자"/>
이때! 첫 단어는 모두 소문자로쓰고 두번째 단어 부터는 대소문자를 구분한다.
===============================================================
1202
scope 속성
속성 | 특징 |
page | 페이지가 호출 될 때마다 Bean을 생성한다. 이 페이지에서만 값이 사용된다. |
request | 페이지가 호출 될 때마다 Bean을 생성한다. forward로 이동한 페이지에서도 값을 사용 할 수 있다. |
session | 브라우저마다 객체가 생성되고 유지된다. |
application | 최초 접속자에 의해서 하나의 객체가 만들어지고 모든 사용자가 값을 사용한다. (TOC TOU(Time of check time of use) 취약점에 해당한다. 값을 경쟁적으로 사용하다 보면 다른 사용자가 입력한 값을 사용 할 수가 있게된다. 따라서 application은 잘 사용하지 않는다.) |
useBean으로 parameter 반기
- HTML의 Form Control의 이름과 Bean(VO)의 instance 변수명이 같아야 한다.
- 사용법
<jsp:useBean id="" class="" scope=""/>
<jsp:setProperty name="" property="*"/>
이때 Form Control의 명과 bean의 setter method명(set을 제외하고)이 같다면 모두 추가한다. 모든 것을 받을 수 있지만 배열의 경우 주소값을 출력하게 되므로 request를 사용하는 것이 더 좋다.
'예전 포스팅 모음' 카테고리의 다른 글
1. 클라이언트vs호스트 (0) | 2014.12.03 |
---|---|
EL(Expression Language)이란? (0) | 2014.12.02 |
웹 어플리케이션이란? (0) | 2014.11.26 |
[html] 구분, div, 좌표설정 (0) | 2014.10.30 |
[html] 테이블 정렬, 칸 합치기, HTML Form control (0) | 2014.10.29 |