본문 바로가기

JAVA/JSP

JSP - 액션태그 관련 설명 및 예제

반응형

** jsp 액션태그의 정의

: 원래 html태그에는 없는 기능으로써 자바문법을 대신하는 jsp가 제공하는 태그들


** jsp 액션태그의 종류

<jsp:useBean>

<jsp:include>

<jsp:forward>

<jsp:param>



** <jsp:useBean>

new : 객체를 생성하기 위한 new 연산자를 대신하는 태그

<jsp:useBean> new 연산자를 대신함

<jsp:setProperty> setter 를 대신함

<jsp:getProperty> getter 를 대신함


** jsp 사용하는 자바객체를 bean이라고 표현한다.

자바문법 new를 대신하는 액션태그 useBean이다.

속성 :

id 객체변수명

calss 자료형

scope 객체의 유효범위(page, request, session, application)



** <jsp:include>설명 중 include 의 두가지

액션태그

<jsp:include>

: 이미 있는 다른 문서를 현재의 문서에 포함하는 기능


지시자 include

<%@ include>


** 두가지 include 의 차이

: 포함되는 문서의 서블릿이 만들어지냐, 안만들어지냐 차이

액션태그 include는 포함되는 문서의 서블릿이 별도로 만들어 지고 실행결과가 포함

실행결과가 포함되기에 포함되는 문서가 완전해야한다.

지시자 include는 문서의 내용을 포함하여 하나의 서블릿이 만들어 짐

문서의 내용이 완전하지 않아도 가능하다.

포함할 문서의 내용이 일부여야 가능하다.


** 서블릿 생성 확인

액션태그 : <jsp:include page="age.jsp" />

지시자 : <%@ include file="age02.jsp" %>

main.jsp

age.jsp

main02.jsp

(age02.jsp) X


main.jsp 와 age.jsp 둘다 서블릿이 존재하지만

main02.jsp 만 존재한다. (age02.jsp는 존재하지 않는다.)




** <jsp:forward>

: 사용자의 상황에 따라 다른 문서로 이동시키기 위한 액션태그


response.sendRedirect() 와 비슷한 기능을 함(분명한 차이점도 있다.)


** <jsp:forward> 와 response.sendRedirect 차이

: 이동되는 것은 동일하나 이동된 주소를 노출하냐 안하냐의 차이

어떤것을 사용할지는 사용자가 정하는 것이지만 대체적으로 노출안하는 것이 좋고 일반적으로 많이 사용

노출X http://localhost:8088/day0412/red.jsp

노출O http://localhost:8088/day0412/yellow02.jsp


** <jsp:param>

<jsp:include> 혹은 <jsp:forward>의 하위노드로 사용되며

포함하는 문서나 혹은 이동하는 문서에게 전달할 값이 있을 때 사용한다.


형식)

<jsp:include>

보내는것

<%

String name = "홍길동";

%>

이름은 <%= name %> 입니다.

<br>

<!-- page 안에는 추가할 다른 문서의 이름을 넣어준다. -->

<jsp:include page="age.jsp" >

<!-- name 변수명, value 값 -->

<jsp:param value="24" name="age"/>


</jsp:include>


받는것

<!-- 이문서는 main문서에 넣을 것임 -->

age.jsp의 내용입니다.

<hr>

<%

int age = Integer.parseInt(request.getParameter("age"));

%>

나이는 <%=age %> 살입니다.

<hr>



<jsp:forward>


보내는것

<body bgcolor="hotPink">

<h2>red03.jsp입니다</h2>

<hr>

<jsp:forward page="yellow03.jsp" >

<jsp:param value="hello JSP!!" name="msg"/>

</jsp:forward>


</body>


받는것

<body bgcolor="yellow">

<h2>yellow03.jsp 입니다.</h2>

<hr>

<%

String msg = request.getParameter("msg");

%>

전달된 메세지 : <%=msg %>

</body>

반응형