[๊ตฌ๋์์นด๋ฐ๋ฏธ IT๊ตญ๋น์ง์] ์ธ์
(session)์ ๋ํด ๋ฐฐ์ฐ๊ณ ๋ก๊ทธ์ธ๊ณผ ํ์๊ฐ์
๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์๋ค.
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ ํ์ด์ง์ ๋ณ์๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ๊ทธ๋์ ๋ค๋ฅธ ํ์ด์ง์์ ๊ทธ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ผ๋ฉด, request.getParameter ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์๋ค. ํ์ง๋ง ์ด ๋ฐฉ๋ฒ์ ํ์ด์ง๋ง๋ค ๊ณ์ํด์ ์ ๋ณด๋ฅผ ๋ถ๋ฌ์์ผํ๋ค๋ ํฐ ๋จ์ ์ด ์๋ค. Aํ์ด์ง์์ ์ ๋ ฅ๋ฐ์ ์ ๋ณด๋ฅผ B,C,D ํ์ด์ง ๋ชจ๋์์ ์ฌ์ฉํด์ผํ๋ค๋ฉด Aํ์ด์ง๋ถํฐ Dํ์ด์ง๊น์ง ๊ณ์ํด์ ์ ๋ณด๋ฅผ ๋ฐ์์์ผํ๋ ๊ฒ์ด๋ค.
<!-- ์น์ดํ๋ฆฌ์ผ์ด์
์ฌ์ฉ์ -->
<!--
ํด๋ผ์ด์ธํธ(pc๊ธฐ์ค์ด ์๋๊ณ ์น๋ธ๋ผ์ฐ์ ๊ธฐ์ค) -> ์๋ฒ(์น์๋ฒ)
-->
ex1.jsp session id : <%=session.getId()%> <!-- ์ธ์
id ์ถ๋ ฅ -->
<a href="./logout.jsp">๋ก๊ทธ์์</a>
์ด๋ ์ธ์ (session)์ ์ด์ฉํ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ธ์ ์ ํด๋ผ์ด์ธํธ(์ฌ์ฉ์)๊ฐ ์น์๋ฒ์ ์ต์ด ์ ์์์ ๋ถ์ฌ๋๋๋ฐ, ์ด๋ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๋ ๊ธฐ์ค์ pc๊ธฐ์ค์ด ์๋ ์น๋ธ๋ผ์ฐ์ ๊ธฐ์ค์ด๋ค. ์ฆ, ๋ด๊ฐ ํ๋์ pc๋ก ๊ฐ๊ฐ ๋ค๋ฅธ ์น๋ธ๋ผ์ฐ์ ๋ก ์น์๋ฒ์ ์ ์ํ๋ค๋ฉด ๊ฐ๊ฐ ๋ค๋ฅธ ์ธ์ ์ ๋ถ์ฌ๋ฐ๊ฒ ๋๋ค. (=๋ฌผ๋ฆฌ์ ๊ธฐ์ค์ด ์๋ ์ํํธ์จ์ด๊ฐ ๊ธฐ์ค!)
<!-- ex.1์์ 2๋ก ์ด๋ํด๋ ๋์ผํ ๋ธ๋ผ์ฐ์ ๋ฉด ์ธ์
id๋ ๋ฐ๋์ง ์์ -->
<!-- ๋จ, ๋ด๊ฐ ์ค์ ํ ์ผ์ ์๊ฐ(๋ํดํธ 30๋ถ)์ด ์ง๋๋ฉด ๋ฐ๋ -->
ex2.jsp session id : <%=session.getId()%> <!-- ์ธ์
id ์ถ๋ ฅ -->
์ธ์ ์ ๋ง์ง๋ง ์๋ต์๊ฐ์ด ์ค์ ๋ ์ผ์ ์๊ฐ (ํฐ์บฃ ๋ํดํธ๋ 30๋ถ)์ ์ง๋๋ฉด ์๋ฉธ๋๋ค. ๋๋ ๊ฐ์ ๋ก ์ธ์ ์์(๋ก๊ทธ์์)์ํฌ ์๋ ์๋ค. ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ๊ฐ๋งํ ์๋ฅํด์๋ค๊ณ ํด๋ ๊ทธ๊ฒ์ ์ฐ๊ฒฐ์ด ์ ์ง๋ ์ํ๊ฐ ์๋๋ค. ์์ฒญ๊ณผ ์๋ต์ด ์ด๋ฃจ์ด์ง๋ฉด ์ฐ๊ฒฐ์ ๋ฐ๋ก ๋์ด์ง๋ค. ๋ํ์ ์ธ ์๋ก ์ํ์ดํ์ด๋ ํํ์ด์ง๋ฅผ ์๊ฐํ๋ฉด ์ดํด๊ฐ ์ฝ๋ค. ์ํ์ ํนํ ์ธ์ ์ด ์งง๋ค. ๋ก๊ทธ์ธ์ ์ ์งํ๋ ค๋ฉด ์๋ก๊ณ ์นจ(์์ฒญ)์ ํด์ฃผ์ด์ผํ๊ณ , ๋ง์ง๋ง์ผ๋ก ์์ฒญ๋ ํ๋ก ์ผ์ ํ ์๊ฐ์ด ์ง๋๋ฉด ๋ก๊ทธ์์๋๋ค. ์ธ์ ์ด ์๋ฉธ๋ ๊ฒ์ด๋ค.
// ์ธ์
์ ๊ฐ์ ๋ก ์ข
๋ฃํ๋ ๋ฐฉ๋ฒ
session.invalidate();
response.sendRedirect("./ex1.jsp");
(๋ก๊ทธ์์์ ์ ํํ ๋งํ๋ฉด ๊ธฐ์กด ์ธ์ ์ ์๋ฉธ ์ํจ๋ค์ ์๋ก์ด ์ธ์ ์ ๋ถ์ฌํ๋ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. ์๋ํ๋ฉด ๋ก๊ทธ์์ ์ ์๋ก์ด ์ธ์ ์ด ๋ถ์ฌ๋๋ ์์ ํ์ด์ง๋ก ๋ฆฌ๋ค์ด๋ ์ ์ํค๊ธฐ ๋๋ฌธ์ด๋ค.)
๊ฒฐ๋ก ์ ์ผ๋ก, ์ฐ๋ฆฌ๊ฐ ์นํ์ด์ง๋ฅผ ๋ง๋ค ๋์๋ ํ์ด์ง ๋ณ์๊ฐ ์๋ ์ธ์
๋ณ์๋ฅผ ์ด์ฉํด์ผํ๋ค. ์ ๋ฒ ๋ค์ด์ด๋ฆฌ ํ๋ก์ ํธ๋ ํ์ด์ง ๋ณ์๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๋์ ์ผ์ ๋ฐ์ ์ถ๋ ฅํ์ง ๋ชปํ๋ค. ํ์ง๋ง ์ธ์
๋ณ์๋ฅผ ์ด์ฉํ๋ค๋ฉด, ์ฌ์ฉ์๋ง๋ค ๋ค๋ฅธ ์ผ์ ์ ์ถ๋ ฅํ ์ ์์ ๊ฒ์ด๋ค!
๐ attribute1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// ํ์ด์ง ๋ณ์๋ ๋ค๋ฅธํ์ด์ง์์ ํธ์ถํ ์ ์๋ค -> ์ปดํ์ผ ์๋ฌ
String name = "page local variable : gdj66";
// ํ์ด์ง ์์ฑ ๋ณ์๋ ๋ค๋ฅธํ์ด์ง์์ ํธ์ถ์ ๊ฐ๋ฅํ์ง๋ง null๊ฐ์ด ํธ์ถ๋๋ค.
pageContext.setAttribute("x", "pageContext:gdj66");
%>
<div><%=name%></div>
<div>ํ์ด์ง ์์ฑ ๋ณ์ - <%=pageContext.getAttribute("x")%></div>
<%
// ์ธ์
์์ฑ ๋ณ์
session.setAttribute("y1", "session:gdj66");
session.setAttribute("y2", Math.random());
%>
<div>์ธ์
์์ฑ ๋ณ์ - <%=session.getAttribute("y1")%></div>
<div>์ธ์
์์ฑ ๋ณ์(Random) - <%=session.getAttribute("y2")%></div>
<%
// ์ดํ๋ฆฌ์ผ์ด์
์์ฑ ๋ณ์
application.setAttribute("z", Math.random());
%>
<div>์ดํ๋ฆฌ์ผ์ด์
์์ฑ ๋ณ์ - <%=application.getAttribute("z")%></div>
<div><a href="./attribute2.jsp">attribute2</a></div>
</body>
</html>
๐ attribute2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
attribute1.jsp์ name๋ณ์๋ ์ฌ์ฉ์ ์ปดํ์ผ ์๋ฌ
-->
<div>ํ์ด์ง ์์ฑ ๋ณ์ - <%=pageContext.getAttribute("x")%></div>
<div>์ธ์
์์ฑ ๋ณ์ - <%=session.getAttribute("y1")%></div>
<div>์ธ์
์์ฑ ๋ณ์(Random) - <%=session.getAttribute("y2")%></div>
<div>์ดํ๋ฆฌ์ผ์ด์
์์ฑ ๋ณ์ - <%=application.getAttribute("z")%></div>
</html>
๐ ๊ฒฐ๊ณผ
ํ์ด์ง ์์ฑ ๋ณ์๋ ํ์ด์ง๊ฐ attribute2.jsp๋ก ๋ฐ๋์ null๊ฐ์ด ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ดํ๋ฆฌ์ผ์ด์
์์ฑ ๋ณ์๋ ๊ฐ๊ฐ ๋ถ์ฌ๋๋ ๊ณ ์ ํ ์์ญ์ด ์๋๋ผ ๊ณต๋์ผ๋ก ์ฌ์ฉํ๋ ์์ญ์ด๋ค. was๊ฐ ์ข
๋ฃ๋๋ฉด ์๋ฉธ๋๋ค.
๐ loginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// ๋ก๊ทธ์ธํ์ง ์์ ์ฌ์ฉ์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ํ์ด์ง
if(session.getAttribute("loginId") != null) {
response.sendRedirect(request.getContextPath() + "/home.jsp");
return;
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>๋ก๊ทธ์ธ ํผ</h1>
<% // ๋ก๊ทธ์ธ ์คํจ์ (msg ๋ฐ์์) ์๋ฌ๋ฉ์ธ์ง ์ถ๋ ฅ
if(request.getParameter("msg") != null) {
%>
<div><%=request.getParameter("msg")%></div>
<%
}
%>
<!-- ์ ๋์ฃผ์๋ก ์ ๊ธฐ ์ํด ํ๋ก์ ํธ ์ด๋ฆ์ ํธ์ถํ๋ ๋ฉ์๋ ์ฌ์ฉ, ์ถํ ํ๋ก์ ํธ ์ด๋ฆ์ด ๋ฐ๋์ด๋ ์์ ํ ํ์๊ฐ ์์! -->
<form action="<%=request.getContextPath()%>/loginAction.jsp" method="post">
<table>
<tr>
<td>์์ด๋</td>
<td>
<input type="text" name="id">
</td>
</tr>
<tr>
<td>ํจ์ค์๋</td>
<td>
<input type="password" name="pw">
</td>
</tr>
</table>
<button type="submit">๋ก๊ทธ์ธ</button>
</form>
</body>
</html>
request.getContextPath()
: ์๋์ฃผ์ ๋์ ์ ์ ๋์ฃผ์๋ฅผ ์ ์ ๋ ./์ด ์๋๋ผ ํ๋ก์ ํธ๋ช
์ ์ง์ ์
๋ ฅํด๋ ๋๋ค. ํ์ง๋ง ํ๋ก์ ํธ ๋ช
์ ์ธ์ ๋ ์ง ๋ฐ๋ ์ ์๋ ์ด๋ฆ์ด๋ค. ๊ทธ๋๋ง๋ค ํ๋ก์ ํธ๋ช
์ ์
๋ ฅํ ๋ชจ๋ ์ฝ๋๋ฅผ ์์ ํ๋ ๊ฒ์ ์ด๋ ค์ธ ๊ฒ์ด๋ค. ๊ทธ๋์ ํ๋ก์ ํธ๋ช
์ ์ด๋ฆ์ ๋ฐ์์ค๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.๐ ๊ฒฐ๊ณผ
๐ loginAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%> <!-- ํ๊ธ ๊นจ์ง์ง ์๊ฒ ๋๊ธฐ๋ ๋ฉ์๋ -->
<%
// ๊ธ์๊ฐ ๊นจ์ง๊ฑฐ๋ ์๊นจ์ง๊ฑฐ๋ ์ธ์ฝ๋ฉ ๊ผญ ํด์ฃผ๊ธฐ
request.setCharacterEncoding("utf-8");
// input ํ๊ทธ์ ์
๋ ฅํ id, pw ํ๋ผ๋ฏธํฐ๊ฐ ๋ณ์์ ๋ฐ์์ค๊ธฐ
String id = request.getParameter("id");
String pw = request.getParameter("pw");
// ๋๋ฒ๊น
System.out.println(id + " <- loginAction id");
System.out.println(pw + " <- loginAction pw");
// db ์ ๊ทผ ํ ๋ฉค๋ฒํ
์ด๋ธ์ ์
๋ ฅํ ๊ฐ๊ณผ ์ผ์นํ๋ ํ์ด ์์ผ๋ฉด -> ๋ก๊ทธ์ธ ์ฑ๊ณต / ์์ผ๋ฉด -> ๋ก๊ทธ์ธ ์คํจ
// id๊ฐ ๊ธฐ๋ณธํค๊ฐ ๋จ (์ค๋ณต์ด ๋ ์ ์๊ฒ)
// SELECT * FROM member WHERE id=? AND pw=?
final String tableId = "admin";
final String tablePw = "1234";
if(tableId.equals(id) && tablePw.equals(pw)) {
System.out.println("loginAction ๋ก๊ทธ์ธ ์ฑ๊ณต");
session.setAttribute("loginId", id); // ๋ก๊ทธ์ธ ์ฑ๊ณต ์ ๋ณด๋ฅผ (์ฌ์ฉ์ id๋ฅผ) ์ธ์
์ ์ ์ฅ
response.sendRedirect(request.getContextPath() + "/home.jsp"); // ๋ก๊ทธ์ธ ์ฑ๊ณต์ ํ์ผ๋ก
} else {
System.out.println("loginAction ๋ก๊ทธ์ธ ์คํจ");
String msg = URLEncoder.encode("ID์ PW๋ฅผ ๋ค์ ์
๋ ฅํด์ฃผ์ธ์!", "utf-8"); // ํ๊ธ ๊นจ์ง์ง ์๊ฒ ๋๊ธฐ๋ ๋ฉ์๋
response.sendRedirect(request.getContextPath() + "/loginForm.jsp?msg="+msg); // ๋ก๊ทธ์ธ ์คํจ์ msg์ ํจ๊ป ํผํ์ด์ง๋ก
}
%>
URLEncoder.encode
: ๋ฆฌ๋ค์ด๋ ์
์ ํ๊ธ๋ก ๋ ๊ฐ์ ์๋ฌ ์์ด ๋ณด๋ผ ์ ์๋ ๋ฉ์๋. <%@ page import="java.net.URLEncoder"%>
๋ก page importํ๋ค.๐ home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.net.URLEncoder"%>
<%
//๋ก๊ทธ์ธ ์ฑ๊ณตํ ์ฌ์ฉ์๋ง์ด ์ ๊ทผ ๊ฐ๋ฅํ ํ์ด์ง
if(session.getAttribute("loginId") == null) {
String msg = URLEncoder.encode("์๋ชป๋ ์ ๊ทผ์
๋๋ค!", "utf-8");
response.sendRedirect(request.getContextPath() + "/loginForm.jsp?msg=" + msg);
return;
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String loginId = (String)session.getAttribute("loginId"); // String ํ์
์ผ๋ก ํ๋ณํ
%>
<h1>ํ</h1>
<div>
<%=loginId%>๋ ๋ฐ๊ฐ์ต๋๋ค!
<a href="<%=request.getContextPath()%>/logoutAction.jsp">๋ก๊ทธ์์</a>
</div>
</body>
</html>
session.getAttribute
๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ด๋ ๋ฆฌํดํ์
์ Objectํ์
์ด๋ฏ๋ก ํ๋ณํ์ด ํ์ํ๋ค!๐ ๊ฒฐ๊ณผ
๐ logoutAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
session.invalidate(); // ์ธ์
์ ๋ชจ๋ ์์ฑ์ ์ ๊ฑฐ ์ฆ, ์ธ์
์ด๊ธฐํ(๋ฌดํจํ)
response.sendRedirect(request.getContextPath() + "/loginForm.jsp");
%>
๋ณธ๊ฒฉ์ ์ผ๋ก db์ ์ฐ๊ฒฐํ์ฌ ๋ก๊ทธ์ธ๊ณผ ํ์๊ฐ์
๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์๋ก์ด ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์ ๋ณ๊ฒฝ
webappํด๋๋ด์ ํด๋๋ฅผ ์์ฑํ์ฌ ํ์ผ์ ๊ด๋ฆฌํ๊ธฐ๋ก ํ๋ค.
๐ ์์ฑ
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div>
<jsp:include page="/inc/mainmenu.jsp"></jsp:include>
</div>
<div>
<!-- ํ๋ด์ฉ : ๋ก๊ทธ์ธํผ(๋ก๊ทธ์ธ ์ํ์๋๋ง), ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์๊ธ 5๊ฐ์ฉ -->
<!-- ๋ก๊ทธ์ธํผ -->
<%
if(session.getAttribute("loginMemberId") == null) {
%>
<h1>๋ก๊ทธ์ธ</h1>
<%
if(request.getParameter("msg") != null) {
%>
<%=request.getParameter("msg")%>
<%
}
%>
<form action="<%=request.getContextPath()%>/member/loginAction.jsp" method="post">
<table>
<tr>
<td>์์ด๋</td>
<td>
<input type="text" name="memberId">
</td>
</tr>
<tr>
<td>ํจ์ค์๋</td>
<td>
<input type="password" name="memberPw">
</td>
</tr>
</table>
<button type="submit">๋ก๊ทธ์ธ</button>
</form>
<%
}
%>
<!-- ์นดํ
๊ณ ๋ฆฌ๋ณ ๊ฒ์๊ธ 5๊ฐ์ฉ -->
</div>
<div>
<!-- include ํ์ด์ง : Copyright © ๊ตฌ๋์์นด๋ฐ๋ฏธ -->
<%
// request.getRequestDispatcher(request.getContextPath()+"./inc/copyright.jsp").include(request, response);
// ์์ฃผ ์ฐ์ง๋ง ๋๋ฌด ๊ธธ๋ค. ๊ทธ๋์ ์ก์
ํ๊ทธ๋ฅผ ํ์ฉํ๋ค!
%>
<jsp:include page="/inc/copyright.jsp"></jsp:include> <!-- ์ก์
ํ๊ทธ -->
</div>
</body>
</html>
๋ฉ์ธ๋ฉ๋ด๋ copyright์ฒ๋ผ ์๋จ์ด๋ ํ๋จ์ ๋ฐ๋ณต์ ์ผ๋ก ์ถ๋ ฅ๋๋ ๋ถ๋ถ์ include์ ํ์ฉํ๋ฉด ์ข๋ค. ๋งค์ฐ ๋ง์ ์์ ํ์ด์ง๋ฅผ ์์ ํ ๋์ ์ด ๋ถ๋ถ์ ์์ ํ๊ธฐ ์ํด ๋ชจ๋ ํ์ด์ง๋ฅผ ์ด์ด ์์ ํ๋ ๊ฒ์ ์ด๋ ค์ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ก์ ํ๊ทธ ๋ง๊ณ ๋ ์ปค์คํ ํ๊ทธ๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค. ์ด ๋ฐฉ๋ฒ์ ์ถํ์ ๋ฐฐ์ธ ์์ !
๐ mainmenu.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<div>
<ul>
<li><a href="<%=request.getContextPath()%>/home.jsp">ํ์ผ๋ก</a></li>
<!-- ๋ก๊ทธ์ธ์ : ํ์๊ฐ์
๋ก๊ทธ์ธํ: ํ์์ ๋ณด / ๋ก๊ทธ์์
๋ก๊ทธ์ธ์ ๋ณด: ์ธ์
loginMemberId -->
<%
if(session.getAttribute("loginMemberId") == null) { // ๋ก๊ทธ์ธ ์
%>
<li><a href="<%=request.getContextPath()%>/member/insertMemberForm.jsp">ํ์๊ฐ์
</a></li>
<%
} else { // ๋ก๊ทธ์ธ ํ
%>
<li><a href="<%=request.getContextPath()%>/">ํ์์ ๋ณด</a></li>
<li><a href="<%=request.getContextPath()%>/member/logoutAction.jsp">๋ก๊ทธ์์</a></li>
<%
}
%>
</ul>
</div>
๐ copyright.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Copyright © ๊ตฌ๋์์นด๋ฐ๋ฏธ
๐ ๊ฒฐ๊ณผ
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
session.invalidate(); // ๊ธฐ์กด ์ธ์
์ ์ง์ฐ๊ณ ๊ฐฑ์
response.sendRedirect(request.getContextPath() + "/home.jsp");
%>
์ฌ์ฉ์๊ฐ ์
๋ ฅํ ๊ฐ(ํ๋ผ๋ฏธํฐ๊ฐ)์ ๋ด์ ํด๋์ค๋ฅผ ์์ฑํ๋ค.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.net.*" %> <!-- ??? -->
<%@ page import = "vo.*" %>
<%
// ์ธ์
์ ํจ์ฑ ๊ฒ์ฌ
if(session.getAttribute("loginMemberId") != null) { // ๋ก๊ทธ์ธ๋์ด์๋ ์ํ๋ฉด ์ด ํ์ด์ง์ ์ฌ ์ ์๋ค
response.sendRedirect(request.getContextPath() + "/home.jsp");
return;
}
// ์์ฒญ๊ฐ ์ ํจ์ฑ ๊ฒ์ฌ
String memberId = request.getParameter("memberId");
String memberPw = request.getParameter("memberPw");
// ๋๋ฒ๊น
System.out.println(memberId + " <- loginAction memberId");
System.out.println(memberPw + " <- loginAction memberPw");
// ํด๋์ค์ ๊ฐ ๋ชจ์์ ๋ฃ๊ธฐ
Member paramMember = new Member();
paramMember.memberId = memberId;
paramMember.memberPw = memberPw;
// db ์ ์
String driver = "org.mariadb.jdbc.Driver";
String dburl = "jdbc:mariadb://127.0.0.1:3306/userboard";
String dbuser = "****";
String dbpw = "****";
Class.forName(driver);
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
conn = DriverManager.getConnection(dburl, dbuser, dbpw);
// ๋์ ์ฟผ๋ฆฌ ์์ฑ
String sql = "SELECT member_id memberId FROM member WHERE member_id = ? AND member_pw = PASSWORD(?)"; // ํจ์ค์๋ ์ํธํ ํด์ฃผ๊ธฐ
stmt = conn.prepareStatement(sql);
stmt.setString(1, paramMember.memberId);
stmt.setString(2, paramMember.memberPw);
// ๋๋ฒ๊น
System.out.println(stmt + " <- loginAction sql");
rs = stmt.executeQuery();
if(rs.next()) { // ์ผ์นํ๋ ๊ฐ์ด ์์ผ๋ฉด (true) ๋ก๊ทธ์ธ ์ฑ๊ณต
// ์ธ์
์ ๋ก๊ทธ์ธ ์ ๋ณด(memberid)๋ฅผ ์ ์ฅ
session.setAttribute("loginMemberId", rs.getString("memberId"));
System.out.println("๋ก๊ทธ์ธ ์ฑ๊ณต! ์ธ์
์ ๋ณด : " + session.getAttribute("loginMemberId"));
} else { // ๋ก๊ทธ์ธ ์คํจ
System.out.println("๋ก๊ทธ์ธ ์คํจ!");
}
// ํ์ผ๋ก ๋ฆฌ๋ค์ด๋ ์
response.sendRedirect(request.getContextPath() + "/home.jsp");
%>
member_pw = PASSWORD(?)
: ๋น๋ฐ๋ฒํธ๋ ์ํธํํด์ ๋ค๋ฃจ์ด์ผํ๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์์ฑ์์ ๊ผญ PASSWORD๋ฅผ ๋ถ์ฌ์ค๋ค.ํ์๊ฐ์ ๊ธฐ๋ฅ์ ์ง์ ์ถ๊ฐํด๋ณด์๋ค.
โ ๊ตฌํํด์ผํ ์
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
//์ธ์
์ ํจ์ฑ ๊ฒ์ฌ // ๋ก๊ทธ์ธ๋์ด์๋ ์ํ๋ฉด ์ด ํ์ด์ง์ ์ฌ ์ ์์
if(session.getAttribute("loginMemberId") != null) {
response.sendRedirect(request.getContextPath() + "/home.jsp");
return;
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>insertMemberForm.jsp</title>
</head>
<body>
<div> <!-- mainmenu include -->
<jsp:include page="/inc/mainmenu.jsp"></jsp:include>
</div>
<!-- ํ์๊ฐ์
ํผ -->
<h1>ํ์๊ฐ์
</h1>
<!-- ํ์๊ฐ์
์คํจ์ ์๋ฌ๋ฉ์ธ์ง ์ถ๋ ฅ -->
<%
if(request.getParameter("msg") != null) {
%>
<%=request.getParameter("msg")%>
<%
}
%>
<form action="<%=request.getContextPath()%>/member/insertMemberAction.jsp" method="post">
<table>
<tr>
<td>์์ด๋</td>
<td>
<input type="text" name="memberId" placeholder="์์ด๋๋ฅผ ์
๋ ฅํด์ฃผ์ธ์">
</td>
</tr>
<tr>
<td>ํจ์ค์๋</td>
<td>
<input type="password" name="memberPw" placeholder="ํจ์ค์๋๋ฅผ ์
๋ ฅํด์ฃผ์ธ์">
</td>
</tr>
</table>
<button type="submit">ํ์๊ฐ์
</button>
</form>
<div> <!-- copyright include -->
<jsp:include page="/inc/copyright.jsp"></jsp:include>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "java.sql.*" %>
<%@ page import = "java.net.URLEncoder"%> <!-- msg ํ๊ธ ๋ฉ์ธ์ง๊ฐ ๊นจ์ง์ง ์๋๋ก -->
<%@ page import = "vo.*" %>
<%
// method๊ฐ post๋ฐฉ์์ด๋ฏ๋ก ์ธ์ฝ๋ฉ
request.setCharacterEncoding("utf-8");
//์ธ์
์ ํจ์ฑ ๊ฒ์ฌ // ๋ก๊ทธ์ธ๋์ด์๋ ์ํ๋ฉด ์ด ํ์ด์ง์ ์ฌ ์ ์์
if(session.getAttribute("loginMemberId") != null) {
response.sendRedirect(request.getContextPath() + "/home.jsp");
return;
}
// ์์ฒญ๊ฐ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ msg ๋ฐ์
String msg = null;
if(request.getParameter("memberId") == null
|| request.getParameter("memberId").equals("")) {
msg = URLEncoder.encode("์์ด๋๊ฐ ์
๋ ฅ๋์ง ์์์ต๋๋ค", "utf-8");
} else if(request.getParameter("memberPw") == null
|| request.getParameter("memberPw").equals("")) {
msg = URLEncoder.encode("๋น๋ฐ๋ฒํธ๊ฐ ์
๋ ฅ๋์ง ์์์ต๋๋ค", "utf-8");
}
if(msg != null) { // msg ๋ฐ์์ (ํ์๊ฐ์
์คํจ์) form ํ์ด์ง๋ก
response.sendRedirect(request.getContextPath() + "/member/insertMemberForm.jsp?msg=" + msg);
return;
}
// null์ด๊ฑฐ๋ ๊ณต๋ฐฑ์ด ์๋๋ฉด ๊ฐ ๋ถ๋ฌ์ค๊ธฐ
String memberId = request.getParameter("memberId");
String memberPw = request.getParameter("memberPw");
System.out.println(memberId + " <- insertMemberAction memberId");
System.out.println(memberPw + " <- insertMemberAction memberPw");
// ํ๋ผ๋ฏธํฐ๊ฐ ํด๋์ค์ ์ ์ฅ
Member paramMember = new Member();
paramMember.memberId = memberId;
paramMember.memberPw = memberPw;
// ๋๋ผ์ด๋ฒ ๋ก๋ฉ ๋ฐ db ์ ์
String driver = "org.mariadb.jdbc.Driver";
String dburl = "jdbc:mariadb://127.0.0.1:3306/userboard";
String dbuser = "****";
String dbpw = "****";
Class.forName(driver);
Connection conn = DriverManager.getConnection(dburl, dbuser, dbpw);
PreparedStatement stmt1 = null;
PreparedStatement stmt2 = null;
ResultSet rs = null;
// id ์ค๋ณต๊ฒ์ฌ
// ํด๋น id๊ฐ ๋ฐ์ดํฐ์ ์กด์ฌํ๋์ง(where) count ํด๋ณธ๋ค
String sql1 = "SELECT count(*) FROM member WHERE member_id = ?";
stmt1 = conn.prepareStatement(sql1);
stmt1.setString(1, paramMember.memberId);
System.out.println(stmt1 + " <- insertMemberAction select count sql");
rs = stmt1.executeQuery();
// ์ค๋ณต๋ id ๊ฐฏ์ ํ์ธ
int cnt = 0;
if(rs.next()) {
cnt = rs.getInt("count(*)");
// ํด๋น id์ ๊ฐฏ์๋ฅผ cnt ๋ณ์์ ์ ์ฅ
// 0์ผ ๊ฒฝ์ฐ ์ค๋ณต ์์
}
// 0๋ณด๋ค ํด ๊ฒฝ์ฐ ์ค๋ณต ์์ // form์ผ๋ก ๋ฆฌ๋ค์ด๋ ์
if(cnt > 0) {
System.out.println(cnt + " <- insertMemberAction ์ค๋ณต๋ ์์ด๋ ๊ฐฏ์");
msg = URLEncoder.encode("์ค๋ณต๋ ์์ด๋์
๋๋ค", "utf-8");
response.sendRedirect(request.getContextPath() + "/member/insertMemberForm.jsp?msg=" + msg);
return;
} else {
System.out.println("insertMemberAction ์ค๋ณต๋ ์์ด๋ ์์");
}
// ํ์๊ฐ์
์ ๋ณด insert // ํจ์ค์๋ ์ํธํํด์ ์์ฑ
String sql2 = "INSERT INTO member(member_id, member_pw, createdate, updatedate) VALUES(?, PASSWORD(?), NOW(), NOW())";
stmt2 = conn.prepareStatement(sql2);
stmt2.setString(1, paramMember.memberId);
stmt2.setString(2, paramMember.memberPw);
System.out.println(stmt2 + " <- insertMemberAction insert sql");
// ์ฟผ๋ฆฌ๊ฐ ์ ์คํ๋์๋์ง ํ์ธ
int row = stmt2.executeUpdate(); // 1์ด๋ฉด 1ํ ์ฑ๊ณต, 0์ด๋ฉด ์คํจ
System.out.println(row + " <- insertMemberAction row");
// row๊ฐ์ ๋ฐ๋ผ msg๋ฐ์ ๋ฐ ๋ฆฌ๋ค์ด๋ ์
if(row == 1) { // ํ์๊ฐ์
์ฑ๊ณต์ home์ผ๋ก
System.out.println("insertMemberAction ํ์๊ฐ์
์ฑ๊ณต");
msg = URLEncoder.encode("ํ์๊ฐ์
์ด ์๋ฃ๋์์ต๋๋ค", "utf-8");
response.sendRedirect(request.getContextPath() + "/home.jsp?msg=" + msg);
return;
} else { // ํ์๊ฐ์
์คํจ์ form์ผ๋ก
System.out.println("insertMemberAction ํ์๊ฐ์
์คํจ");
msg = URLEncoder.encode("ํ์๊ฐ์
์ ๋ค์ ์๋ํด์ฃผ์ธ์", "utf-8");
response.sendRedirect(request.getContextPath() + "/member/insertMemberForm.jsp?msg=" + msg);
return;
}
%>
๐ ๊ฒฐ๊ณผ