1.약관.html
-> 2. Backend
-> 3. 회원가입.jsp(or .do)
-> 4. Backend
-> 5. Database 저장
=> 회원가입 페이지는 post로 data 전송!! (get은 보안 포기)
⚡ step1 (agree.html)
<body> <form id="frm"> <p>약관동의</p> <label><input type="checkbox" id="all">전체선택</label><br> <div id="box"> <label><input type="checkbox" id="agree1" name="ag1" class="agr1 agrees" value="Y">(필수)이용약관</label><br> <label><input type="checkbox" id="agree2" name="ag2" class="agr2 agrees" value="Y">(필수)개인정보 수집 및 이용</label><br><br> </div> <input type="button" value="다음단계" id="btn"> </form> </body> <script type="text/javascript"> $(()=>{ var $count=0; $("#btn").click(function(){ var $ag1 = $("#agree1").is(":checked"); var $ag2 = $("#agree2").is(":checked"); if($ag1==false || $ag2==false){ alert("약관에 모두 동의하셔야 회원가입이 진행됩니다.") }else{ $("#frm").attr("method","post"); $("#frm").attr("action","./member_ship.do"); $("#frm").submit(); } }); //attr : attribute (소스의 속성을 수정) //prop : 브라우저의 메모리 영역 파트를 변경 $("#all").click(function(){ var $all = $(this).is(":checked"); $("#agree1").prop("checked",$all); $("#agree2").prop("checked",$all); if($all == true){ $count = 2; }else{ $count = 0; } }) $("#box .agrees").click(function(){ var $node = $(".agrees").index(this); var $ag = $(".agrees").eq($node).is(":checked"); if($ag == false){ $count--; }else{ $count++; } if($count == 2){ $("#all").prop("checked",true); }else{ $("#all").prop("checked",false); } }) }) </script>
🔽 backend로 전달 (member_ship.java)
member_ship.jsp에 step2 html 코드 복붙 후 핸들링
⚡ member_ship.java (servlet)
public class member_ship extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String ag1 = request.getParameter("ag1"); String ag2 = request.getParameter("ag2"); request.setAttribute("ag1", ag1); request.setAttribute("ag2", ag2); RequestDispatcher rd = request.getRequestDispatcher("./member_ship.jsp"); rd.forward(request, response); } }
※ Attribute("가상의 변수명" , 실제값)
※ RequestDispatcher : 외부에 있는 jsp파일을 로드할 때 사용
🔽 servlet => jsp 전달 (step1에서 받은 value값)
-jsp
jsp파일에 java코드 넣음<input type="hidden" name="ag1" value="<%=request.getAttribute("ag1")%>"> <input type="hidden" name="ag2" value="<%=request.getAttribute("ag2")%>">
이거랑 step2에서 받은 input value값 다 보냄 (step2 jsp파일 생략)
🔽
⚡ member_ok.java
public class member_ok extends HttpServlet { private static final long serialVersionUID = 1L; PrintWriter pw = null; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); this.pw = response.getWriter(); String ag1 = request.getParameter("ag1"); String ag2 = request.getParameter("ag2"); String mid = request.getParameter("mid"); String mpw = request.getParameter("mpw"); String mname = request.getParameter("mname"); String memail = request.getParameter("memail"); String mhp = request.getParameter("mhp"); String evtagree1 = ""; //정보수신동의 if(request.getParameter("evtagree1") == null) { evtagree1 = "N"; }else { evtagree1 = request.getParameter("evtagree1"); } String evtagree2 = ""; //SMS수신동의 if(request.getParameter("evtagree2") == null) { evtagree2 = "N"; }else { evtagree2 = request.getParameter("evtagree2"); } String mtel = request.getParameter("mtel"); String addr_post = request.getParameter("addr_post"); String addr = request.getParameter("addr"); String addr2 = request.getParameter("addr2"); //db연결 try { dbinfo db = new dbinfo(); Connection ct = db.getConnection(); //System.out.println("정상적으로 DB 연결 완료!!"); String sql = "insert into easy_member " + "(no,agree1,agree2,mid,mpass,mname,memail,mhp,evtagree1,evtagree2,mtel,post,adress1,adress2,mdate)" + " values ('0',?,?,?,?,?,?,?,?,?,?,?,?,?,now())"; PreparedStatement ps = ct.prepareStatement(sql); ps.setString(1,ag1); ps.setString(2,ag2); ps.setString(3,mid); ps.setString(4,mpw); ps.setString(5,mname); ps.setString(6,memail); ps.setString(7,mhp); ps.setString(8,evtagree1); ps.setString(9,evtagree2); ps.setString(10,mtel); ps.setString(11,addr_post); ps.setString(12,addr); ps.setString(13,addr2); int result = ps.executeUpdate(); if(result > 0) { pw.write("<script>alert('정상적으로 회원가입이 완료 되었습니다');" + "location.href='./agree.html';" + "</script>"); } ct.close(); }catch(SQLIntegrityConstraintViolationException se) { pw.write("<script>alert('아이디 및 데이터 정보 오류로 인하여 가입이 취소 되었습니다.');" + "location.href='./agree.html';" + "</script>"); } catch(Exception e) { e.printStackTrace(); System.out.println("database의 접속 오류가 발생했습니다!"); }finally { pw.close(); } } }
🔽
mysql 데이터 입력 확인
'CLASS > JQUERY' 카테고리의 다른 글
jquery ui (0) | 2024.06.20 |
---|---|
#4-1 / jquery 이용 룰렛 제작 (0) | 2024.06.13 |
#3-2 / backend-data(배열) ▶ jquery를 이용한 배열 출력 (1) | 2024.06.12 |
#3-1 / jquery이용한 form + submit (0) | 2024.06.12 |
#2 / jquery checkbox (0) | 2024.06.12 |