Notice
Recent Posts
Recent Comments
Link
Everything has an expiration date
[JSP & JDBC & Oracle] 20231215 - [프로그램 소스] - TestSession01, TestSession02, TestSession03 본문
[JSP & JDBC & Oracle]/Program source (JSP & JDBC & Oracle)
[JSP & JDBC & Oracle] 20231215 - [프로그램 소스] - TestSession01, TestSession02, TestSession03
Jelly-fish 2023. 12. 18. 01:31
WebApp14
012
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/MemberScore.css">
<style type="text/css">
.btnMenu
{
border: 1px solid gray;
border-radius: 3px;
font-size: 10pt;
width: 60px;
height: 20px;
}
</style>
<script type="text/javascript">
function sendIt()
{
// 확인
// alert("함수 호출~!!!");
var f = document.forms[0];
if (!f.userName.value)
{
alert("이름을 입력하세요~!!!");
f.userName.focus();
return;
}
if (!f.userTel.value)
{
alert("전화번호를 입력하세요~!!!");
f.userTel.focus();
return;
}
f.submit();
}
</script>
</head>
<body>
<!--
○ TestSession01.jsp 에서 TestSession02.jsp 페이지로
이름과 전화번호를 입력받아 전송
TestSession02.jsp 에서 TestSession03.jsp 페이지로
아이디와 패스워드를 입력받고
앞에서 전달받은 이름과 전화번호를 함께 전송
TestSession03.jsp 에서 전달받은 이름, 전화번호, 아이디, 패스워드 출력
01 →→→→→→→→→→→ 02 →→→→→→→→→→→ 03
이름, 전화 아이디, 패스워드 이름, 전화, 아이디, 패스워드
입력 입력 출력
- getParameter - getAttribute
※ 즉, 01 에서 02 로 넘겨받을 땐 getParameter
02 에서 03 으로 넘겨받을 땐 getParameter 와 getAttribute 로 세션 활용
01 에서 03 으로 직접 넘겨줄 수 없기 때문에 세션(session)에 저장
※ session 외에 input 태그 hidden 속성을 이용한 정보 전달 가능~!!!
-->
<div>
<form action="TestSession02.jsp" method="post">
<table border="2" class='table'>
<tr>
<td>
이름 입력
</td>
<td>
<input type="text" class="txt" name="userName">
</td>
</tr>
<tr>
<td>
전화번호 입력
</td>
<td>
<input type="text" class="txt" name="userTel">
</td>
</tr>
<tr>
<td colspan="2">
<!-- <a href="TestSession02.jsp"> -->
<a href="javascript:sendIt()">
<button type="button" class="btn" >다음 페이지로 전송</button>
<!-- <input type="submit" class="btn" value="입력 완료"> -->
<!-- <input type="hidden"> 같은 경우는 현재 잘 사용하지 않는다.
session 처리 비용이 컸을 때 사용했던 방식...
주로 session 사용...
-->
</a>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
TestSession02.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%
// 01에서 받은 값 session
// 02에서 입력받은 값 request
/*
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("userName");
String userTel = request.getParameter("userTel");
session.setAttribute("userName", userName);
session.setAttribute("userTel", userTel);
*/
// 이전 페이지(TestSession01.jsp)로부터 넘어온 데이터 수신
// → userName, userTel
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("userName");
String userTel = request.getParameter("userTel");
// 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/MemberScore.css">
<script type="text/javascript">
function sendIt()
{
// 확인
//alert("함수 호출~!!!");
var f = document.forms[0];
if (!f.userId.value)
{
alert("아이디를 입력하세요~!!!");
f.userId.focus();
return;
}
if (!f.userPwd.value)
{
alert("패스워드를 입력하세요~!!!");
f.userPwd.focus();
return;
}
}
</script>
</head>
<body>
<div>
<form action="TestSession03.jsp" method="post">
<table border="2" class='table'>
<tr>
<td>
아이디 입력
</td>
<td>
<input type="text" class="txt" name="userId">
</td>
</tr>
<tr>
<td>
패스워드 입력
</td>
<td>
<input type="text" class="txt" name="userPwd">
</td>
</tr>
<tr>
<td colspan="2">
<!-- <a href="TestSession03.jsp"> -->
<a href="javascript:sendIt()">
<input type="submit" class="btn" value="입력 완료" >
</a>
</td>
</tr>
</table>
</form>
<%--
<input type="hidden" name="userName" value="<%=userName %>">
<input type="hidden" name="userTel" value="<%=userTel %>">
--%>
</div>
</body>
</html>
TestSession03.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%
/*
request.setCharacterEncoding("UTF-8");
String userName = (String)session.getAttribute("userName");
String userTel = (String)session.getAttribute("userTel");
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
String result = String.format("회원 이름 : %s<br>회원 전화번호 : %s<br>회원 ID : %s<br>회원 PW : %s", userName, userTel, userId, userPwd);
*/
// 이전 페이지(TestSession02.jsp)로부터 넘어온 데이터 수신
// → userId, userPwd
request.setCharacterEncoding("UTF-8");
String userId = request.getParameter("userId");
String userPwd = request.getParameter("userPwd");
// 이렇게 꺼낼 수 없다!
// request 가 아니라, session 에서 꺼내야 한다~!!
//String userName = request.getParameter("userName");
//String userTel = request.getParameter("userTel");
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">
</head>
<body>
<div>
<%-- <%=result %> --%>
</div>
<div>
<h2>이름, 전화번호, 아이디, 패스워드 출력</h2>
<h2>(TestSession03.jsp)</h2>
</div>
<div>
<h4>이름 : <%=userName %></h4>
<h4>전화번호 : <%=userTel %></h4>
<h4>아이디 : <%=userId %></h4>
<h4>패스워드 : <%=userPwd %></h4>
</div>
<div>
<a href="TestSession01.jsp">
<button type="button" class="btn">첫 화면으로 돌아가기</button>
</a>
</div>
</body>
</html>