본문 바로가기
개발/JSP

(JSP) 액션 태그 (Action Tag)

by kakk789 2022. 5. 22.

JSP 액션태그

  • jsp에서 사용하는 태그
  • JSP 페이지 내에서 어떤 동작을 하도록 지시하는 태그, 예를 들어 페이지 이동, 페이지 include, 자바 빈 생성 등이 있습니다.
  • XML 형식인 <jsp: …… /> 를 사용하며 반드시 닫아 줘야함

1. forward 액션태그

  • 현재 위치한 jsp 웹페이지에서 다른 웹페이지로 이동할 때 사용
<jsp:forward page="파일명"/>

- jsp 액션 forward 태그는 리다이렉트 될 때 리다이렉트 되는 파일이 노출이 안됨.
만약 red.jsp에서 yellow.jsp 로 리다이렉트 시켰다면 URL에 표시될 때 red.jsp만 표시됨

response.sendRedirect("yellow.jsp")

- 이것도 리다이렉트 하는 자바 코드이지만 해당의 경우 yellow.jsp가 노출이 됨.

2. include 액션태그

  • 특정 영역에 외부파일의 내용을 포함할 때 사용
<jsp:incluse page="파일명">

- 문서의 실행 결과를 포함 시킴
- 해당 파일명의 .java / .class 파일이 별도로 생성됨
- 즉 파일명.java / 파일명.class 가 생성되어 실행 됨

<%@ include file="파일명" %>

- 문서의 내용을 포함 시킴

액션태그 include <jsp:include>

  • 문서의 실행결과를 포함시키는 것
  • 포함되는 문서의 별도의 서블릿이 생성
  • 포함되는 문서의 내용이 완전해야함

main02.jsp안에는 단순 실행 결과만 포함되어 있음

main02.jsp

age02.jsp의 .class파일과 .java파일이 각각 생성되었음

지시자 include ( <%@ )

  • 문서의 내용을 포함
  • 포함되는 문서의 별도의 서블릿이 생성되지 않음
  • 포함되는 문서의 내용이 완전하지 않아도 됩니다.
.jsp 를 요청하면 내가 요청한 jsp의 .java 가 생성되고 .class 가 생성된 후 jsp가 실행 됨

main01.jsp에서 age01.jsp를 호출

main01.jsp

age01.jsp에서 선언된 값 (age =20)

main01.jsp가 실행되면 .main01.java가 생성되고

'main01.java'에 'age01.jsp'의 내용('age=20') 이 추가되어 있음 

3. 액션태그 Param

  • 다른 웹페이지로 파라미터를 전달할 때 사용
  • 당연히 forward나 include 내부에서 선언하여 사용
<jsp:param value="전달할 값" />

자바 빈즈(Java Beans)

  • 자바코드와 HTML 코드가 뒤섞여있어 유지보수의 어려움이 있다. 그래서 '자바 소스코드' '자바 클래스'로 따로 빼두어 JSP가 복잡해지는 것을 방지할 수 있음.
  • 이때, 웹 어플리케이션에서 사용하는 객체들을 '자바 빈즈(beans)'라고 표현

4. useBean 액션태그 

  • 자바빈즈를 JSP 웹페에지에서 사용하기 위해 java클래스를 선언하고 초기화하는 태그
  • 스크립틀릿을 안쓰고 'useBean'액션 태그 안에서 객체를 생성하여 사용할 수 있음
<jsp:useBean id="변수명" class="클래스명" type="타입명" scope="page | request | session | application" />

scope 설명
: page - 현재 문서에서만 해당 객체를 사용 (기본 값)
: request - 링크가 걸려있는 다음 문서에서도 사용
: session - 세션 파기 전까지 유지 (= 브라우저 닫기 전까지)
: application - 서버 종료 전까지 유지

아래 두 코드는 같은 코드 (useBean VS 스크립틀릿)

    // useBean 액션태그 안에서 선언
    <jsp:useBean id="nowTime" class="java.util.Date" />
    
    // 스크립틀립 안에서 선언
    <%
	Date nowTime = new Date();
    %>

5. useBean 액션태그에서 SETTER / GETTER 설정

  • setProperty / getProperty
<jsp:setProperty property="실제 속성 명" value="값" name="객체id"/>
<jsp:setProperty property="실제 속성 명" value="*" name="객체id"/>
( * 을 사용하기 위해선 객체VO의 변수명과 입력 받을 tag의 name이 동일 해야한다)

<jsp:getProperty property="실제 속성 명" name="객체id"/>
	<jsp:useBean id="m" class="com.sist.vo.MemberVO"></jsp:useBean>
	<jsp:setProperty property="id" value="tiger" name="m"/>
	<jsp:setProperty property="pwd" value="1234" name="m"/>
	<jsp:setProperty property="name" value="name" name="m"/>
	아이디 : <jsp:getProperty property="id" name="m"/>
	비밀번호 : <jsp:getProperty property="pwd" name="m"/>
	이름 : <jsp:getProperty property="name" name="m"/>

 

반응형

'개발 > JSP' 카테고리의 다른 글

(JSP) JSTL(JavaServer Pages Standard Tag Library)  (0) 2022.05.24
(JSP) MVC 패턴  (0) 2022.05.23
(JSP) JSP에서 세션(Session), 쿠키(Cookie) 사용법  (0) 2022.05.22
(JSP) href로 파라미터 전달하기  (0) 2022.05.21
(JSP) ResultSet  (0) 2022.05.19

댓글