새소식

인기 검색어

풀스택개발자_대학교 정규과정/JSP_Example

forward 사용하지 않고 값 넘겨주기

  • -
<jsp:include> 액션 태그를 사용한 페이지와 <jsp:include>태그를 통해 호출된 페이지는 request 기본객체, response 기본객체, out 기본객체를 공유하게 됩니다.
main.jsp에서 contentA.jsp 페이지를 include 하게 되는 경우의 처리는 다음과 같습니다.
 
 
1. 브라우저로부터 서버에 main.jsp 요청이 들어오면 main.jsp 페이지 처리가 시작되고 처리 내용을 출력 버퍼로 출력합니다.
2. <jsp:include> 가 실행 되면서 request, response, out 객체를 contentA.jsp 페이지에 전달함과 동시에 실행 흐름 제어가 넘어갑니다.
3. 넘겨받은 기본객체들을 이용하여 contentA.jsp 페이지를 처리하고 처리 내용을 전달받은 out 객체를 이용해 버퍼에 출력합니다. 기본객체들을 공유하므로 출력 버퍼 또한 공유됩니다.
4. contentA.jsp 페이지의 처리가 끝나면 다시 제어가 main.jsp 페이지로 넘어가고 main.jsp 페이지의 나머지 처리를 하고 버퍼에 저장됐던 모든 처리 내용을 브라우저로 출력합니다.

따라서 include를 사용함으로써 include_action03.jsp에게 제어권을 넘겨줍니다

 

page_control.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>page_control.jsp</title>
</head>
<body>
<h2>forward, sendredirect 테스트</h2>
<form action="include_action2.jsp" method="post">
    forward action : <input type="text" name="username">
    <input type="submit" value="확인">
</form>

<form action="response_sendRedirect.jsp" method="post">
    respnse.sendRedirect : <input type="text" name="username">
    <input type="submit" value="확인">
</form>
</body>
</html>

 

include_action2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%request.setCharacterEncoding("UTF-8");%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<jsp:include page="include_action03.jsp">
    <jsp:param name="name" value='<%=request.getParameter("username")%>'/>
    <jsp:param name="tel" value="010-0000-0000"/>
</jsp:include>
</body>
</html>

include_action03.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%request.setCharacterEncoding("UTF-8");%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>forward action 없이 request 유지 결과</h2>
<hr>
지금 보이는 화면은 include__action03.jsp에서 출력한 결과입니다
<hr>
이름 : <%=request.getParameter("username")%><Br>
전화번호 : <%=request.getParameter("tel")%>
</body>
</html>

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.