회원정보 데이터 따로 java 클래스 만들기
package member;
import java.sql.Timestamp;
public class MemberDTO {
private String id;
private String pass;
private String name;
private Timestamp date;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Timestamp getDate() {
return date;
}
public void setDate(Timestamp date) {
this.date = date;
}
}
public void insertMember(MemberDTO dto) {
System.out.println("MemberDAO insertMember");
System.out.println("MemberDTO 바구니 전달받은 주소 : " + dto);
System.out.println("바구니주소 전달받은 아이디 : "+dto.getId() );
System.out.println("바구니주소 전달받은 비밀번호 : "+dto.getPass() );
System.out.println("바구니주소 전달받은 이름 : "+dto.getName() );
System.out.println("바구니주소 전달받은 가입날짜 : "+dto.getDate() );
try {
Connection con = getConnection();
String sql = "insert into members(id, pass, name, date) values(?,?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,dto.getId());
pstmt.setString(2,dto.getPass());
pstmt.setString(3,dto.getName());
pstmt.setTimestamp(4, dto.getDate());
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
로그인
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>member/loginForm.jsp</title>
</head>
<body>
<h1>member/loginForm.jsp</h1>
<form action="loginPro.jsp" method="get">
아이디 : <input type="text" name="id"><br>
비밀번호 : <input type="password" name="pass"><br>
<input type="submit" value="로그인">
<a href="insertForm.jsp"><input type="button" value="회원가입"></a>
</form>
</body>
</html>
- MemberDAO.java 파일에 userCheck 메서드 추가
public MemberDTO userCheck(String id, String pass) {
MemberDTO dto = null;
try {
Connection con = getConnection();
String sql = "select * from members where id = ? and pass = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pass);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
dto = new MemberDTO();
dto.setId(rs.getString("id"));
dto.setPass(rs.getString("pass"));
dto.setName(rs.getString("name"));
dto.setDate(rs.getTimestamp("date"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
}
return dto;
}
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@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>member/loginPro.jsp</title>
</head>
<body>
<h1>member/loginPro.jsp</h1>
<%
String id = request.getParameter("id");
String pass = request.getParameter("pass");
MemberDAO dao = new MemberDAO();
MemberDTO dto=dao.userCheck(id, pass);
if(dto!=null){
session.setAttribute("id", id);
response.sendRedirect("main.jsp");
}else{%>
<script type="text/javascript">
alert("아이디 비밀번호가 일치하지 않습니다");
history.back();
</script>
<%} %>
</body>
</html>
회원정보 조회
<a href="info.jsp">회원정보조회</a>
- MemberDAO.java에 getMember 메서드 추가
public MemberDTO getMember(String id) {
MemberDTO dto = null;
try {
Connection con = getConnection();
String sql = "select * from members where id = ?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, id);
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
dto = new MemberDTO();
dto.setId(rs.getString("id"));
dto.setPass(rs.getString("pass"));
dto.setName(rs.getString("name"));
dto.setDate(rs.getTimestamp("date"));
}
} catch (Exception e) {
e.printStackTrace();
}
return dto;
}
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@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>member/info.jsp</title>
</head>
<body>
<h1>member/info.jsp</h1>
<%
String id = (String)session.getAttribute("id");
MemberDAO dao = new MemberDAO();
MemberDTO dto = dao.getMember(id);
if(dto!=null){
%>
아이디 : <%=id %><br>
비밀번호 : <%=dto.getPass()%><br>
이름 : <%=dto.getName()%><br>
가입날짜 : <%=dto.getDate() %><br>
<%} %>
<a href="main.jsp">메인으로 이동</a>
</body>
</html>
회원정보 수정
- updateForm.jsp
만들어 놓은 MemberDAO, MemberDTO 이용
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@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>member/updateForm.jsp</title>
</head>
<body>
<h1>member/updateForm.jsp</h1>
<%
String id = (String)session.getAttribute("id");
MemberDAO dao = new MemberDAO();
MemberDTO dto = dao.getMember(id);
%>
<form action="updatePro.jsp" method="get">
아이디 : <input type="text" name="id" value="<%=id%>" readonly><br>
비밀번호 : <input type="password" name="pass"><br>
이름 : <input type="text" name="name" value="<%=dto.getName()%>"><br>
<input type="submit" value="회원정보 수정">
</form>
</body>
</html>
- MemberDAO.java에 updateMember 메서드 추가
public void updateMember(MemberDTO updateDto) {
try {
Connection con = getConnection();
String sql = "update members set name =? where id=?";
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, updateDto.getName());
pstmt.setString(2, updateDto.getId());
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
}
}
<%@page import="member.MemberDTO"%>
<%@page import="member.MemberDAO"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@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>member/updatePro.jsp</title>
</head>
<body>
<h1>member/updatePro.jsp</h1>
<%
request.setCharacterEncoding("utf-8");
String id = (String)session.getAttribute("id");
String pass = request.getParameter("pass");
String name = request.getParameter("name");
MemberDTO updateDto = new MemberDTO();
updateDto.setId(id);
updateDto.setPass(pass);
updateDto.setName(name);
MemberDAO dao = new MemberDAO();
MemberDTO dto = dao.userCheck(id,pass);
if(dto!=null){
dao.updateMember(updateDto);
%>
<script type="text/javascript">
alert("수정되었습니다");
location.href="main.jsp";
</script>
<%
}else{
%>
<script type="text/javascript">
alert("아이디 비밀번호 틀림");
history.back();
</script>
<%
}
%>
</body>
</html>