YJ의 새벽
JDBC 활용 연습용7. ( 회원가입 + DB저장 ) 본문
------- 모든것이 true 일때. 가입하기 누르면 DB 에 저장. 해보자
--- alert 창 띄우고 , 다시 홈페이지로 복귀
: resp.sendRedirect(req.getContextPath());
-- DB저장값 확인할수있다.
--- signUp.js 회원가입버튼 이벤트 추가 ( ajax 로 접근 )
// 회원가입하기 버튼 /////////////////////////////////////////////////////
const signUpBtn = document.getElementById("signUp-btn");
signUpBtn.addEventListener("click",function(){
if ( checkObj.memberEmail && checkObj.memberNickname &&
checkObj.memberPw && checkObj.memberPwConfirm &&
checkObj.memberTel && checkObj.sendEmail){
$.ajax({
url : "/member/signUp",
type : "POST",
data : { "memberEmail" : memberEmail.value,
"memberNickname" : memberNickname.value,
"memberPw" : memberPw.value,
"memberTel" : memberTel.value
},
success : function(result){
console.log(result);
if ( result > 0 ) {
alert("가입완료");
}else{
alert("가입실패");
}
},
error : function(){
console.log("회원가입오류");
}
});
}
});
--- SignUpServlet.class (/member/signUp) 에 doPost 로 회원가입폼 받기, 추가
@WebServlet("/member/signUp")
public class SignUpServlet extends HttpServlet{
// GET 방식 요청 시 ( a 태그는 무조건 Get)
// JSP 로 바로 응답할수 있도록 요청 위임.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String path = "/WEB-INF/views/member/signUp.jsp";
req.getRequestDispatcher(path).forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String memberEmail = req.getParameter("memberEmail");
String memberNickname = req.getParameter("memberNickname");
String memberPw = req.getParameter("memberPw");
String memberTel = req.getParameter("memberTel");
try {
MemberService service = new MemberService();
int result = service.ResultMemberServlet(memberEmail,memberNickname,memberPw,memberTel);
resp.getWriter().print(result);
}catch(Exception e) {
e.printStackTrace();
}
resp.sendRedirect(req.getContextPath()); // 최상위 페이지로 복귀
}
}
-- MemberService.class 받은 회원정보들 insert 서비스 추가
/** 회원정보 DB 저장 서비스
* @param memberEmail
* @param memberNickname
* @param memberPw
* @param memberTel
* @return
*/
public int ResultMemberServlet(
String memberEmail, String memberNickname, String memberPw, String memberTel) throws Exception{
Connection conn = getConnection();
int result = dao.ResultMemberServlet(conn,memberEmail,memberNickname,memberPw,memberTel);
if( result > 0 ) commit(conn);
else rollback(conn);
close(conn);
return result;
}
}
-- MemberDAO.class 받은 회원정보들 insert DAO 추가 (DB접근 )
/** 회원정보 DB 저장 DAO
* @param conn
* @param memberEmail
* @param memberNickname
* @param memberPw
* @param memberTel
* @return
* @throws Exception
*/
public int ResultMemberServlet(Connection conn, String memberEmail, String memberNickname, String memberPw,
String memberTel) throws Exception{
int result = 0;
try {
String sql = prop.getProperty("ResultMemberServlet");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberEmail);
pstmt.setString(2, memberPw);
pstmt.setString(3, memberNickname);
pstmt.setString(4, memberTel);
result = pstmt.executeUpdate();
}finally {
close(stmt);
}
return result;
}
}
-- member-sql.xml insert문 SQL 문 추가
<entry key = "ResultMemberServlet" >
INSERT INTO MEMBER ( MEMBER_NO, MEMBER_EMAIL , MEMBER_PW, MEMBER_NICK,MEMBER_TEL)
VALUES (SEQ_MEMBER_NO.NEXTVAL ,?,?,?,?)
</entry>
'SelfStudy > JDBC' 카테고리의 다른 글
JDBC 활용 연습용9. ( 회원정보수정 ) (0) | 2023.03.31 |
---|---|
JDBC 활용 연습용8. ( 로그인후 마이페이지 창 (사진업로드) ) (0) | 2023.03.30 |
JDBC 활용 연습용6. ( 닉네임 중복확인 + 전화번호유효성검사 ) (0) | 2023.03.29 |
JDBC 활용 연습용5. ( 인증번호 확인 + 비밀번호일치확인 ) (0) | 2023.03.29 |
JDBC 활용 연습용4. ( 롬복 + 회원가입(이메일인증) ) (0) | 2023.03.28 |
Comments