728x90
테이블 - memberT
MemberBean.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
package soloProject01.member;
import java.sql.Timestamp;
public class MemberBean {
private String mem_uid;
private String mem_pwd;
private String mem_name;
private String mem_email;
private Timestamp mem_regdate;
private String mem_address;
public String getMem_uid() {
return mem_uid;
}
public void setMem_uid(String mem_uid) {
this.mem_uid = mem_uid;
}
public String getMem_pwd() {
return mem_pwd;
}
public void setMem_pwd(String mem_pwd) {
this.mem_pwd = mem_pwd;
}
public String getMem_name() {
return mem_name;
}
public void setMem_name(String mem_name) {
this.mem_name = mem_name;
}
public String getMem_email() {
return mem_email;
}
public void setMem_email(String mem_email) {
this.mem_email = mem_email;
}
public Timestamp getMem_regdate() {
return mem_regdate;
}
public void setMem_regdate(Timestamp mem_regdate) {
this.mem_regdate = mem_regdate;
}
public String getMem_address() {
return mem_address;
}
public void setMem_address(String mem_address) {
this.mem_address = mem_address;
}
}
|
cs |
MemberDBBean.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
package soloProject01.member;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class MemberDBBean {
private static MemberDBBean db = new MemberDBBean();//스테틱 멤버디비빈 객체 생성
//전역 MemberDBBean 객체 레퍼런스 리턴
public static MemberDBBean getInstance(){
return db;
}
//쿼리작업에 사용할 커넥션 객체 리턴
public Connection getConnection() throws Exception{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracle");
return ds.getConnection();
}
//전달인자로 받은 member를 memberT 테이블에 삽입하는 메소드
public int insertMember(MemberBean member) throws Exception{
Connection con = null;
PreparedStatement ps = null;
String sql = "insert into memberT values(?,?,?,?,?,?)";
int re=-1;
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, member.getMem_uid());//멤버빈 타입의 매개변수 member로 멤버빈의 정보 불러와서 ps에 세팅해주는 것
ps.setString(2, member.getMem_pwd());
ps.setString(3, member.getMem_name());
ps.setString(4, member.getMem_email());
ps.setTimestamp(5, member.getMem_regdate());
ps.setString(6, member.getMem_address());
ps.executeUpdate();
re = 1;
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(ps != null) con.close();
if(con != null) con.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return re;
}
//회원 가입시 아이디 중복 확인할 때 사용하는 메소드
public int confirmId(String id) throws Exception{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int re = -1;
String sql = "select mem_uid from membert where mem_uid=?";
//입력한 아이디가 테이블에 이미 있는 경우 그 값을 조회하는 쿼리이기 때문에 밑에서 다시 검증할 필요 없음
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
if (rs.next()) {
re = 1;
//동일한 아이디가 존재해서 불러와지면 re가 1을 받음
}else {
re = -1;
//동일한 아이디가 없어서 불러오지 못하면 re가 -1을 받음
}
rs.close();
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(rs != null) rs.close();
if(ps != null) ps.close();
if(con != null) con .close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return re;
}
//사용자 인증시 사용
public int userCheck(String id, String pwd) throws Exception{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "select mem_pwd from memberT where mem_uid=?";
int re = -1;
String db_mem_pwd="";//데이터베이스의 비밀번호를 넣을 변수
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
if (rs.next()) {
db_mem_pwd = rs.getString("mem_pwd");
if (db_mem_pwd.equals(pwd)){
re=1;//둘 다 일치
} else {
re=0;//비밀번호 불일치
}
}else {
re=-1;//아이디 존재하지 않음
}
rs.close();
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
if(rs != null) rs.close();
if(ps != null) ps.close();
if(con != null) con .close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return re;
}
//아이디가 일치하는 멤버의 정보를 얻어옴
public MemberBean getMember(String id) throws Exception{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
MemberBean member = null;
String sql = "select * from memberT where mem_uid=?";
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, id);
rs = ps.executeQuery();
if (rs.next()) {
member = new MemberBean();
member.setMem_uid(rs.getString("mem_uid"));
member.setMem_pwd(rs.getString("mem_pwd"));
member.setMem_name(rs.getString("mem_name"));
member.setMem_email(rs.getNString("mem_email"));
member.setMem_regdate(rs.getTimestamp("mem_regdate"));
member.setMem_address(rs.getString("mem_address"));
}
rs.close();
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return member;
}
//회원 정보 테이블내의 특정 행의 값 변경
public int updateMember(MemberBean member)throws Exception{
Connection con = null;
PreparedStatement ps = null;
String sql = "update memberT set mem_pwd=?,mem_email=?,mem_address=? where mem_uid=?";
int re=-1;
try {
con = getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, member.getMem_pwd());
ps.setString(2, member.getMem_email());
ps.setString(3, member.getMem_address());
ps.setString(4, member.getMem_uid());
re = ps.executeUpdate();
System.out.println("변경 성공");
ps.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("변경 실패");
}
return re;
}
}
|
cs |
login.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<%@ 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>
<table border="1">
<form method="post" name="reg_form" action="loginOk.jsp">
<tr>
<td width="100" align="center">사용자 ID</td>
<td width="150"><input type="text" maxlength="15" name="mem_uid"></td>
</tr>
<tr>
<td width="100" align="center">비밀번호</td>
<td width="150"><input type="password" maxlength="15" name="mem_pwd"></td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="로그인">
<input type="button" value="회원가입" onclick="location='register.jsp'">
</td>
</tr>
</form>
</table>
</body>
</html>
|
cs |
register.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
<%@ 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>
<script type="text/javascript" src="script.js" charset="utf-8"></script>
</head>
<body>
<table border="1">
<form method="post" action="registerOk.jsp" name="reg_form">
<tr>
<td colspan="2" align="center">
<h1>회원 가입 신청</h1>
'*'표시 항목은 필수 입력 항목입니다.
</td>
</tr>
<tr>
<td width="100">User ID</td>
<td width="250"><input type="text" name="mem_uid">*</td>
</tr>
<tr>
<td width="100">암호</td>
<td width="250"><input type="password" name="mem_pwd">*</td>
</tr>
<tr>
<td width="100">암호 확인</td>
<td width="250"><input type="password" name="pwd_check">*</td>
</tr>
<tr>
<td width="100">이름</td>
<td width="250"><input type="text" name="mem_name">*</td>
</tr>
<tr>
<td width="100">E-mail</td>
<td width="250"><input type="email" name="mem_email" size="30">*</td>
</tr>
<tr>
<td width="100">주 소</td>
<td width="250"><input type="text" maxlength="100" name="mem_address" size="40"></td>
</tr>
<tr align="center">
<td colspan="2">
<input type="button" value="등록" onclick="check_ok()">
<input type="reset" value="다시입력">
<input type="button" value="가입안함" onclick="location = 'login.jsp'">
</td>
</tr>
</form>
</table>
</body>
</html>
|
cs |
loginOk.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<%@page import="soloProject01.member.MemberBean"%>
<%@page import="soloProject01.member.MemberDBBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="mb" class="soloProject01.member.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="mb"/>
<%
String id = request.getParameter("mem_uid");
String pwd = request.getParameter("mem_pwd");
MemberDBBean manager = MemberDBBean.getInstance();
int check = manager.userCheck(id, pwd);
mb = manager.getMember(id);
if(mb ==null){
%>
<script>
alert("존재하지 않는 회원");
history.go(-1);
</script>
<%
}else{
String name = mb.getMem_name();
if(check==1){
session.setAttribute("uid", id);
session.setAttribute("name", name);
session.setAttribute("member", "yes");
//세션에 담을 값들 설정
//(속성 이름, 속성에 넣을 값)
//ex)uid라는 속성 리름에 멤버빈의 아이디 값을 넣어주는 것
response.sendRedirect("main.jsp");
//체크 메소드를 통해서 아이디 비번이 모두 맞을 경우 아이디와 이름을 세션에 저장하고 main으로 넘어감
}else if(check==0){
%>
<script>
alert("비밀번호가 일치하지 않습니다.");
history.go(-1);
</script>
<%
}else{
%>
<script>
alert("아이디가 맞지 않습니다.");
history.go(-1);
</script>
<%
}
}
%>
|
cs |
registerOk.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<%@page import="soloProject01.member.MemberDBBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="mb" class="soloProject01.member.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="mb"/>
<%
MemberDBBean manager = MemberDBBean.getInstance();
//멤버디비빈의 메소드를 사용하기 위해서 멤버디비빈의 객체 생성
if(manager.confirmId(mb.getMem_uid())==1){
//confirmID메소드에서 메머빈의 아이디와 동일하면 1을 리턴하기 때문
%>
<script>
alert("중복되는 아이디가 존재합니다.");
history.go(-1);
</script>
<%
}else{
int re = manager.insertMember(mb);
//인서트 메소드에서 인서트에 성공하면 1을 리턴하기 때문
if(re==1){
%>
<script>
alert("회원가입을 축하드립니다.\n 회원으로 로그인 해주세요.");
document.location.href = "login.jsp";
</script>
<%
}else{
//인서트 메소드에서 인서트에 실패해서 -1이 나온 경우
%>
<script>
alert("회원가입에 실패했습니다.");
document.location.href = "login.jsp";
</script>
<%
}
}
%>
|
cs |
main.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<%@ 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>
<table border="1">
<form method="post" action="memberUpdate.jsp">
<tr>
<td>
안녕하세요.<%=session.getAttribute("name") %>(<%=session.getAttribute("uid")%>)님
</td>
</tr>
<tr>
<td>
<input type="button" value="로그아웃" onclick="location='logOut.jsp'">
<input type="submit" value="회원정보변경">
</td>
</tr>
</form>
</table>
</body>
</html>
|
cs |
logOut.jsp
1
2
3
4
5
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
response.sendRedirect("login.jsp");
%>
|
cs |
memberUpdate.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
<%@page import="soloProject01.member.MemberBean"%>
<%@page import="soloProject01.member.MemberDBBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String uid = (String)session.getAttribute("uid");
MemberDBBean manager = MemberDBBean.getInstance();
MemberBean mb = manager.getMember(uid);
//아이디가 일치할 경우 그 회원의 정보를 불러오는 겟멤버 메소드를 사용
//아이디는 현재 세션에 있는 아이디를 넣어줌
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="script.js" charset="utf-8"></script>
</head>
<body>
<table border="1">
<form method="post" action="memberUpdateOk.jsp" name="reg_form">
<tr>
<td colspan="2" align="center">
<h1>회원 정보 수정</h1>
'*'표시 항목은 필수 입력 항목입니다.
</td>
</tr>
<tr>
<td width="100">User ID</td>
<td width="250"><%=uid%></td>
</tr>
<tr>
<td width="100">암호</td>
<td width="250"><input type="password" name="mem_pwd">*</td>
</tr>
<tr>
<td width="100">암호 확인</td>
<td width="250"><input type="password" name="pwd_check">*</td>
</tr>
<tr>
<td width="100">이름</td>
<td width="250"><%= mb.getMem_name()%></td>
</tr>
<tr>
<td width="100">E-mail</td>
<td width="250"><input type="email" name="mem_email" size="30" value="<%=mb.getMem_email()%>">*</td>
</tr>
<tr>
<td width="100">주 소</td>
<td width="250"><input type="text" maxlength="100" name="mem_address" size="40" value="<%=mb.getMem_address()%>"></td>
</tr>
<tr align="center">
<td colspan="2">
<input type="button" value="등록" onclick="update_check_ok()">
<input type="reset" value="다시입력">
<input type="button" value="수정안함" onclick="location = 'login.jsp'">
</td>
</tr>
</form>
</table>
</body>
</html>
|
cs |
memberUpdateOk.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<%@page import="soloProject01.member.MemberDBBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<jsp:useBean id="mb" class="soloProject01.member.MemberBean"></jsp:useBean>
<jsp:setProperty property="*" name="mb"/>
<%
String uid = (String)session.getAttribute("uid");
mb.setMem_uid(uid);
//업데이트멤버 메소드에는 아이디 값을 넣어줘야 하는데 그게 이 세션에 있는 아이디 값을 사용해서 넣어주는 것
MemberDBBean manager = MemberDBBean.getInstance();
int re = manager.updateMember(mb);
//엄데이트멤버 쿼리의 조건절에 있는 아이디 값에 세션에 있는 아이디 값이 들어가게 되고, 그 아이디에 해당하는
//비번, 이메일, 주소 값을 변경하게 되는 것
if(re==1){
%>
<script>
alert("입력하신대로 회원 정보가 수정되었습니다.")
document.location="main.jsp";
</script>
<%
}else{
%>
<script>
alert("수정에 실패했습니다.")
history.go(-1);
</script>
<%
}
%>
|
cs |
728x90
'개인 연습' 카테고리의 다른 글
dd (0) | 2022.05.23 |
---|---|
인텔리제이 단축키 (0) | 2022.05.18 |
배열 중복 값 없애기 (0) | 2022.05.11 |
simpleDateFormat으로 변환해서 넘긴 값 Timestamp로 받기 (0) | 2022.05.03 |
깃 (0) | 2022.04.14 |