2013년 7월 10일 수요일

(130710) 13일차 ActionTest.jsp, IncludePage.jsp (JSP Action 태그 설명, include, forward 테스트)

 - JSP Action 태그 : <jsp:action …/>
 : Jsp에서 미리 정의되어있는 XML형식의 태그
 : <jsp:useBean … /> - Jsp에서 Java Bean을 사용하게 한다.
 : <jsp:setProperty …/> - 사용하고있는 bean의 property에 특정 값을 할당한다.
 : <jsp:getProperty … /> - 사용하고있는 bean의 property의 값을 얻어온다.
 : <jsp:include … /> - 현재 페이지를 이동한다. 변환 및 컴파일은 따로 하게 된다.
 : <jsp:forward … /> - sendRedirect("url")와 비슷한 역할을 한다.
 : <jsp:plugin … />


 - <jsp:include … />
 : <jsp:include page = "포함시켜 보여주려는 page" flush="true"/>
<jsp:include page="included Page" flush="true">
<jsp:param name="…" value=“…”  />
</jsp:include>
 : Jsp 페이지 내부의 어디서나 사용가능 
 : page 에 servlet, HTML, jsp 파일을 올 수 있다.
 : <%@ include …%>와 다르게 파일을 컴파일 한 후 client에게 보여 줄때만 포함시켜 보여준다.
 : 일반적으로 <%@ include …%>는 정적인 파일을 <jsp:include …/>는 동적인 파일을 포함시킨다.


 - IncludePage.jsp 소스
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<hr>
<h2> Include Page 입니다. </h2>
<%
String data = request.getParameter("name"); // 포함시킬 페이지의 데이터를 넘길 수 있다.
out.print(data);
%>

</body>
</html>


 - ActionTest.jsp 소스
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h2> 액션태그 연습 </h2>
include 태그 연습중 입니다.
<br><br>
<hr color = "red">
<br>
<!-- include 지시어와 다르게 페이지를 각각 컴파일 한다. -->
<!-- param을 쓰지 않을때는 첫줄을 /로 닫아준다. -->
<jsp:include page="IncludePage.jsp">
<jsp:param value = "james" name = "name"/>
</jsp:include>
<br><br>
<hr color = "blue">
위에 내용이 나왔나요?
</body>
</html>


 - 결과




















 - <jsp:forward …/>
 : <jsp:forward page="이동하려는 page" />
<jsp:forward page="이동하려는 page">
<jsp:param name="…" value="…"  />
</jsp:forward>
 : 서블릿의 sendRedirect("url") 와 같이 지정한 page로 이동한다.
 : <jsp:forward …/>는  기존의 HttpRequest를 그대로 유지하면서 이동하기 때문에 새로 이동한 page에서도 이동전 페이지에서 사용되던 client의 request와 request에 포함된 모든 Data를 그대로 사용할수 있다.
 : 반면 서블릿의 sendRedirect("url")은 지정한 page로 이동하게 하기위해 client로 부터 새로운 network connection을 만들어 새로운 request가 생성되어, 그 전 page에서 사용되던 request를 유지할 수 없다.


 - IncludePage.jsp 소스
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<hr>
<h2> Include Page 입니다. </h2>
<%
String data = request.getParameter("name"); // 포함시킬 페이지의 데이터를 넘길 수 있다.
out.print(data);
%>

</body>
</html>


 - ActionTest2.jsp  소스

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h2> 액션태그 연습 </h2>
include 태그 연습중 입니다.
<br><br>
<hr color = "red">
<br>
<!-- 위의 내용 버퍼에 담겨만 있다가 forward를 만나면 다 버리고 제어권이  IncudePage.jsp로 넘어간다. -->
<!-- param을 쓰지 않을때는 첫줄을 /로 닫아준다. -->
<jsp:forward page = "IncludePage.jsp" >
<jsp:param value = "scott" name = "name"/>
</jsp:forward>
<hr color = "blue">
위에 내용이 나왔나요?
</body>
</html>


 - 결과