Cohe

JSP mini project : mypage 실습2 - 회원가입 본문

카테고리 없음

JSP mini project : mypage 실습2 - 회원가입

코헤0121 2024. 4. 15. 18:00
728x90

join 페이지


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!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=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Welcome to MyWorld</title>

    <!-- Bootstrap Core CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

    <!-- Custom CSS -->
    <link href="../css/business-casual.css" rel="stylesheet">

    <!-- Fonts -->
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
    <link href="https://fonts.googleapis.com/css?family=Josefin+Slab:100,300,400,600,700,100italic,300italic,400italic,600italic,700italic" rel="stylesheet" type="text/css">
</head>
<body>
    <%@include file="../include/header.jsp" %>
    <section>
        <div class="container">
            <div class="row">
                <div class="col-md-6 col-md-offset-3">
                    <form name = "regform" class="form-horizontal" action="user_join_ok.jsp" method="post">
                        <h2 class="text-center">회원 가입 페이지</h2>
                        <hr>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">ID</label>
                            <div class="col-sm-9">
                                <input type="text" class="form-control" name="id" placeholder="4글자 이상 8글자 이하">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">비밀번호</label>
                            <div class="col-sm-9">
                                <input type="password" class="form-control" name="pw">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">비밀번호 확인</label>
                            <div class="col-sm-9">
                                <input type="password" class="form-control" name="pw_check">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">이름</label>
                            <div class="col-sm-9">
                                <input type="text" class="form-control" name="name">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">Email</label>
                            <div class="col-sm-9">
                                <input type="email" class="form-control" name="email">
                            </div>
                        </div>
                        <div class="form-group">
                            <label class="col-sm-3 control-label">Address</label>
                            <div class="col-sm-9">
                                <input type="text" class="form-control" name="address">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-sm-offset-3 col-sm-9">
                                <button type="button" class="btn btn-primary" onclick="check()">가입하기</button>
                                <button type="button" class="btn btn-info" onclick="location.href='user_login.jsp'">로그인</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </section>
    <%@include file="../include/footer.jsp" %>
    <!-- jQuery -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <!-- Bootstrap Core JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

    <script type="text/javascript">
        function check(){
            //form은 유일하게 document.태그 이름으로 접근이 가능하다.
            if(document.regform.id.value==''){
                alert("아이디는 필수입니다.");
                return;
            }else if (document.regform.id.value.length < 4 || document.regform.id.value.length > 8){
                alert("아이디는 4글자 이상, 8글자 이하로 입력해주세요");
                return;
            }else if (document.regform.pw.value == ''){
                alert("비번은 필수 사항입니다.");
                return;
            }else if(document.regform.pw.value != document.regform.pw_check.value){
                alert("비밀번호 확인란을 확인해주세요");
                return;
            }else if (document.regform.name.value == ''){
                alert("이름은 필수 사항입니다.");
                return;
            }else if (document.regform.email.value == ''){
                alert("email은 필수 사항입니다.");
                return;
            }
            else if(confirm("회원 가입을 하시겠습니까?")){
                //확인창을 띄워서 확인 취소 중 선택하는 메서드
                document.regform.submit();
            }
        }

    </script>
</body>
</html>


join_ok.jsp


<%@page import="com.myweb.user.model.UserVO"%>
<%@page import="com.myweb.user.model.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>

<%

    request.setCharacterEncoding("utf-8");
    String id = request.getParameter("id");
    String pw = request.getParameter("pw");
    String name = request.getParameter("name");
    String email = request.getParameter("email");
    String address = request.getParameter("address");

    //dao 생성
    UserDAO dao = UserDAO.getInstance();

    UserVO vo = new UserVO(id, pw, name, email, address,null);

    //회원 가입 전에 아이디가 존재하는지 중복 검사 실행
    int result = dao.IdConfirm(id);

    if(result == 1){//중복 시 경고 띄우고 회원 가입 창으로 돌아가기
        out.write("<script>alert(\"아이디가 중복되었습니다.\");history.go(-1);</script>");
    }
    else{// 중복이 없는 경우 회원가입 처리 진행
        int result2 = dao.join(vo);
        if(result2==1){%>
            <script>
            alert("회원가입을 축하합니다");
            location.href="user_login.jsp";
            </script>
        <%}
        else{%>
            <script>
            alert("회원가입이 실패됐습니다");
            history.go(-1);
            </script>
        <%}    
    }
%>

join dao method

    //회원 가입
    public int join(UserVO vo) {
        int result = 0;

        String sql = "insert into users(id,pw,name,email,address) values(?,?,?,?,?)";

        try {
             conn = ds.getConnection();
             System.out.println("데이터베이스 접속 성공.");
             pstmt = conn.prepareStatement(sql);

             pstmt.setString(1,vo.getId());
             pstmt.setString(2,vo.getPw());
             pstmt.setString(3,vo.getName());
             pstmt.setString(4,vo.getEmail());
             pstmt.setString(5,vo.getAddress());

             result = pstmt.executeUpdate();

        }  catch (SQLException sqle) {
             System.out.println("SQL 연동 오류");
             System.out.println(sqle.getMessage());
          }finally {
                 JdbcUtil.close(conn, pstmt, rs);
          }

        return result;

    }