• DBCP 방식 사용,
  • 액션태그 사용 (useBean, setProperty)
  • DTO, DAO 클래스
  • 세션

 

 

프로그램 구조

 

Java Resources >
src > membeer
DTO 클래스 MemberDTO.java    
DAO 클래스 MemberDAO.java    
WebContent > member 회원가입 폼 memberform.html member.jsp  
ID 중복검사 idcheck.jsp idcheck1.jsp  
로그인 폼 loginform.jsp login.jsp main.jsp
수정 폼 updateform.jsp update.jsp  
삭제 폼 deleteform.jsp delete.jsp  
로그아웃 logout.jsp    

 

 

 

 

1.  login.jsp

loginform.html에서 submit 하면 넘어가는 login.jsp 파일을 생성한다.

회원가입의 member.jsp와 마찬가지로 DTO와 DAO를 불러오는 코드를 작성한다.

 

<jsp:useBean id="member" class="member.MemberDTO"></jsp:useBean>
<jsp:setProperty property="*" name="member"/>

 

 

 

 

DAO 객체를 생성, 회원인증을 위한 메소드 memberCheck를 불러오는 코드를 작성한다.

이 메소드는 두 가지 경우에 따라 값이 다르게 나타나는데,

회원인증을 성공한 경우와 그렇지 않은 경우이다.

 

<%
	MemberDAO dao = MemberDAO.getInstance();
	int result = dao.memberCheck(member);	//회원인증 처리
	
	if(result == 1) {					//로그인 성공
		session.setAttribute("id", member.getId());	// 세션으로 공유 설정
%>		<script>
			alert("로그인 성공");
			location.href = "main.jsp";
		</script>
<% } else { 							//로그인 실패
%>
		<script>
			alert("로그인 실패");
			history.go(-1);
		</script>
<% } %>

 

 

 

 

 

2. 회원인증 메소드 memberCheck 메소드 작성

 

	public int memberCheck(MemberDTO member) {
		int result = 0;
		
		Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		try {
			con = getConnection();
			String sql = "select*from member where id=?";
			
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1,  member.getId());
			rs = pstmt.executeQuery();
			
			if (rs.next()) {	// ID 일치
				// ID가 일치하면 비번값을 비교, 일치하면 로그인 성공
				if (rs.getString("passwd").equals(member.getPasswd())) {
					result = 1 ;
				} else {
					result = -1;
				}
			} else {			// ID 불일치
				result = -2;
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (pstmt != null) try { pstmt.close();} catch (Exception e) {}
			if (con != null) try { con.close();} catch (Exception e) {}
			if (rs != null) try { con.close();} catch (Exception e) {}
		}
		
		return result;
	}

 

 

맞는 비번을 넣었을 경우와 틀린 비번을 넣었을 경우 두 가지를 모두 테스트 해보았고,

정상 작동된다.

 

 

 

 

 

 

3. main.jsp

 

세션 유무에 따라 main.jsp에 출력될 내용이 다르다.

 

1) 로그인 성공 시 회원정보 수정, 로그아웃

2) 로그인 실패 시 회원가입, 로그인

 

 

main.jsp 파일을 생성하여 세션 값을 구해온다.

String 객체를 생성해 세션 값을 저장하고, 

if 조건문으로 세션값을 구해왔을 때, 구해오지 못해 String 객체가 null 값인 경우로 나눠 작성한다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	String id = (String) session.getAttribute("id");

	if(id != null) {	// 세션이 있는 경우
%>	<%= id %>님 환영합니다! ^0^ <br><br><br>

	<a href="updateform.jsp">정보수정</a><br>
	<a href="logout.jsp">로그아웃</a><br>
	<a href="deleteform.jsp">회원탈퇴</a><br>

<% } else { 			// 세션이 없는 경우
%>

	<a href="memberform.html">회원가입</a><br>
	<a href="loginform.html">로그인</a>
	
<% } %>

 

 

 

 

 

 

4. logout.jsp

로그아웃을 한다는 것은 공유하여 연결했던 세션이 끊어진다는 것을 의미한다.

즉, 세션 객체를 삭제하면 된다.

로그아웃 버튼을 누르면 경고창이 실행되며 로그아웃 메시지가 보이고 로그인 화면으로 돌아간다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%
	session.invalidate();	//세션 삭제
%>

<script>
	alert("로그아웃");
	location.href="loginform.html"
</script>

 

 

 

 

 

 

+ Recent posts