회원관리 시스템 로그인부분 (쿠키)
cookieLoginConfirm.jsp - 2008.7.11 작성했다 (버림받은 파일)
index.jsp - 로그인 폼 추가
cookieMemberLoginOk.jsp - 회원인증 메소드를 호출해 결과를 받아서 index.jsp 에 보내는 역할을 하는 페이지
cookieLogOut.jsp - 로그아웃 페이지
MemberCtrl.java - 회원 인증 메소드 추가
MemberCtrl.java에서 메소드를 하나 추가한다.
ismemberList 메소드에 인자를 String형으로 아이디(mem_id)와 비밀번화(mem_pw)를 받는다.
리턴 타입은 int 형으로 아이디와 비밀번호가 DB에 있으면 1을 리턴 비밀번호가 다르면 0을 아이디가 없으면 -1을 반환한다.
자세한 내용은 p418 ~ p436 참고한다.
index.jsp - 로그인 폼 추가
cookieMemberLoginOk.jsp - 회원인증 메소드를 호출해 결과를 받아서 index.jsp 에 보내는 역할을 하는 페이지
cookieLogOut.jsp - 로그아웃 페이지
MemberCtrl.java - 회원 인증 메소드 추가
MemberCtrl.java에서 메소드를 하나 추가한다.
/*
* 회원인증하기
* @param: mem_id, mem_pw
* @return: int
* 사용자가 입력한 아이디와 비번이 존재하면 1을 리턴.
*/
public int ismemberList(String mem_id, String mem_pw) {
int mode = 0;
pool = DBConnectionMgr.getInstance();
query = new StringBuffer();
query.append("SELECT mem_pw FROM member WHERE mem_id = ? AND mem_status = 1");
String db_pw = mem_pw;
try {
con = pool.getConnection();
pstmt = con.prepareStatement(query.toString());
pstmt.setString(1, mem_id);
rs = pstmt.executeQuery();
if(rs.next()) {
db_pw = rs.getString(1);
if(mem_pw.equals(db_pw)) {
mode = 1; //인증성공
} else {
mode = 0; //비밀번호 틀림
}
} else {
mode = -1; //아이디 존재하지 않음
}
}catch(SQLException s){
System.out.println("=============================================");
System.out.println("query:"+query.toString());
System.out.println("=============================================");
System.out.println(s.toString());
} catch (Exception e) {
System.out.println(e.toString());
} finally{
pool.freeConnection(con, pstmt);
}
return mode;
}
* 회원인증하기
* @param: mem_id, mem_pw
* @return: int
* 사용자가 입력한 아이디와 비번이 존재하면 1을 리턴.
*/
public int ismemberList(String mem_id, String mem_pw) {
int mode = 0;
pool = DBConnectionMgr.getInstance();
query = new StringBuffer();
query.append("SELECT mem_pw FROM member WHERE mem_id = ? AND mem_status = 1");
String db_pw = mem_pw;
try {
con = pool.getConnection();
pstmt = con.prepareStatement(query.toString());
pstmt.setString(1, mem_id);
rs = pstmt.executeQuery();
if(rs.next()) {
db_pw = rs.getString(1);
if(mem_pw.equals(db_pw)) {
mode = 1; //인증성공
} else {
mode = 0; //비밀번호 틀림
}
} else {
mode = -1; //아이디 존재하지 않음
}
}catch(SQLException s){
System.out.println("=============================================");
System.out.println("query:"+query.toString());
System.out.println("=============================================");
System.out.println(s.toString());
} catch (Exception e) {
System.out.println(e.toString());
} finally{
pool.freeConnection(con, pstmt);
}
return mode;
}
public int ismemberList(String mem_id, String mem_pw) {
int mode = 0;
…
String db_pw = mem_pw;
…
if(rs.next()) {
db_pw = rs.getString(1);
if(mem_pw.equals(db_pw)) {
mode = 1; //인증성공
} else {
mode = 0; //비밀번호 틀림
}
} else {
mode = -1; //아이디 존재하지 않음
}
int mode = 0;
…
String db_pw = mem_pw;
…
if(rs.next()) {
db_pw = rs.getString(1);
if(mem_pw.equals(db_pw)) {
mode = 1; //인증성공
} else {
mode = 0; //비밀번호 틀림
}
} else {
mode = -1; //아이디 존재하지 않음
}
ismemberList 메소드에 인자를 String형으로 아이디(mem_id)와 비밀번화(mem_pw)를 받는다.
리턴 타입은 int 형으로 아이디와 비밀번호가 DB에 있으면 1을 리턴 비밀번호가 다르면 0을 아이디가 없으면 -1을 반환한다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR" import="com.chapter04.*"%>
<% request.setCharacterEncoding("euc-kr"); %>
<%
String id = request.getParameter("mem_id");
String passwd = request.getParameter("mem_pw");
MemberCtrl mctrl = new MemberCtrl();
int check = mctrl.ismemberList(id, passwd);
if(check == 1) {
Cookie cookie = new Cookie("memId", id);
cookie.setMaxAge(20*60);
response.addCookie(cookie);
response.sendRedirect("index.jsp");
%>
<%
} else if(check == 0) {
%>
<script type="text/javascript">
alert("비밀번호가 맞지 않습니다.");
history.go(-1);
</script>
<% } else { %>
<script type="text/javascript">
alert("아이디가 맞지 않습니다.");
history.go(-1);
</script>
<% } %>
pageEncoding="EUC-KR" import="com.chapter04.*"%>
import="com.chapter04.*"
MemberCtrl.java 파일을 사용하기 위해 임포트해준다.
MemberCtrl.java 파일을 사용하기 위해 임포트해준다.
<% request.setCharacterEncoding("euc-kr"); %>
클라이언트에서 요청이 있을때 웹페이지(폼)에서 전송받은 값의 인코딩 형식을 한글로 사용한다.
<%
String id = request.getParameter("mem_id");
String passwd = request.getParameter("mem_pw");
index.jsp의 로그인 폼에 사용자가 입력한 정보(아이디, 비밀번호)를 각각 문자형 id, passwd에 대입한다.
MemberCtrl mctrl = new MemberCtrl();
메소드를 사용하기위해 클래스를 인스턴스화 한다.
int check = mctrl.ismemberList(id, passwd);
MemberCtrl 클래스의 ismemberList 메소드에 인자값을 사용자가 입력한 id 와 passwd를 넘겨 실행한 후 결과를 받아 check 변수에 대입한다.
if(check == 1) {
check 변수의 값이 1이면 DB에 정보가 있는 값이다. 다음 구문을 실행한다.
Cookie cookie = new Cookie("memId", id);
Cookie 클래스를 생성한다.
생성자에 memId와 사용자가 입력한 id값을 넘긴다.
생성자에 memId와 사용자가 입력한 id값을 넘긴다.
cookie.setMaxAge(20*60);
쿠키의 유효시간?을 20분?으로 설정한다.
response.addCookie(cookie);
쿠키를 생성하면 반드시 addCookie메소드를 사용해 쿠키를 추가해야한다.
response.sendRedirect("index.jsp");
index.jsp 페이지로 이동한다.
%>
<%
} else if(check == 0) {
%>
<script type="text/javascript">
alert("비밀번호가 맞지 않습니다.");
history.go(-1);
</script>
<% } else { %>
<script type="text/javascript">
alert("아이디가 맞지 않습니다.");
history.go(-1);
</script>
<% } %>
자세한 내용은 p418 ~ p436 참고한다.
오라클에서 칼럼 추가
토드를 실행한다.
'자바개발과정 > JSP&Servlet' 카테고리의 다른 글
회원관리 시스템 쪽지(보낸 쪽지함) (0) | 2008.07.21 |
---|---|
회원관리 시스템 쪽지(쪽지 보내기) (0) | 2008.07.18 |
회원관리 시스템 쪽지(DB) (0) | 2008.07.16 |
MVC 패턴 (0) | 2008.07.15 |
회원관리 시스템 로그인부분(세션) (0) | 2008.07.14 |