프로그래밍 언어/자바 웹

requestScope 사용 실습

· 코딩마이데이

이번에는 request 객체와 동일한 기능을 하는 requestScope를 사용해 보겠습니다.

 

1. 회원 가입창인 memberForm.jsp의 action 속성을 forward.jsp로 수정하고 회워 정보를 입력한 후 forward.jsp로 전송합니다.

<form method="post" action="forward.jsp">

 

2. forward.jsp를 다음과 같이 작성합니다. 회원 가입창의 requests 객체에 setAttribute() 메서드를 이용해 address를 바인딩한 후 다시 member2.jsp로 포위딩합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("utf-8");
	request.setAttribute("address", "서울시 강남구");
%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>forward</title>
</head>
<body>
	<jsp:forward page="member2.jsp"></jsp:forward>
</body>
</html>

 

3. member2.jsp를 다음과 같이 작성합니다. requestScope를 이용해 바인딩된 address를 접근해서 주소를 출력합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" 
    isELIgnored="false"  %>
<%
   request.setCharacterEncoding("UTF-8");
%>   
<html>
<head>
<meta charset=”UTF-8">
<title>회원 정보 출력창</title>
</head>
<body>
<table border="1"   align="center">
    <tr align="center" bgcolor="#99ccff">
       <td width="20%"><b>아이디</b></td>
       <td width="20%"><b>비밀번호</b></td>
       <td width="20%" ><b>이름</b></td>
       <td width="20%"><b>이메일</b></td>
       <td width="20%" ><b>주소</b></td>
    </tr>
<tr align=center>
       <td>${param.id } </td>
       <td>${param.pwd} </td>
       <td>${param.name } </td>
       <td>${param.email }</td>
       <td>${requestScope.address}</td>
   </tr>
</table>
</body>
</html>

 

4. http://localhost:8090/pro14/test01/memberForm.jsp로 다시 요청하여 회원 가입창에 회원 정보를 입력하고 가입하기를 클릭합니다.

회원 가입창에서 회원 정보를 입력 후 가입하기 클릭

 

5. 실행 결과를 보면 회원 정보가 두 번 출력된 것을 알 수 있습니다. 첫 번째 회원 정보는 getParameter() 메서드로 가져온 후 출력한 것이고, 두 번쨰 회원 정보는 param 내장 객체로 출력한 결과입니다.

회원 정보 출력

 

따라서 param 내장 객체를 사용하면 굳이 전송된 매개변수를 getParameter() 메서드를 이용하지 않고 바로 매개변수 이름으로 접근해서 값을 억을 수 있습니다.