JSP|メンバー認証プログラム
57800 ワード
ログインします。jsp <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- 유효한 멤버면 main.jsp로 이동/ null 이면 form으로 이동 -->
<%
if (session.getAttribute("ValidMem") != null) {
%>
<jsp:forward page="main.jsp"></jsp:forward>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="loginOk.jsp" method="post">
아이디 : <input type="text" name="id"
value="
<!-- session에 값이 있으면 -->
<%if (session.getAttribute("id") != null)
out.println(session.getAttribute("id"));%>">
<br /> 비밀번호 : <input type="password" name="pw"><br /> <input
type="submit" value="로그인"> <input type="button"
value="회원가입" onclick="javascript:window.location='join.jsp'">
</form>
</body>
</html>
会員収入 <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="JavaScript" src="members.js" ></script>
</head>
<body>
<form action="joinOk.jsp" method="post" name="reg_frm">
아이디 : <input type="text" name="id" size="20"><br />
비밀번호 : <input type="password" name="pw" size="20"><br />
비밀번호 확인 : <input type="password" name="pw_check" size="20"><br />
이름 : <input type="text" name="name" size="20"><br />
메일 : <input type="text" name="eMail" size="20"><br />
주소 : <input type="text" name="address" size="50"><br />
<input type="button" value="회원가입" onclick="infoConfirm()"> <input type="reset" value="취소" onclick="javascript:window.location='login.jsp'">
</form>
</body>
</html>
会員加入認証 <%@page import="java.sql.Timestamp"%>
<%@page import="com.javalec.ex.*"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<!-- MemberDto 클래스를 자바빈으로 이용하겠다(DB에서 받은 값을 자바의 객체로) -->
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto"/>
<!-- dto의 모든 property를 사용하겠다 -->
<jsp:setProperty name="dto" property="*" />
<%
// 가입시간: 사용자가 아닌 서버에서 받기
dto.setrDate(new Timestamp(System.currentTimeMillis()));
MemberDao dao = MemberDao.getInstance();
if(dao.confirmId(dto.getId()) == MemberDao.MEMBER_EXISTENT) {
%>
<script language="javascript">
alert("아이디가 이미 존재 합니다.");
history.back();
</script>
<%
} else {
int ri = dao.insertMember(dto);
if(ri == MemberDao.MEMBER_JOIN_SUCCESS) {
session.setAttribute("id", dto.getId());
%>
<script language="javascript">
alert("회원가입을 축하 합니다.");
document.location.href="login.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("회원가입에 실패했습니다.");
document.location.href="login.jsp";
</script>
<%
}
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
会員認証 코드를 입력하세요
メイン <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
if(session.getAttribute("ValidMem") == null) {
%>
<<jsp:forward page="login.jsp" />
<%
}
String name = (String)session.getAttribute("name");
String id = (String)session.getAttribute("id");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1><%= name %>님 안녕하세요.</h1> <br />
<form action="logout.jsp" method="post">
<input type="submit" value="로그아웃"> <input type="button" value="정보수정" onclick="javascript:window.location='modify.jsp'">
</form>
</body>
</html>
メンバー情報の変更 <%@page import="com.javalec.ex.MemberDto"%>
<%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<%
//session에서 id를 가져오고 > Dao instance로 객체 생성 > DAO getmember를 dto(자바 객체)로 바꾸기
String id = (String)session.getAttribute("id");
MemberDao dao = MemberDao.getInstance();
MemberDto dto = dao.getMember(id);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="JavaScript" src="members.js" ></script>
</head>
<body>
<form action="modifyOk.jsp" method="post" name="reg_frm">
아이디 : <%= dto.getId() %><br />
비밀번호 : <input type="password" name="pw" size="20"><br />
비밀번호 확인 : <input type="password" name="pw_check" size="20"><br />
이름 : <%= dto.getName() %><br />
메일 : <input type="text" name="eMail" size="20" value="<%= dto.geteMail() %>"><br />
주소 : <input type="text" name="address" size="50" value="<%= dto.getAddress() %>"><br />
<input type="button" value="수정" onclick="updateInfoConfirm()"> <input type="reset" value="취소" onclick="javascript:window.location='login.jsp'">
</form>
</body>
</html>
メンバー情報の変更が完了しました <%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto" scope="page" />
<jsp:setProperty name="dto" property="*" />
<%
String id = (String)session.getAttribute("id");
dto.setId(id);
MemberDao dao = MemberDao.getInstance();
int ri = dao.updateMember(dto);
if(ri == 1) {
%>
<script language="javascript">
alert("정보수정 되었습니다.");
document.location.href="main.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("정보수정 실패 입니다.");
history.go(-1);
</script>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
ログアウト <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
DAO package com.javalec.ex;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
// DB연결, CRUD 쿼리문
public class MemberDao {
public static final int MEMBER_NONEXISTENT = 0;
public static final int MEMBER_EXISTENT = 1;
public static final int MEMBER_JOIN_FAIL = 0;
public static final int MEMBER_JOIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_PW_NO_GOOD = 0;
public static final int MEMBER_LOGIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_IS_NOT = -1;
private static MemberDao instance = new MemberDao();
// private여서 외부에서 객체 생성이 불가하다 > 그러므로 static getInstance()를 사용
// private static MemberDao instance = new MemberDao(); 자기가 자기 클래스를 생성하는 메서드
private MemberDao() {
}
public static MemberDao getInstance() {
return instance;
}
public int insertMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "insert into members values (?,?,?,?,?,?)";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPw());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.geteMail());
pstmt.setTimestamp(5, dto.getrDate());
pstmt.setString(6, dto.getAddress());
pstmt.executeUpdate();
ri = MemberDao.MEMBER_JOIN_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (connection != null)
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
// String id는 사용자가 입력한 값
public int confirmId(String id) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select id from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
// 사용자 입력 id
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// 1
ri = MemberDao.MEMBER_EXISTENT;
} else {
// 0
ri = MemberDao.MEMBER_NONEXISTENT;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 0 실패
return ri;
}
// 회원이 맞는지
public int userCheck(String id, String pw) {
int ri = 0;
String dbPw;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select pw from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// DB상의 pw
dbPw = set.getString("pw");
// db상과 사용자 입력값이 같다면
if (dbPw.equals(pw)) {
ri = MemberDao.MEMBER_LOGIN_SUCCESS; // ��� Ok
} else {
ri = MemberDao.MEMBER_LOGIN_PW_NO_GOOD; // ��� X
}
// 아예 데이타를 받지 못한 경우
} else {
ri = MemberDao.MEMBER_LOGIN_IS_NOT; // ȸ�� X
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
public MemberDto getMember(String id) {
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select * from members where id = ?";
MemberDto dto = null;
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
dto = new MemberDto();
dto.setId(set.getString("id"));
dto.setPw(set.getString("pw"));
dto.setName(set.getString("name"));
dto.seteMail(set.getString("eMail"));
dto.setrDate(set.getTimestamp("rDate"));
dto.setAddress(set.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return dto;
}
public int updateMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "update members set pw=?, eMail=?, address=? where id=?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getPw());
pstmt.setString(2, dto.geteMail());
pstmt.setString(3, dto.getAddress());
pstmt.setString(4, dto.getId());
ri = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
private Connection getConnection() {
Context context = null;
DataSource dataSource = null;
Connection connection = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/Oracle11g");
connection = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
DTO package com.javalec.ex;
import java.sql.Timestamp;
public class MemberDto {
private String id;
private String pw;
private String name;
private String eMail;
private Timestamp rDate;
private String address;
// public MemberDto(String id, String pw, String name, String eMail, Timestamp rDate, String address) {
// this.id = id;
// this.pw = pw;
// this.name = name;
// this.eMail = eMail;
// this.rDate = rDate;
// this.address = address;
// }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public Timestamp getrDate() {
return rDate;
}
public void setrDate(Timestamp rDate) {
this.rDate = rDate;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Reference
この問題について(JSP|メンバー認証プログラム), 我々は、より多くの情報をここで見つけました
https://velog.io/@kji306301/JSP-회원인증-프로그램
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- 유효한 멤버면 main.jsp로 이동/ null 이면 form으로 이동 -->
<%
if (session.getAttribute("ValidMem") != null) {
%>
<jsp:forward page="main.jsp"></jsp:forward>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="loginOk.jsp" method="post">
아이디 : <input type="text" name="id"
value="
<!-- session에 값이 있으면 -->
<%if (session.getAttribute("id") != null)
out.println(session.getAttribute("id"));%>">
<br /> 비밀번호 : <input type="password" name="pw"><br /> <input
type="submit" value="로그인"> <input type="button"
value="회원가입" onclick="javascript:window.location='join.jsp'">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="JavaScript" src="members.js" ></script>
</head>
<body>
<form action="joinOk.jsp" method="post" name="reg_frm">
아이디 : <input type="text" name="id" size="20"><br />
비밀번호 : <input type="password" name="pw" size="20"><br />
비밀번호 확인 : <input type="password" name="pw_check" size="20"><br />
이름 : <input type="text" name="name" size="20"><br />
메일 : <input type="text" name="eMail" size="20"><br />
주소 : <input type="text" name="address" size="50"><br />
<input type="button" value="회원가입" onclick="infoConfirm()"> <input type="reset" value="취소" onclick="javascript:window.location='login.jsp'">
</form>
</body>
</html>
会員加入認証 <%@page import="java.sql.Timestamp"%>
<%@page import="com.javalec.ex.*"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<!-- MemberDto 클래스를 자바빈으로 이용하겠다(DB에서 받은 값을 자바의 객체로) -->
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto"/>
<!-- dto의 모든 property를 사용하겠다 -->
<jsp:setProperty name="dto" property="*" />
<%
// 가입시간: 사용자가 아닌 서버에서 받기
dto.setrDate(new Timestamp(System.currentTimeMillis()));
MemberDao dao = MemberDao.getInstance();
if(dao.confirmId(dto.getId()) == MemberDao.MEMBER_EXISTENT) {
%>
<script language="javascript">
alert("아이디가 이미 존재 합니다.");
history.back();
</script>
<%
} else {
int ri = dao.insertMember(dto);
if(ri == MemberDao.MEMBER_JOIN_SUCCESS) {
session.setAttribute("id", dto.getId());
%>
<script language="javascript">
alert("회원가입을 축하 합니다.");
document.location.href="login.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("회원가입에 실패했습니다.");
document.location.href="login.jsp";
</script>
<%
}
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
会員認証 코드를 입력하세요
メイン <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
if(session.getAttribute("ValidMem") == null) {
%>
<<jsp:forward page="login.jsp" />
<%
}
String name = (String)session.getAttribute("name");
String id = (String)session.getAttribute("id");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1><%= name %>님 안녕하세요.</h1> <br />
<form action="logout.jsp" method="post">
<input type="submit" value="로그아웃"> <input type="button" value="정보수정" onclick="javascript:window.location='modify.jsp'">
</form>
</body>
</html>
メンバー情報の変更 <%@page import="com.javalec.ex.MemberDto"%>
<%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<%
//session에서 id를 가져오고 > Dao instance로 객체 생성 > DAO getmember를 dto(자바 객체)로 바꾸기
String id = (String)session.getAttribute("id");
MemberDao dao = MemberDao.getInstance();
MemberDto dto = dao.getMember(id);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="JavaScript" src="members.js" ></script>
</head>
<body>
<form action="modifyOk.jsp" method="post" name="reg_frm">
아이디 : <%= dto.getId() %><br />
비밀번호 : <input type="password" name="pw" size="20"><br />
비밀번호 확인 : <input type="password" name="pw_check" size="20"><br />
이름 : <%= dto.getName() %><br />
메일 : <input type="text" name="eMail" size="20" value="<%= dto.geteMail() %>"><br />
주소 : <input type="text" name="address" size="50" value="<%= dto.getAddress() %>"><br />
<input type="button" value="수정" onclick="updateInfoConfirm()"> <input type="reset" value="취소" onclick="javascript:window.location='login.jsp'">
</form>
</body>
</html>
メンバー情報の変更が完了しました <%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto" scope="page" />
<jsp:setProperty name="dto" property="*" />
<%
String id = (String)session.getAttribute("id");
dto.setId(id);
MemberDao dao = MemberDao.getInstance();
int ri = dao.updateMember(dto);
if(ri == 1) {
%>
<script language="javascript">
alert("정보수정 되었습니다.");
document.location.href="main.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("정보수정 실패 입니다.");
history.go(-1);
</script>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
ログアウト <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
DAO package com.javalec.ex;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
// DB연결, CRUD 쿼리문
public class MemberDao {
public static final int MEMBER_NONEXISTENT = 0;
public static final int MEMBER_EXISTENT = 1;
public static final int MEMBER_JOIN_FAIL = 0;
public static final int MEMBER_JOIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_PW_NO_GOOD = 0;
public static final int MEMBER_LOGIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_IS_NOT = -1;
private static MemberDao instance = new MemberDao();
// private여서 외부에서 객체 생성이 불가하다 > 그러므로 static getInstance()를 사용
// private static MemberDao instance = new MemberDao(); 자기가 자기 클래스를 생성하는 메서드
private MemberDao() {
}
public static MemberDao getInstance() {
return instance;
}
public int insertMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "insert into members values (?,?,?,?,?,?)";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPw());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.geteMail());
pstmt.setTimestamp(5, dto.getrDate());
pstmt.setString(6, dto.getAddress());
pstmt.executeUpdate();
ri = MemberDao.MEMBER_JOIN_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (connection != null)
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
// String id는 사용자가 입력한 값
public int confirmId(String id) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select id from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
// 사용자 입력 id
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// 1
ri = MemberDao.MEMBER_EXISTENT;
} else {
// 0
ri = MemberDao.MEMBER_NONEXISTENT;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 0 실패
return ri;
}
// 회원이 맞는지
public int userCheck(String id, String pw) {
int ri = 0;
String dbPw;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select pw from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// DB상의 pw
dbPw = set.getString("pw");
// db상과 사용자 입력값이 같다면
if (dbPw.equals(pw)) {
ri = MemberDao.MEMBER_LOGIN_SUCCESS; // ��� Ok
} else {
ri = MemberDao.MEMBER_LOGIN_PW_NO_GOOD; // ��� X
}
// 아예 데이타를 받지 못한 경우
} else {
ri = MemberDao.MEMBER_LOGIN_IS_NOT; // ȸ�� X
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
public MemberDto getMember(String id) {
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select * from members where id = ?";
MemberDto dto = null;
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
dto = new MemberDto();
dto.setId(set.getString("id"));
dto.setPw(set.getString("pw"));
dto.setName(set.getString("name"));
dto.seteMail(set.getString("eMail"));
dto.setrDate(set.getTimestamp("rDate"));
dto.setAddress(set.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return dto;
}
public int updateMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "update members set pw=?, eMail=?, address=? where id=?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getPw());
pstmt.setString(2, dto.geteMail());
pstmt.setString(3, dto.getAddress());
pstmt.setString(4, dto.getId());
ri = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
private Connection getConnection() {
Context context = null;
DataSource dataSource = null;
Connection connection = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/Oracle11g");
connection = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
DTO package com.javalec.ex;
import java.sql.Timestamp;
public class MemberDto {
private String id;
private String pw;
private String name;
private String eMail;
private Timestamp rDate;
private String address;
// public MemberDto(String id, String pw, String name, String eMail, Timestamp rDate, String address) {
// this.id = id;
// this.pw = pw;
// this.name = name;
// this.eMail = eMail;
// this.rDate = rDate;
// this.address = address;
// }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public Timestamp getrDate() {
return rDate;
}
public void setrDate(Timestamp rDate) {
this.rDate = rDate;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Reference
この問題について(JSP|メンバー認証プログラム), 我々は、より多くの情報をここで見つけました
https://velog.io/@kji306301/JSP-회원인증-프로그램
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<%@page import="java.sql.Timestamp"%>
<%@page import="com.javalec.ex.*"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<!-- MemberDto 클래스를 자바빈으로 이용하겠다(DB에서 받은 값을 자바의 객체로) -->
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto"/>
<!-- dto의 모든 property를 사용하겠다 -->
<jsp:setProperty name="dto" property="*" />
<%
// 가입시간: 사용자가 아닌 서버에서 받기
dto.setrDate(new Timestamp(System.currentTimeMillis()));
MemberDao dao = MemberDao.getInstance();
if(dao.confirmId(dto.getId()) == MemberDao.MEMBER_EXISTENT) {
%>
<script language="javascript">
alert("아이디가 이미 존재 합니다.");
history.back();
</script>
<%
} else {
int ri = dao.insertMember(dto);
if(ri == MemberDao.MEMBER_JOIN_SUCCESS) {
session.setAttribute("id", dto.getId());
%>
<script language="javascript">
alert("회원가입을 축하 합니다.");
document.location.href="login.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("회원가입에 실패했습니다.");
document.location.href="login.jsp";
</script>
<%
}
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
코드를 입력하세요
メイン <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
if(session.getAttribute("ValidMem") == null) {
%>
<<jsp:forward page="login.jsp" />
<%
}
String name = (String)session.getAttribute("name");
String id = (String)session.getAttribute("id");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1><%= name %>님 안녕하세요.</h1> <br />
<form action="logout.jsp" method="post">
<input type="submit" value="로그아웃"> <input type="button" value="정보수정" onclick="javascript:window.location='modify.jsp'">
</form>
</body>
</html>
メンバー情報の変更 <%@page import="com.javalec.ex.MemberDto"%>
<%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<%
//session에서 id를 가져오고 > Dao instance로 객체 생성 > DAO getmember를 dto(자바 객체)로 바꾸기
String id = (String)session.getAttribute("id");
MemberDao dao = MemberDao.getInstance();
MemberDto dto = dao.getMember(id);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="JavaScript" src="members.js" ></script>
</head>
<body>
<form action="modifyOk.jsp" method="post" name="reg_frm">
아이디 : <%= dto.getId() %><br />
비밀번호 : <input type="password" name="pw" size="20"><br />
비밀번호 확인 : <input type="password" name="pw_check" size="20"><br />
이름 : <%= dto.getName() %><br />
메일 : <input type="text" name="eMail" size="20" value="<%= dto.geteMail() %>"><br />
주소 : <input type="text" name="address" size="50" value="<%= dto.getAddress() %>"><br />
<input type="button" value="수정" onclick="updateInfoConfirm()"> <input type="reset" value="취소" onclick="javascript:window.location='login.jsp'">
</form>
</body>
</html>
メンバー情報の変更が完了しました <%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto" scope="page" />
<jsp:setProperty name="dto" property="*" />
<%
String id = (String)session.getAttribute("id");
dto.setId(id);
MemberDao dao = MemberDao.getInstance();
int ri = dao.updateMember(dto);
if(ri == 1) {
%>
<script language="javascript">
alert("정보수정 되었습니다.");
document.location.href="main.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("정보수정 실패 입니다.");
history.go(-1);
</script>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
ログアウト <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
DAO package com.javalec.ex;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
// DB연결, CRUD 쿼리문
public class MemberDao {
public static final int MEMBER_NONEXISTENT = 0;
public static final int MEMBER_EXISTENT = 1;
public static final int MEMBER_JOIN_FAIL = 0;
public static final int MEMBER_JOIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_PW_NO_GOOD = 0;
public static final int MEMBER_LOGIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_IS_NOT = -1;
private static MemberDao instance = new MemberDao();
// private여서 외부에서 객체 생성이 불가하다 > 그러므로 static getInstance()를 사용
// private static MemberDao instance = new MemberDao(); 자기가 자기 클래스를 생성하는 메서드
private MemberDao() {
}
public static MemberDao getInstance() {
return instance;
}
public int insertMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "insert into members values (?,?,?,?,?,?)";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPw());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.geteMail());
pstmt.setTimestamp(5, dto.getrDate());
pstmt.setString(6, dto.getAddress());
pstmt.executeUpdate();
ri = MemberDao.MEMBER_JOIN_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (connection != null)
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
// String id는 사용자가 입력한 값
public int confirmId(String id) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select id from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
// 사용자 입력 id
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// 1
ri = MemberDao.MEMBER_EXISTENT;
} else {
// 0
ri = MemberDao.MEMBER_NONEXISTENT;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 0 실패
return ri;
}
// 회원이 맞는지
public int userCheck(String id, String pw) {
int ri = 0;
String dbPw;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select pw from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// DB상의 pw
dbPw = set.getString("pw");
// db상과 사용자 입력값이 같다면
if (dbPw.equals(pw)) {
ri = MemberDao.MEMBER_LOGIN_SUCCESS; // ��� Ok
} else {
ri = MemberDao.MEMBER_LOGIN_PW_NO_GOOD; // ��� X
}
// 아예 데이타를 받지 못한 경우
} else {
ri = MemberDao.MEMBER_LOGIN_IS_NOT; // ȸ�� X
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
public MemberDto getMember(String id) {
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select * from members where id = ?";
MemberDto dto = null;
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
dto = new MemberDto();
dto.setId(set.getString("id"));
dto.setPw(set.getString("pw"));
dto.setName(set.getString("name"));
dto.seteMail(set.getString("eMail"));
dto.setrDate(set.getTimestamp("rDate"));
dto.setAddress(set.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return dto;
}
public int updateMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "update members set pw=?, eMail=?, address=? where id=?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getPw());
pstmt.setString(2, dto.geteMail());
pstmt.setString(3, dto.getAddress());
pstmt.setString(4, dto.getId());
ri = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
private Connection getConnection() {
Context context = null;
DataSource dataSource = null;
Connection connection = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/Oracle11g");
connection = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
DTO package com.javalec.ex;
import java.sql.Timestamp;
public class MemberDto {
private String id;
private String pw;
private String name;
private String eMail;
private Timestamp rDate;
private String address;
// public MemberDto(String id, String pw, String name, String eMail, Timestamp rDate, String address) {
// this.id = id;
// this.pw = pw;
// this.name = name;
// this.eMail = eMail;
// this.rDate = rDate;
// this.address = address;
// }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public Timestamp getrDate() {
return rDate;
}
public void setrDate(Timestamp rDate) {
this.rDate = rDate;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Reference
この問題について(JSP|メンバー認証プログラム), 我々は、より多くの情報をここで見つけました
https://velog.io/@kji306301/JSP-회원인증-프로그램
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
if(session.getAttribute("ValidMem") == null) {
%>
<<jsp:forward page="login.jsp" />
<%
}
String name = (String)session.getAttribute("name");
String id = (String)session.getAttribute("id");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1><%= name %>님 안녕하세요.</h1> <br />
<form action="logout.jsp" method="post">
<input type="submit" value="로그아웃"> <input type="button" value="정보수정" onclick="javascript:window.location='modify.jsp'">
</form>
</body>
</html>
<%@page import="com.javalec.ex.MemberDto"%>
<%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<%
//session에서 id를 가져오고 > Dao instance로 객체 생성 > DAO getmember를 dto(자바 객체)로 바꾸기
String id = (String)session.getAttribute("id");
MemberDao dao = MemberDao.getInstance();
MemberDto dto = dao.getMember(id);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
<script language="JavaScript" src="members.js" ></script>
</head>
<body>
<form action="modifyOk.jsp" method="post" name="reg_frm">
아이디 : <%= dto.getId() %><br />
비밀번호 : <input type="password" name="pw" size="20"><br />
비밀번호 확인 : <input type="password" name="pw_check" size="20"><br />
이름 : <%= dto.getName() %><br />
메일 : <input type="text" name="eMail" size="20" value="<%= dto.geteMail() %>"><br />
주소 : <input type="text" name="address" size="50" value="<%= dto.getAddress() %>"><br />
<input type="button" value="수정" onclick="updateInfoConfirm()"> <input type="reset" value="취소" onclick="javascript:window.location='login.jsp'">
</form>
</body>
</html>
メンバー情報の変更が完了しました <%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto" scope="page" />
<jsp:setProperty name="dto" property="*" />
<%
String id = (String)session.getAttribute("id");
dto.setId(id);
MemberDao dao = MemberDao.getInstance();
int ri = dao.updateMember(dto);
if(ri == 1) {
%>
<script language="javascript">
alert("정보수정 되었습니다.");
document.location.href="main.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("정보수정 실패 입니다.");
history.go(-1);
</script>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
ログアウト <%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
DAO package com.javalec.ex;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
// DB연결, CRUD 쿼리문
public class MemberDao {
public static final int MEMBER_NONEXISTENT = 0;
public static final int MEMBER_EXISTENT = 1;
public static final int MEMBER_JOIN_FAIL = 0;
public static final int MEMBER_JOIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_PW_NO_GOOD = 0;
public static final int MEMBER_LOGIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_IS_NOT = -1;
private static MemberDao instance = new MemberDao();
// private여서 외부에서 객체 생성이 불가하다 > 그러므로 static getInstance()를 사용
// private static MemberDao instance = new MemberDao(); 자기가 자기 클래스를 생성하는 메서드
private MemberDao() {
}
public static MemberDao getInstance() {
return instance;
}
public int insertMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "insert into members values (?,?,?,?,?,?)";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPw());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.geteMail());
pstmt.setTimestamp(5, dto.getrDate());
pstmt.setString(6, dto.getAddress());
pstmt.executeUpdate();
ri = MemberDao.MEMBER_JOIN_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (connection != null)
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
// String id는 사용자가 입력한 값
public int confirmId(String id) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select id from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
// 사용자 입력 id
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// 1
ri = MemberDao.MEMBER_EXISTENT;
} else {
// 0
ri = MemberDao.MEMBER_NONEXISTENT;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 0 실패
return ri;
}
// 회원이 맞는지
public int userCheck(String id, String pw) {
int ri = 0;
String dbPw;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select pw from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// DB상의 pw
dbPw = set.getString("pw");
// db상과 사용자 입력값이 같다면
if (dbPw.equals(pw)) {
ri = MemberDao.MEMBER_LOGIN_SUCCESS; // ��� Ok
} else {
ri = MemberDao.MEMBER_LOGIN_PW_NO_GOOD; // ��� X
}
// 아예 데이타를 받지 못한 경우
} else {
ri = MemberDao.MEMBER_LOGIN_IS_NOT; // ȸ�� X
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
public MemberDto getMember(String id) {
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select * from members where id = ?";
MemberDto dto = null;
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
dto = new MemberDto();
dto.setId(set.getString("id"));
dto.setPw(set.getString("pw"));
dto.setName(set.getString("name"));
dto.seteMail(set.getString("eMail"));
dto.setrDate(set.getTimestamp("rDate"));
dto.setAddress(set.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return dto;
}
public int updateMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "update members set pw=?, eMail=?, address=? where id=?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getPw());
pstmt.setString(2, dto.geteMail());
pstmt.setString(3, dto.getAddress());
pstmt.setString(4, dto.getId());
ri = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
private Connection getConnection() {
Context context = null;
DataSource dataSource = null;
Connection connection = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/Oracle11g");
connection = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
DTO package com.javalec.ex;
import java.sql.Timestamp;
public class MemberDto {
private String id;
private String pw;
private String name;
private String eMail;
private Timestamp rDate;
private String address;
// public MemberDto(String id, String pw, String name, String eMail, Timestamp rDate, String address) {
// this.id = id;
// this.pw = pw;
// this.name = name;
// this.eMail = eMail;
// this.rDate = rDate;
// this.address = address;
// }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public Timestamp getrDate() {
return rDate;
}
public void setrDate(Timestamp rDate) {
this.rDate = rDate;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Reference
この問題について(JSP|メンバー認証プログラム), 我々は、より多くの情報をここで見つけました
https://velog.io/@kji306301/JSP-회원인증-프로그램
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
<%@page import="com.javalec.ex.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<% request.setCharacterEncoding("EUC-KR"); %>
<jsp:useBean id="dto" class="com.javalec.ex.MemberDto" scope="page" />
<jsp:setProperty name="dto" property="*" />
<%
String id = (String)session.getAttribute("id");
dto.setId(id);
MemberDao dao = MemberDao.getInstance();
int ri = dao.updateMember(dto);
if(ri == 1) {
%>
<script language="javascript">
alert("정보수정 되었습니다.");
document.location.href="main.jsp";
</script>
<%
} else {
%>
<script language="javascript">
alert("정보수정 실패 입니다.");
history.go(-1);
</script>
<%
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
session.invalidate();
response.sendRedirect("login.jsp");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
DAO package com.javalec.ex;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
// DB연결, CRUD 쿼리문
public class MemberDao {
public static final int MEMBER_NONEXISTENT = 0;
public static final int MEMBER_EXISTENT = 1;
public static final int MEMBER_JOIN_FAIL = 0;
public static final int MEMBER_JOIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_PW_NO_GOOD = 0;
public static final int MEMBER_LOGIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_IS_NOT = -1;
private static MemberDao instance = new MemberDao();
// private여서 외부에서 객체 생성이 불가하다 > 그러므로 static getInstance()를 사용
// private static MemberDao instance = new MemberDao(); 자기가 자기 클래스를 생성하는 메서드
private MemberDao() {
}
public static MemberDao getInstance() {
return instance;
}
public int insertMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "insert into members values (?,?,?,?,?,?)";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPw());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.geteMail());
pstmt.setTimestamp(5, dto.getrDate());
pstmt.setString(6, dto.getAddress());
pstmt.executeUpdate();
ri = MemberDao.MEMBER_JOIN_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (connection != null)
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
// String id는 사용자가 입력한 값
public int confirmId(String id) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select id from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
// 사용자 입력 id
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// 1
ri = MemberDao.MEMBER_EXISTENT;
} else {
// 0
ri = MemberDao.MEMBER_NONEXISTENT;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 0 실패
return ri;
}
// 회원이 맞는지
public int userCheck(String id, String pw) {
int ri = 0;
String dbPw;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select pw from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// DB상의 pw
dbPw = set.getString("pw");
// db상과 사용자 입력값이 같다면
if (dbPw.equals(pw)) {
ri = MemberDao.MEMBER_LOGIN_SUCCESS; // ��� Ok
} else {
ri = MemberDao.MEMBER_LOGIN_PW_NO_GOOD; // ��� X
}
// 아예 데이타를 받지 못한 경우
} else {
ri = MemberDao.MEMBER_LOGIN_IS_NOT; // ȸ�� X
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
public MemberDto getMember(String id) {
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select * from members where id = ?";
MemberDto dto = null;
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
dto = new MemberDto();
dto.setId(set.getString("id"));
dto.setPw(set.getString("pw"));
dto.setName(set.getString("name"));
dto.seteMail(set.getString("eMail"));
dto.setrDate(set.getTimestamp("rDate"));
dto.setAddress(set.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return dto;
}
public int updateMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "update members set pw=?, eMail=?, address=? where id=?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getPw());
pstmt.setString(2, dto.geteMail());
pstmt.setString(3, dto.getAddress());
pstmt.setString(4, dto.getId());
ri = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
private Connection getConnection() {
Context context = null;
DataSource dataSource = null;
Connection connection = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/Oracle11g");
connection = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
DTO package com.javalec.ex;
import java.sql.Timestamp;
public class MemberDto {
private String id;
private String pw;
private String name;
private String eMail;
private Timestamp rDate;
private String address;
// public MemberDto(String id, String pw, String name, String eMail, Timestamp rDate, String address) {
// this.id = id;
// this.pw = pw;
// this.name = name;
// this.eMail = eMail;
// this.rDate = rDate;
// this.address = address;
// }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public Timestamp getrDate() {
return rDate;
}
public void setrDate(Timestamp rDate) {
this.rDate = rDate;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Reference
この問題について(JSP|メンバー認証プログラム), 我々は、より多くの情報をここで見つけました
https://velog.io/@kji306301/JSP-회원인증-프로그램
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
package com.javalec.ex;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
// DB연결, CRUD 쿼리문
public class MemberDao {
public static final int MEMBER_NONEXISTENT = 0;
public static final int MEMBER_EXISTENT = 1;
public static final int MEMBER_JOIN_FAIL = 0;
public static final int MEMBER_JOIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_PW_NO_GOOD = 0;
public static final int MEMBER_LOGIN_SUCCESS = 1;
public static final int MEMBER_LOGIN_IS_NOT = -1;
private static MemberDao instance = new MemberDao();
// private여서 외부에서 객체 생성이 불가하다 > 그러므로 static getInstance()를 사용
// private static MemberDao instance = new MemberDao(); 자기가 자기 클래스를 생성하는 메서드
private MemberDao() {
}
public static MemberDao getInstance() {
return instance;
}
public int insertMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "insert into members values (?,?,?,?,?,?)";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getId());
pstmt.setString(2, dto.getPw());
pstmt.setString(3, dto.getName());
pstmt.setString(4, dto.geteMail());
pstmt.setTimestamp(5, dto.getrDate());
pstmt.setString(6, dto.getAddress());
pstmt.executeUpdate();
ri = MemberDao.MEMBER_JOIN_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pstmt != null)
pstmt.close();
if (connection != null)
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
// String id는 사용자가 입력한 값
public int confirmId(String id) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select id from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
// 사용자 입력 id
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// 1
ri = MemberDao.MEMBER_EXISTENT;
} else {
// 0
ri = MemberDao.MEMBER_NONEXISTENT;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
// 0 실패
return ri;
}
// 회원이 맞는지
public int userCheck(String id, String pw) {
int ri = 0;
String dbPw;
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select pw from members where id = ?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
// DB상의 pw
dbPw = set.getString("pw");
// db상과 사용자 입력값이 같다면
if (dbPw.equals(pw)) {
ri = MemberDao.MEMBER_LOGIN_SUCCESS; // ��� Ok
} else {
ri = MemberDao.MEMBER_LOGIN_PW_NO_GOOD; // ��� X
}
// 아예 데이타를 받지 못한 경우
} else {
ri = MemberDao.MEMBER_LOGIN_IS_NOT; // ȸ�� X
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
public MemberDto getMember(String id) {
Connection connection = null;
PreparedStatement pstmt = null;
ResultSet set = null;
String query = "select * from members where id = ?";
MemberDto dto = null;
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, id);
set = pstmt.executeQuery();
if (set.next()) {
dto = new MemberDto();
dto.setId(set.getString("id"));
dto.setPw(set.getString("pw"));
dto.setName(set.getString("name"));
dto.seteMail(set.getString("eMail"));
dto.setrDate(set.getTimestamp("rDate"));
dto.setAddress(set.getString("address"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
set.close();
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return dto;
}
public int updateMember(MemberDto dto) {
int ri = 0;
Connection connection = null;
PreparedStatement pstmt = null;
String query = "update members set pw=?, eMail=?, address=? where id=?";
try {
connection = getConnection();
pstmt = connection.prepareStatement(query);
pstmt.setString(1, dto.getPw());
pstmt.setString(2, dto.geteMail());
pstmt.setString(3, dto.getAddress());
pstmt.setString(4, dto.getId());
ri = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
pstmt.close();
connection.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
return ri;
}
private Connection getConnection() {
Context context = null;
DataSource dataSource = null;
Connection connection = null;
try {
context = new InitialContext();
dataSource = (DataSource) context.lookup("java:comp/env/jdbc/Oracle11g");
connection = dataSource.getConnection();
} catch (Exception e) {
e.printStackTrace();
}
return connection;
}
}
package com.javalec.ex;
import java.sql.Timestamp;
public class MemberDto {
private String id;
private String pw;
private String name;
private String eMail;
private Timestamp rDate;
private String address;
// public MemberDto(String id, String pw, String name, String eMail, Timestamp rDate, String address) {
// this.id = id;
// this.pw = pw;
// this.name = name;
// this.eMail = eMail;
// this.rDate = rDate;
// this.address = address;
// }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPw() {
return pw;
}
public void setPw(String pw) {
this.pw = pw;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String geteMail() {
return eMail;
}
public void seteMail(String eMail) {
this.eMail = eMail;
}
public Timestamp getrDate() {
return rDate;
}
public void setrDate(Timestamp rDate) {
this.rDate = rDate;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
Reference
この問題について(JSP|メンバー認証プログラム), 我々は、より多くの情報をここで見つけました https://velog.io/@kji306301/JSP-회원인증-프로그램テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol