Spring/Model1 _2(MVC)

1017 JSP - (Funweb) 로그인 여부 체크 메서드

jeoniee 2022. 10. 17. 17:46
728x90
반응형

Contents

     

    MemberFrontController
    // MemberLoginAction() 객체생성
        action = new MemberLoginAction();
        try {
            forward = action.execute(request, response);
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    }// MemberLoginAction.e 끝
    else if(command.equals("/Main.me")) {
        System.out.println(" C : /Main.me 호출");
        System.out.println(" C : [패턴1] DB사용X, view페이지 이동");
        forward = new ActionForward();
        forward.setPath("./main/main.jsp");
        forward.setRedirect(false);
    }// Main.me 끝
    else if(command.equals("/MemberLogout.me")) {
        System.out.println(" C : /MemberLogout.me 호출");
        System.out.println(" C : [패턴2] 비즈니스로직, 페이지 이동");
    
        //logout 객체 호출! 10.17
        action = new MemberLogoutAction();
        try {
            forward = action.execute(request, response);
            action.execute(request, response);
    
        } catch (Exception e) {
            e.printStackTrace();
        }
    
    
    }
    else if(command.equals("/MemberInfo.me")) {
        System.out.println(" C : /Memberinfo.me 호출");
        System.out.println(" C : 패턴3) DB 사용 o, 페이지 출력");
    
        //MemberInfoAction()
    
    }

    로그인 여부 체크 메서드 memberLogin(ID, PW)

    memberDAO
    public int memberLogin(String id, String pw) {
    		int result = -1;
    		
    		try {
    			con = getConnection();
    			sql = "select pw from itwill_member where id=?";
    			pstmt = con.prepareStatement(sql);
    			
    			pstmt.setString(1, id);
    			rs = pstmt.executeQuery();
    			
    			if(rs.next()) {
    				//회원 
    				if(pw.equals(rs.getString("pw"))) {
    					//로그인 성공
    					result = 1;
    				}else {
    					//로그인 실패
    					result = 0;
    				}
    				
    			}else {
    				result = -1;
    				
    				System.out.println(" DAO : 로그인 체크 ("+result+")");
    			}
    		} catch (Exception e) {
    			
    			e.printStackTrace();
    		}finally {
    			closeDB();
    			
    		}
    		
    		
    		
    		return result;
    	}

     

     

     

    MemberLoginAction
    package com.itwillbs.member.action;
    
    import java.io.PrintWriter;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.itwillbs.member.db.MemberDAO;
    
    public class MemberLoginAction implements Action {
    
    	@Override
    	public ActionForward execute(HttpServletRequest request,
    			HttpServletResponse response) throws Exception {
    		System.out.println(" M : MemberLoginAction_execute() 호출 ");
    		
    		// 한글처리(생략)
    		// 전달정보 저장(id, pw)
    		String id = request.getParameter("id");
    		String pw = request.getParameter("pw");
    		
    		// DAO 객체 - 로그인 여부 체크 메서드
    		MemberDAO dao = new MemberDAO();
    		int result = dao.memeberLogin(id, pw);
    		
    		// 체크 결과에 따른 페이지 이동(JS)
    
    		if(result == 0) {
    			response.setContentType("text/html; charset=utf-8");
    			PrintWriter out = response.getWriter();
    			out.print("<script>");
    			out.print("alert('비밀번호 오류!'); ");
    			out.print("history.back(); ");
    			out.print("</script>");
    			out.close();
    			return null;
    			
    			
    		
    		}
    		
    		if(result == -1) {
    			response.setContentType("text/html; charset=utf-8");
    			PrintWriter out = response.getWriter();
    			out.print("<script>");
    			out.print("alert('회원정보 없음!'); ");
    			out.print("history.back(); ");
    			out.print("</script>");
    			out.close();
    			return null;
    		}
    		
    		// result == 1
    		// 로그인 성공 -> 아이디 세션영역에 저장
    		HttpSession session = request.getSession();
    		session.setAttribute("id", id);
    		
    		ActionForward forward = new ActionForward();
    		forward.setPath("./Main.me");
    		forward.setRedirect(true);
    		
    		return forward;
    	}
    
    }

     

     

     

     

    top.jsp

    이동해야하는 주소 수정 

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    
    <header>
    	<div id="login">
    		<c:if test="${id == null }">
    		<a href="./MemberLogin.me">login</a> | <a href="./MemberJoin.me">join</a>
    		</c:if>
    		<c:if test="${id != null }">
    		<a href="./MemberInfo.me">${id }'s info</a> | <a href="./MemberLogout.me">logut</a>
    		</c:if>
    	</div>
    	<div class="clear"></div>
    	<!-- 로고들어가는 곳 -->
    	<div id="logo">
    		<img src="./images/logo.gif" width="265" height="62" alt="Fun Web">
    	</div>
    	<!-- 로고들어가는 곳 -->
    	<nav id="top_menu">
    		<ul>
    			<li><a href="./Main.me">HOME</a></li>
    			<li><a href="./company/welcome.jsp">COMPANY</a></li>
    			<li><a href="#">SOLUTIONS</a></li>
    			<li><a href="./center/notice.jsp">CUSTOMER CENTER</a></li>
    			<li><a href="#">CONTACT US</a></li>
    		</ul>
    	</nav>
    </header>

     

     

     

    회원 정보 메서드 만들기 - getMember


     

    MemberDAO
    //회원정보 조회 메서드 getMember(ID)
     public MemberDTO getMember(String id) {
         MemberDTO dto = null;
         try {
            con = getConnection();
            sql = "select * from itwill_member where id=?";
    
            pstmt = con.prepareStatement(sql);
            pstmt.setString(1, id);
    
    
            rs = pstmt.executeQuery();
    
    
    
    
            //5.데이터 처리 
            if(rs.next()){
                //회원정보 저장 (MemberBean)
                //rs(DB정보) -> MemberBean
                dto = new MemberDTO();
    
                dto.setId(rs.getString("id"));
                dto.setPw(rs.getString("pw"));
                dto.setName(rs.getString("name"));
                dto.setBirth(rs.getString("birth"));
                dto.setGender(rs.getString("gender"));
                dto.setEmail(rs.getString("email"));
                dto.setAddr(rs.getString("addr"));
                dto.setTel(rs.getString("tel"));
                dto.setRegdate(rs.getTimestamp("regdate"));
    
            }	
            System.out.println(" DAO : 회원 정보 저장완료!");
    
        } catch (Exception e) {
    
            e.printStackTrace();
        }finally {
            closeDB();
        }
         return null;
    
     }
     //회원정보 조회 메서드 getMember(ID)

     

    MemberInfoAction
    package com.itwillbs.member.action;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import com.itwillbs.member.db.MemberDAO;
    import com.itwillbs.member.db.MemberDTO;
    
    public class MemberInfoAction implements Action {
    
    	@Override
    	public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    		System.out.println(" M : MemberInfoAction_execute() 호출");
    		
    		// 세션 제어
    		HttpSession session = request.getSession();
    		String id = (String)session.getAttribute("id");
    		
    		ActionForward forward = new ActionForward();
    		
    		if(id==null) {
    			forward.setPath("./Main.me");
    			forward.setRedirect(false);
    			return forward;
    		}
    		// DAO - 회원 정보 가져오는 메서드 (getMember(ID))
    		MemberDAO dao = new MemberDAO();
    		MemberDTO dto = dao.getMember(id);
    		
    		// 정보를 request 영역에 저장(view 전달)
    		request.setAttribute("dto", dto);
    		
    		// ./member/info.jsp페이지 이동 
    		forward.setPath(id);
    		forward.setRedirect(false);
    
    		return forward;
    	}
    
    }

     

     

     

     

    join 복붙 -> info로 바꿔주기 

     

     

     

     

     

    회원정보 수정하기 

    updateAction 

     

    join 복붙 -> update로 바꿔주기 

     

     

    728x90
    반응형