! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !
WebApp14
[실습 개요]
○ TestSession01.jsp 에서 TestSession02.jsp로
이름과 전화번호를 입력받아 전송
TestSession02.jsp 에서 TestSession03.jsp로
아이디와 패스워드를 입력받고
앞에서 전달받은 이름과 전화번호를 함께 전송
TestSession03.jps 에서 전달받은 이름, 전화번호, 아이디, 패스워드 출력
01 ──────────→ 02 ──────────→ 03
이름, 전화번호 아이디, 패스워드 이름, 전화번호, 아이디, 패스워드
입력 입력 출력
- getParameter - getAttribute
※ 즉, 01에서 02로 넘겨받을 땐 getParameter
02 에서 03 으로 넘겨받을 땐 getParameter 와 getAttribute 로 세션 활용
01 에서 03 으로 넘겨줄 수 없기 떄문에 세션(session)에 저장
※ session 외에 input 태그 hidden 속성을 이용한 정보 전달 가능~!!!
TestSession01.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TestSession01.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
<style type="text/css">
body {text-align: center;}
.txt {margin: 10px;}
.btn {width: 150px; height: 40px;}
</style>
<script type="text/javascript">
function sendIt()
{
// 확인
//alert("함수 호출 확인~!!!")
var f = document.forms[0]; //_form에 name이 없을 떄
if (!f.name.value)
{
alert("이름을 입력해야 합니다~!!!");
f.name.focus();
return;
}
if (!f.tel.value)
{
alert("전화번호를 입력해야 합니다~!!!");
f.tel.focus();
return;
}
f.submit();
}
</script>
</head>
<body>
<div>
<h1>이름과 전화번호(TestSession01.jsp)</h1>
<hr>
</div>
<div>
<form action="TestSession02.jsp" method="post">
이름 <input type="text" name="name" class="txt"><br>
전화번호<input type="text" name="tel" class="txt"><br>
<br>
<button type="button" class="btn" onclick="sendIt()">입력</button>
</form>
</div>
</body>
</html>
TestSession02.jsp
+ hidden 이나 form action의 주소값으로 넘겨주던 변수들을 session.setAttribute를 이용하여 세션을 통해 넘겨줌
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// 이전 페이지(TestSession01.jsp)로부터 데이터 수신
// → userName, userTel
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("name");
String userTel = request.getParameter("tel");
// check~!!!
// 추가
session.setAttribute("userName", userName);
session.setAttribute("userTel", userTel);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TestSession02.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
<style type="text/css">
body {text-align: center;}
.txt {margin: 10px;}
.btn {width: 150px; height: 40px;}
</style>
<script type="text/javascript">
function sendIt()
{
// 확인
//alert("함수 호출 확인~!!!")
var f = document.forms[0]; //_form에 name이 없을 떄
if (!f.userId.value)
{
alert("아이디를 입력해야 합니다~!!!");
f.userId.focus();
return;
}
if (!f.userPwd.value)
{
alert("패스워드를 입력해야 합니다~!!!");
f.userPwd.focus();
return;
}
f.submit();
}
</script>
</head>
<body>
<div>
<h1>아이디와 패스워드(TestSession02.jsp)</h1>
<hr>
</div>
<div>
<form action="TestSession03.jsp" method="post">
아이디 <input type="text" name="userId" class="txt"><br>
패스워드<input type="text" name="userPwd" class="txt"><br>
<br>
<button type="button" class="btn" onclick="sendIt()">입력</button>
</form>
<%--
<input type="hidden" name="userName" value="<%=userName %>">
<input type="hidden" name="userTel" value="<%=userTel %>">
--%>
</div>
</body>
</html>
TestSession03.jsp
+ TestSession02.jsp로 부터 넘겨받은 데이터들은 request.getParameter("name명");
+ TestSession01.jsp로 부터 넘겨받은 데이터들은 (String)session.getAttribute("name명");
+ session.getAttribute("name명")은 object이기 때문에 String으로 받기 위한 다운캐스팅 필요
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// 이전 페이지(TestSession02.jsp)로 부터 데이터 소신
// → userId, userPwd (+ userName, userTel)
request.setCharacterEncoding("UTF-8");
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
String userName = (String)session.getAttribute("userName");
String userTel = (String)session.getAttribute("userTel");
session.removeAttribute("userName");
session.removeAttribute("userTel");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>TestSession03.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/main.css">
<style type="text/css">
body {text-align: center;}
.txt {margin: 10px;}
.btn {width: 150px; height: 40px;}
</style>
</head>
<body>
<div>
<h2>이름, 전화번호, 아이디, 패스워드 출력</h2>
<h3>TestSession03.jsp</h3>
<hr>
</div>
<div>
<!-- <h4>이름 : 홍길동</h4> -->
<h4>이름 : <%=userName %></h4>
<!-- <h4>전화번호 : 010-4444-4444</h4> -->
<h4>전화번호 : <%=userTel %></h4>
<!-- <h4>아이디 : hong</h4> -->
<h4>아이디 : <%=userId %></h4>
<!-- <h4>패스워드 : 123456</h4> -->
<h4>패스워드 : <%=userPwd %></h4>
</div>
</body>
</html>
! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !
'JAVA개념&실습' 카테고리의 다른 글
WEB : [0526] JSP 액션 태그 실습 (0) | 2023.05.28 |
---|---|
WEB : [0526] cookie 실습 (0) | 2023.05.28 |
WEB : [0524-0525] 회원 관리 및 회원 성적 관리 페이지 구성 실습02 (0) | 2023.05.26 |
WEB : [0524-0525] 회원 관리 및 회원 성적 관리 페이지 구성 실습01 (0) | 2023.05.25 |
WEB : [0525] 로그인 세션(Session) 실습 (0) | 2023.05.25 |