스크립트릿, 주석, 디렉티브와 함께 JSP 페이지를 이루고 잇는 요소 중 하나
| 태그의 종류 | 설명 |
|---|---|
<jsp:forward> | 다른 사이트로 이동할 때 사용 페이지의 흐름을 제어할 때 사용 |
<jsp:include> | 정적 혹은 동적인 자원을 현재 페이지의 내용에 포함시킨다. 페이지를 모듈화할 때 사용 |
<jsp:param> | <jsp:forward>, <jsp:include>, <jsp:plugin>과 같이 사용되어파라미터를 추가할 때 사용 |
<jsp:useBean> | 빈(Bean)을 생성하고 사용하기 위한 환경을 정의하는 액션 태그 |
<jsp:setProperty> | 액션은 빈에서 속성 값을 할당 |
<jsp:getProperty> | 액션은 빈에서 속성 값을 얻어올 때 사용 |
<jsp: . . . 속성="값" > 내용 </jsp: . . .>
<jsp : forward page = "actionTag.jsp">
<jsp : param name = "url" value = "red02.jsp"/>
<jsp : param name = "news" value = "Happy New Year!"/>
</jsp : forward>
<jsp:... 속성="값" />
<jsp:forward page="yellow.jsp" /
현재 JSP 페이지에서 URL로 지정한 특정 페이지로 넘어갈 때 사용하는 태그
<jsp:forward page="relativeURLspec"/>
// 서블릿상에서 동일한 동작하는 코드
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("url");
dispatcher.forward(request, response);
<jsp:forward> 액션 태그로 이동하는 페이지에 정보를 추가하고 싶을 경우 사용한다.
정보전달에 사용
단독으로 사용하지 못하고 <jsp:include>나 <jsp:forward> 태그의 내부에 사용한다.
<jsp:param name="파라미터" value="파라미터값" />
<jsp:forward page="이동할 페이지 경로">
<jsp:param value="파라미터값" name="파라미터"/>
</jsp:forward>
현재 페이지에 다른 페이지의 내용을 동적으로 포함시키고자 할 경우 사용하는 태그
페이지 상단에 header.jsp, 페이지 하단에 footer.jsp 를 포함시키는데 이렇게 모듈별로 개별적인 여러 개의 페이지로 나눠서 작성하는 것을 모듈화라고 한다.
<jsp:include page = "urlSpec" flush="true" 또는 "false"/>
사용자의 정보를 지속적으로 유지하기 위한 방법으로 사용
Cookie(java.lang.String name, java.lang.String value)
Cookie info = new Cookie("testCookie","First Cookie!");
| 메소드 | 설명 |
|---|---|
void setComment(String) | 쿠키에 대한 설명을 설정 |
void setDomain(String) | 쿠키의 유효한 도메인을 설정 |
void setMaxAge(int) | 쿠키의 유효한 기간을 설정 |
void setPath(String) | 쿠키의 유효한 디렉토리를 설정 |
void setSecure(boolean) | 쿠키의 보안을 설정 |
void setValue(String) | 쿠키의 값을 설정 |
void setVersion(int) | 쿠키의 버전을 설정 |
String getComment() | 쿠키에 대한 설명을 알려줌 |
String getDomain() | 쿠키의 유효한 도메인 정보를 알려줌 |
int getMaxAge() | 쿠키가 사용할 수 있는 기간에 대한 정보를 알려줌 |
String getName() | 쿠키의 이름을 알려줌 |
String getPath() | 쿠키의 유효한 디렉토리 정보를 알려줌 |
boolean getSecure() | 쿠키의 보안이 어떻게 설정되어 있는지를 알려줌 |
String getValue() | 쿠키에 설정된 값을 알려줌 |
int getVersion() | 쿠키의 버전을 알려줌 |
// 1. Cookie 객체 생성
Cookie c = new Cookie("id", "pinksung");
// 2. 유효기간 설정
// 1년을 초 단위로 환산
c.setMaxAge(365 * 24 * 60 * 60);
// 3. 클라이언트에 쿠키 전송
response.addCookie(c);
// 4. 쿠키를 생성하여 클라이언트에 전송
response.addCookie(new Cookie("pwd", "test1234"));
response.addCookie(new Cookie("age", "20"));
Cookie[] cookies = request.getCookies();
for (Cookie c : cookies) {
out.println(c.getName() + " : " + c.getValue() + "<br>");
}
// 쿠키 삭제 -> 유효기간 만료시키기
Cookie cookie = new Cookie("id", "");
cookie.setMaxAge(0); // 쿠키의 유효기간을 만료시킴
response.addCookie(cookie);
사용자와 서버 간의 상태를 유지하기 위한 식별 수단
| 메소드 | 설명 |
|---|---|
Object getAttribute(String name) | 이름에 해당되는 객체 값을 가져온다. 없을 경우 null 반환. 반환값은 Object형이라 형변환 필요 |
Enumeration getAttributeNames() | 세션에서 모든 객체의 이름을 Enumeration 형태로 얻어 준다 |
long getCreationTime() | 세션이 만들어진 시간을 반환한다 |
String getId() | 해당 세션을 가리키는 고유 ID 값을 String으로 반환 |
long getLastAccessedTime() | 해당 세션이 마지막으로 요청을 받은 시간을 long으로 반환 |
int getMaxInactiveInterval() | 세션이 유지되는 최대 시간을 초 단위로 반환 |
boolean isNew() | 세션이 처음 생성되었으면 true, 아니면 false 반환 |
void removeAttribute(String name) | 지정된 이름에 해당하는 객체를 세션에서 제거 |
void setAttribute(String name, Object value) | 세션에 지정된 이름으로 객체를 추가 |
void setMaxInactiveInterval(int interval) | 세션의 최대 유지 시간을 설정 (초 단위) |
void invalidate() | 해당 세션을 제거하고 그 안의 값들도 모두 삭제 |
session.setAttribute("id", "jjang gu");
session.setAttribute("pwd", "1234");
session.setAttribute("age", 20);
String id_str = session.getId();
long lasttime = session.getLastAccessedTime();
long createdtime = session.getCreationTime();
long time_used = (lasttime - createdtime) / 60000;
int inactive = session.getMaxInactiveInterval() / 60;
boolean b_new = session.isNew();
removeAttribute() 메소드 사용
모두 사라지게 하려면 invalidate() 사용
이번에 액션 태그, 세션, 그리고 쿠키에 대해 학습하였다.
이 세 가지는 JSP에서 웹 프로그래밍을 할 때 매우 자주 사용되는 개념들이기 때문에 정확하게 이해하고 익혀두는 것이 중요하다.
이 세 가지 기술은 각각의 용도와 특징이 다르며, 실무에서 자주 활용되기 때문에 단순히 사용하는 것에 그치지 않고 동작 방식과 차이점까지 명확히 이해하는 것이 중요하다고 느꼈다.
앞으로도 예제를 반복해서 실습하며 자연스럽게 익히고, 언제든 활용할 수 있도록 숙련도를 높여야겠다.