[JSP] jsp 회원가입 로직 구현하기

 

 

jsp 회원등록,수정,삭제,리스트(CRUD) 로직 구현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package controller;
 
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import damain.MemberVo;
import service.MemberDao;
 
@WebServlet("/MemberController")
public class MemberController {
    
    
protected void process(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{
        
        
 
 
        request.setCharacterEncoding("UTF-8");  // UTF-8 인코딩지정
        
        response.setContentType("text/html;charset=utf-8"); // 뷰에 전달할때도 인코딩 설정
        
        String uri = request.getRequestURI();  // 컨텐츠명 부터 쭉 뽑기
        System.out.println("uri:"+uri);
    
        String pj = request.getContextPath();  // 컨텐츠명만 뽑기
        
        String command = uri.substring(pj.length());  // url 을 컨텐츠 길이를 자르기
        
        System.out.println("command:"+command);
    
        
        if(command.equals("/member/memberJoin.do")) {    // 이쪽으로 접속시 실행
            
            
            
            
            
            
            
            
        
        RequestDispatcher rd = request.getRequestDispatcher("/member/memberJoin.jsp");  // forward 방식으로 재 전송
        rd.forward(request, response);
        
}else if(command.equals("/member/memberLogin.do")) {
    
    
    
 
    
    
  RequestDispatcher rd = request.getRequestDispatcher("/member/memberLogin.jsp");
     rd.forward(request, response);
  
     
     
     
     
}else if(command.equals("/member/memberJoinAction.do")) {    // 회원가입 이름 비밀번호 이메일 성별 입력후 로직 실행칸
    
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=utf-8");
    
    String memberId = request.getParameter("memberId");     
    System.out.println("memberId"+memberId);
    String memberPwd = request.getParameter("memberPwd");
    System.out.println("memberPwd"+memberPwd);
    String memberName = request.getParameter("memberName");
    System.out.println("memberName"+memberName);
    String memberEmail = request.getParameter("memberEmail");
    System.out.println("memberEmail"+memberEmail);
    String memberGender = request.getParameter("memberGender");
    System.out.println("memberGender"+memberGender);
    
 
    MemberDao md = new MemberDao(); // 로직실행
    int value = md.insertmember(memberId, memberPwd, memberName, memberGender, memberEmail);
    
    
    
    
    if(value==1) { // db 실행값 
        response.sendRedirect(request.getContextPath()+"/index.jsp");
    }else{
        response.sendRedirect(request.getContextPath()+"/member/memberLogin.do");
        
    }
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
    private Connection conn;            // 연결 객체 지정
    private PreparedStatement pstmt;  // sql 구문 실행
 
    
    public MemberDao() {               //기본생성사 생성
        dbconn db = new dbconn();        // 데이터베이스 연결체
        this.conn = db.getConnection();  // 데이터베이스 현재페이지 연결
    }
    
    
    
    public int insertmember(String memberId,String memberPwd,String memberName,String memberGender,String memberEmail) {
        
        int value=0;  // 리턴값 지정
        PreparedStatement pstmt =null//sql 구문 값 null 지정
        
        
        String sql = "insert into member(midx,memberid,memberpwd,membername,membergender,memberemail)"
        +"values(midx_b_seq.nextval,?,?,?,?,?)";
        
        
        try {
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, memberId);
            pstmt.setString(2, memberPwd);
            pstmt.setString(3, memberName);
            pstmt.setString(4, memberGender);
            pstmt.setString(5, memberEmail);
            value=pstmt.executeUpdate();  // 새로 값을 ㅣ정하는거는 update 
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        
        
        return value;
    }
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
 
<link rel="stylesheet" href="style1.css">
 
<script src="http://code.jquery.com/jquery-3.6.0.min.js"></script>
 
 
 
 
 
 
 
</head>
<body>
<section  class="logo-form">
<h1>회 원 가 입</h1>
<form action="<%=request.getContextPath()%>/member/memberJoinAction.do" method="post">
  <div class="int-area">
  <input type="text" name="memberId" id="id" class="input_id" autocomplete="off" required>
  <label for="id">User Id</label>  <!-- font check id 가 먼저실행됨.. -->
    <font id="checkId" size="2"></font>
  </div>
    <div class="int-area">
  <input type="password" name="memberPwd" id="pw" autocomplete="off" required>
   <label for="pw">PassWord</label>
  </div>
   <div class="int-area">
  <input type="text" name="memberName" id="name" autocomplete="off" required>
   <label for="name">User Name</label>
   </div>
    <div class="int-area">
  <input type="email" name="memberEmail" id="email" autocomplete="off" required>
   <label for="email">E-mail</label>
     </div>
     
     <div class="int-area1">
   <input class="radio1" type="radio" name="memberGender" id="gender" value="M" autocomplete="off" required>
   <label class="label1" for="gender">남자</label>
    <input class="radio1" type="radio" name="memberGender" id="gender" value="W" autocomplete="off" required>
   <label class="label1" for="gender">여자</label>
   </div>
 
 
  <div class="btn-area">
    <button id="btn"  type="submit">login</button>
  </div>
</form>
<div class="caption">
<a href="<%=request.getContextPath()%>/member/memberFindByid.do">forgot userid?</a><br>
<a href="<%=request.getContextPath()%>/member/memberFindBypwd.do">forgot password?</a>
</div>
</section>
 
 
 
 
<!-- java script -->
 
 
 
 
 
 
 
 
 
<script>
 
 
 
 
let id = $('#id');
let pw = $('#pw');
let btn = $('#btn');
let name = $('#name');
let email = $('#email');
let gender = $('gender');
 
 
$(btn).on('click',function(){
    if($(id).val()==""){
        $(id).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');
            
        },1500);
    }
    else if($(pw).val()==""){
        $(pw).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');    
        },1500);
        
    }    else if($(name).val()==""){
        $(name).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');    
        },1500);
    }    else if($(email).val()==""){
        $(email).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');    
        },1500);
    }    else if($(gender).val()==""){
        $(gender).next("label").addClass("warning");
        setTimeout(function(){
            $('label').removeClass('warning');    
        },1500);
    }
      
      
      
      
        
    
    
    
});
 
 
 
 
</script>
 
<script>
 
$('.input_id').focusout(function(){
    let userId = $('.input_id').val(); // input_id 에 입력되는 값
    
    $.ajax({
        url:"<%=request.getContextPath()%>/member/idcheck.do",
        type:"post",
        data:{userId:userId},
        dataType:'json',
        success:function(result){
            if(result==0){
                $("#checkId").html('사용할수 없는 아이디입니다');
                $("#checkId").attr('color','red');
            }else{
                $("#checkId").html('사용할수 있는 아이디입니다');
                $("#checkId").attr('color','<span>green</span>');
            }
        },
        error : function(){
            alert("서버요청실패");
        }
    })
    
})
 
 
 
</script>
 
 
 
</body>
</html>
cs