자바(Java)/JAVA 2EE

JSP 페이지 제어방법

본클라쓰 2009. 1. 11. 16:08

JSP 페이지 제어 방법

 

JSP에서 페이지를 제어하는 벙법은 인크루드 액션 태그를 사용하거나 포워드 액션 태그를 사용하여 페이지를 제어합니다. 또한, response.sendRedirect() 메소드를 사용하여 페이지를 이동시킬 수도 있습니다.

 

 


1. 인크루드 액션 태그

<jsp:include page ="포함할 페이지 URL" flush="false"/>

 인크루드 액션 태그는 인크루드 디렉티브와 함께 다른 페이지를 현재 페이지에 포함시킬 수 있습니다. 인크루드 디렉티브는 단순하게 소스의 내용을 텍스트 형태로 포함하지만 인크루드 액션 태그는 포함시킬 페이지의 처리 결과를 포함시킨다는 점이 다릅니다. 따라서 인크루드 디렉티브는 주로 조각 코드를 삽입할 때 사용하고, 인크루드 액션 태그는 페이지를 모듈화하여 처리 결과를 현재 페이지에 포함할 때 사용합니다.


 

2. 포워드 액션 태그

<jsp:forward page="이동할 페이지 URL" flush="false" />

포워드 액션 태그는 페이지의 전환을 시켜주는 액션 태그입니다. 현재 페이지에서 다른 페이지로 이동을 나타내며 페이지의 제어권을 완전히 다른 페이지로 넘겨 줍니다.

 

 

 


예 제

<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<html>
<head>
<title> DIV 태그 태스트 </title>

<style type="text/css">   
<!-- 스타일 시트 사용 -->
body { margin: 0; padiing: 10px; background-color: #fff; }
#footer { clear: both; background-color: #C3D9FF; height: 40px; width: 500px; }
</style>
</head>

 

<body>
    <!-- 직접 DIV 태그를 사용한 부분 -->
    <div id="header" style="background-color: #E8EEFA; width: 500px;" ><%@ include file="Header.jsp" %></div>
    <div id="container" style="width: 500px;" >
        <div id="left_menu" style="float: left; background-color: #ffc64a; width: 100px; height: 214px; "> 좌측메뉴 </div>
        <div id="contents" style="float: right; background-color: #ffa12c; width: 400px; height: 214px;" >
         <form method="post" action="infoPro.jsp">
          이름 : <input type="text" name="name" maxlength="12"><br>
          성별 : <input type="radio" name="sex" value="man">남자
           <input type="radio" name="sex" value="woman">여자<br>
          <input type="submit" value="입력완료"></form>
        </div>
    </div>
 
    <!-- 스타일시트를 이용한 부분 -->
    <div id="footer"> 하단</div>
</body>
</html>

 

header.jsp 페이지

<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<html>
<head>
<title>헤더페이지</title>
</head>
<body>
 <center>
 <h2> include액션태그와 include 디렉티브 </h2></center>
</body>
</html>

 

content.jsp 페이지

<%@ page contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<html>
<% request.setCharacterEncoding("euc-kr"); %>
<%
 String name=request.getParameter("name");
 String sex=request.getParameter("sex");
 
 try {
  if(sex.equals("man")) { sex="남자"; }
  else { sex="여자"; } 
 }catch(Exception e) {
  out.println("성별 error");
 }
 
%>

<head>
<title> DIV 태그 태스트 </title>

<style type="text/css">   
   <!-- 스타일 시트 사용 -->
    body { margin: 0; padiing: 10px; background-color: #ffffff; }
    #footer { clear: both; background-color: #C3D9FF; height: 40px; width: 500px; }
</style>
</head>

 

<body>
    <!-- 직접 DIV 태그를 사용한 부분 -->
    <div id="header" style="background-color: #E8EEFA; width: 500px;" >
     <%@ include file="Header.jsp" %> </div>
    <div id="container" style="width: 500px;" >
        <div id="left_menu" style="float: left; background-color: #ffc64a; width: 100px; height: 214px; "> 좌측메뉴 </div>
        <div id="contents" style="float: right; background-color: #ffa12c; width: 400px; height: 214px;" >
         <form method="post" action="infoPro.jsp">
          이름 : <input type="text" name="name" maxlength="12"><br>
          성별 : <input type="radio" name="sex" value="man">남자
           <input type="radio" name="sex" value="woman">여자<br>
          <input type="submit" value="입력완료"></form>
        </div>
    </div>
 
    <!-- 스타일시트를 이용한 부분 -->
    <div id="footer">  <h> 입력한 값의 이름음 <%=name %>이고, 성별은 <%=sex %>입니다. </h></div>
</body>
</html>

 

 [결 과] 

 

footer.jsp 페이지와 left_menu.jsp 페이지는 생략했습니다.



참고

포함되는 페이지에 CSS를 사용할 경우 포함시키는 페이지에서 CSS 정의가 있어야 포함되는 페이지의 CSS가 적용됩니다. 이것은 자바 스크립트 또한 마찬가지입니다. 포함되는 페이지를 작성할 때 주의하여 작성해야 합니다.