[๊ตฌ๋””์•„์นด๋ฐ๋ฏธ IT๊ตญ๋น„์ง€์›] ์„ธ์…˜(session)์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.


๐Ÿ’ก ์„ธ์…˜(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");
%>
  • ์ด๋•Œ ๊ตณ์ด ์ฒ˜์Œ์— ์„ธ์…˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ(๋กœ๊ทธ์ธํ•œ ์ƒํƒœ์ธ์ง€ ์•„๋‹Œ์ง€)๋ฅผ ํ•  ํ•„์š”๋Š” ์—†๋‹ค. ์–ด์งœํ”ผ ์ด๊ณณ์—์„œ ์„ธ์…˜์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  loginForm.jsp๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.


๐Ÿ’ก db์—ฐ๊ฒฐํ•˜์—ฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ


๋ณธ๊ฒฉ์ ์œผ๋กœ db์™€ ์—ฐ๊ฒฐํ•˜์—ฌ ๋กœ๊ทธ์ธ๊ณผ ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.


๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์ • ๋ณ€๊ฒฝ

webappํด๋”๋‚ด์— ํด๋”๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๐Ÿ“Œ home.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>
	<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 &copy; ๊ตฌ๋””์•„์นด๋ฐ๋ฏธ -->
		<%
			// request.getRequestDispatcher(request.getContextPath()+"./inc/copyright.jsp").include(request, response);
			// ์ž์ฃผ ์“ฐ์ง€๋งŒ ๋„ˆ๋ฌด ๊ธธ๋‹ค. ๊ทธ๋ž˜์„œ ์•ก์…˜ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•œ๋‹ค!
		%> 
		<jsp:include page="/inc/copyright.jsp"></jsp:include> <!-- ์•ก์…˜ํƒœ๊ทธ -->
	</div>
</body>
</html>

โœ” include

๋ฉ”์ธ๋ฉ”๋‰ด๋‚˜ copyright์ฒ˜๋Ÿผ ์ƒ๋‹จ์ด๋‚˜ ํ•˜๋‹จ์— ๋ฐ˜๋ณต์ ์œผ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๋ถ€๋ถ„์€ include์„ ํ™œ์šฉํ•˜๋ฉด ์ข‹๋‹ค. ๋งค์šฐ ๋งŽ์€ ์ˆ˜์˜ ํŽ˜์ด์ง€๋ฅผ ์ž‘์—…ํ•  ๋•Œ์— ์ด ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ์—ด์–ด ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šธ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์•ก์…˜ํƒœ๊ทธ ๋ง๊ณ ๋„ ์ปค์Šคํ…€ํƒœ๊ทธ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์ถ”ํ›„์— ๋ฐฐ์šธ ์˜ˆ์ •!

  • include ์‹œ์—๋Š” ํ”„๋กœ์ ํŠธ ๋ช… ์ฆ‰, request.getContextPath()์„ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ด๋ฏธ ๊ทธ ํ”„๋กœ์ ํŠธ ์•ˆ์˜ ํŽ˜์ด์ง€์—์„œ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฐ˜๋ฉด aํƒœ๊ทธ๋‚˜ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์‹œ์—๋Š” ์™ธ๋ถ€๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” ์›น๋ธŒ๋ผ์šฐ์ € ์ƒ์—์„œ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ ๋ช…์„ ์ž‘์„ฑํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ“ 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 &copy; ๊ตฌ๋””์•„์นด๋ฐ๋ฏธ

๐Ÿ“ ๊ฒฐ๊ณผ


๐Ÿ“Œ logoutAction.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
	session.invalidate(); // ๊ธฐ์กด ์„ธ์…˜์„ ์ง€์šฐ๊ณ  ๊ฐฑ์‹ 
	response.sendRedirect(request.getContextPath() + "/home.jsp");
%>

๐Ÿ“Œ Member.java


์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’(ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’)์„ ๋‹ด์„ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.

๐Ÿ“Œ loginAction.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๋ฅผ ๋ถ™์—ฌ์ค€๋‹ค.

๐Ÿ’ก ๊ณผ์ œ

ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ์„ ์ง์ ‘ ์ถ”๊ฐ€ํ•ด๋ณด์•˜๋‹ค.

โœ” ๊ตฌํ˜„ํ•ด์•ผํ•  ์ 

  • ํšŒ์›๊ฐ€์ž… ์„ฑ๊ณต/์‹คํŒจ ์‹œ ๋ฉ”์„ธ์ง€ ์ถœ๋ ฅ
  • id ์ค‘๋ณต ๊ฒ€์‚ฌ

๐Ÿ“Œ insertMemberForm.jsp

<%@ 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>



๐Ÿ“Œ insertMemberAction.jsp

<%@ 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;
	}
%>
  • id ์ค‘๋ณต๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด์„œ count(*) ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ์ž…๋ ฅํ•œ ํ•ด๋‹น id๋ฅผ where์ ˆ์— ์ถ”๊ฐ€ํ•˜์—ฌ ๊ธฐ์กด ๋ฐ์ดํ„ฐ์— ๊ฐ’์ด ์žˆ๋Š”์ง€ ์นด์šดํŠธํ•˜๊ณ , 0๋ณด๋‹ค ํด ๊ฒฝ์šฐ ์ค‘๋ณต ์•„์ด๋””๋ผ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐœ์ƒ์‹œ์ผฐ๋‹ค.

๐Ÿ“ ๊ฒฐ๊ณผ






profile
ํ•˜๋ฃจ ํ•œ๊ฑธ์Œ์”ฉ๐Ÿ’ช ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž ๋„์ „๊ธฐ ๐ŸŒฑ๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€