Main 홈페이지
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원관리 시스템</h1>
<a href = "join.html"><button>회원가입</button></a>
<a href = "delete.html"><button>회원삭제</button></a>
<a href = "update.html"><button>회원수정</button></a>
<a href = "Select.jsp"><button>회원전체검색</button></a>
<a href = "selectOne.html"><button>회원개별검색</button></a>
<a href = "Login.html"><button>로그인</button></a>
</body>
</html>
순서대로 정적페이지 구현
- 왜 정적페이지인가? 굳이 java 코드가 들어갈 필요가 없기때문에 서버에 소요를 만들 필요가 없다.
1-1. join html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원가입페이지</h1>
<form action="JoinCon" method="post">
<input type="text" name="id" placeholder = "ID입력" required="required"><br>
<input type="password" name="pw" placeholder = "PW입력" required="required"><br>
<input type="text" name="nick" placeholder = "NICK입력" required="required"><br>
<input type="submit" value="회원가입">
</form>
</body>
</html>
1-2. join servlet
<style>
package com.Controller;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/JoinCon")
public class JoinCon extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
PreparedStatement psmt = null;
Connection conn = null;
String id = request.getParameter("id");
String pw = request.getParameter("pw");
String nick = request.getParameter("nick");
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String dbid = "hr";
String dbpw = "hr";
conn = DriverManager.getConnection(url, dbid, dbpw);
String sql = "insert into web_member values(?,?,?)";
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
psmt.setString(2, pw);
psmt.setString(3, nick);
int cnt = psmt.executeUpdate();
if (cnt > 0) {
response.sendRedirect("main.html");
} else {
System.out.println("input failed");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
</style>
2-1. delete HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원삭제페이지</h1>
<form action="DeleteCon" method="post">
<input type="text" name="id" placeholder="ID입력"><br>
<input type="submit" value="회원삭제">
</form>
</body>
</html>
2-2. delete servlet
</style>
package com.Controller;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/DeleteCon")
public class DeleteCon extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
PreparedStatement psmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String dbid = "hr";
String dbpw = "hr";
conn = DriverManager.getConnection(url, dbid, dbpw);
String sql = "delete from web_member where id=(?)";
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
int cnt = psmt.executeUpdate();
if (cnt > 0) {
response.sendRedirect("main.html");
} else {
System.out.println("delete failed");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</style>
3-1. update HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>회원수정페이지</h1>
<form action="UpdateCon" method="post">
<input type="text" name="id" placeholder = "ID입력"><br>
<select name="select">
<option>pw</option>
<option>nick</option>
</select>
<input type="text" name="data" placeholder = "변경할 data 입력"><br>
<input type="submit" value="회원수정">
</form>
</body>
</html>
3-2. update servlet
<style>
package com.Controller;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/UpdateCon")
public class UpdateCon extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String select = request.getParameter("select");
String data = request.getParameter("data");
PreparedStatement psmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String dbid = "hr";
String dbpw = "hr";
conn = DriverManager.getConnection(url, dbid, dbpw);
String sql = "";
if (select.equals("pw")) {
sql = "update web_member set pw= ? where id = ?";
} else if (select.equals("nick")) {
sql = "update web_member set nick= ? where id = ?";
}
psmt = conn.prepareStatement(sql);
psmt.setString(1, data);
psmt.setString(2, id);
int cnt = psmt.executeUpdate();
if (cnt > 0) {
response.sendRedirect("main.html");
} else {
System.out.println("update failed");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</style>
4. select JSP
<style>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.Connection"%>
<%@ 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>
<h1>회원 전체 검색</h1>
<table border=1>
<tr>
<th>ID</th>
<th>PW</th>
<th>NICK</th>
</tr>
<%
PreparedStatement psmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String dbid = "hr";
String dbpw = "hr";
conn = DriverManager.getConnection(url, dbid, dbpw);
String sql = "select * from web_member";
psmt = conn.prepareStatement(sql);
ResultSet rs = psmt.executeQuery();
while (rs.next()) {
String id = rs.getString(1);
String pw = rs.getString(2);
String nick = rs.getString(3);
out.print("<tr>"+"<td>"+id+"</td>");
out.print("<td>"+pw+"</td>");
out.print("<td>"+nick+"</td>"+"</tr>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
%>
</table>
<a href="main.html"><button>메인페이지로</button></a>
</body>
</html>
</style>
5-1. selectone HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="SelectOne.jsp" method="post">
<h1>회원 검색 페이지</h1>
id 입력
<input type="text" name="id" placeholder = "ID입력" required="required"><br>
<input type="submit" value="찾기">
</form>
</body>
</html>
5-2. selectone jsp
<style>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@ 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>
<h1>회원 개별 검색</h1>
<table border=1>
<tr>
<th>ID</th>
<th>PW</th>
<th>NICK</th>
</tr>
<%
String userId = request.getParameter("id");
PreparedStatement psmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String dbid = "hr";
String dbpw = "hr";
conn = DriverManager.getConnection(url, dbid, dbpw);
String sql = "select * from web_member where id = ?";
psmt = conn.prepareStatement(sql);
psmt.setString(1, userId);
ResultSet rs = psmt.executeQuery();
if(rs.next()) {
String id = rs.getString(1);
String pw = rs.getString(2);
String nick = rs.getString(3);
out.print("<tr>"+"<td>"+id+"</td>");
out.print("<td>"+pw+"</td>");
out.print("<td>"+nick+"</td>"+"</tr>");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
%>
</table>
<a href="main.html"><button>메인페이지로</button></a>
</body>
</html>
</style>
6-1. login HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>로그인</h1>
<form action="LoginCon" method="post">
id : <input type="text" name="id" placeholder="id를 입력하세요."><br>
pw : <input type="password" name="pw" placeholder="pw를 입력하세요."><br>
<input type="submit" value="로그인"><br>
</form>
</body>
</html>
6-2. login servlet
<style>
package com.Controller;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LoginCon")
public class LoginCon extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String pw = request.getParameter("pw");
PreparedStatement psmt = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String dbid = "hr";
String dbpw = "hr";
conn = DriverManager.getConnection(url, dbid, dbpw);
String sql = "";
sql = "select pw from web_member where id = ? and pw = ?";
psmt = conn.prepareStatement(sql);
psmt.setString(1, id);
psmt.setString(2, pw);
ResultSet rs = psmt.executeQuery();
if(rs.next()) {
Cookie cookie = new Cookie("id",id);
response.addCookie(cookie);
response.sendRedirect("LoginS.jsp");
}else {
response.sendRedirect("LoginF.html");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (psmt != null) {
psmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
</style>
6-3. loginS jsp
- 얘는 왜 jsp인가? 바로 session이나 cookie를 가져와서 사용자의 id를 확인하는 code가 필요하기 때문에 java코드가 필수적이다. 따라서 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>
<%
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals("id")) {
out.print(cookies[i].getValue() + "님 환영합니다." + "<br>");
}
}
%>
</body>
</html>
6-4. loginF html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>ID나 PW를 한 번 더 확인해주세요.</h1>
</body>
</html>