이전 글 보기 ☞
2018/10/18 - [ 컴알못/Web] - JSP 기초 : 게시판 만들기 3. 로그인 처리 (mysql)
1. UserDAO.java 에 join 추가
public int join(User user) { String SQL = "INSERT INTO USER VALUES (?,?,?,?,?)"; try { pstmt = conn.prepareStatement(SQL); pstmt.setString(1, user.getUserID()); pstmt.setString(2, user.getUserPassword()); pstmt.setString(3, user.getUserName()); pstmt.setString(4, user.getUserGender()); pstmt.setString(5, user.getUserEmail()); return pstmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } return -1; // DB 오류 }
|
2. joinAction.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="user.UserDAO" %> <!-- userdao의 클래스 가져옴 --> <%@ page import="java.io.PrintWriter" %> <!-- 자바 클래스 사용 --> <% request.setCharacterEncoding("UTF-8"); %> <!-- 한명의 회원정보를 담는 user클래스를 자바 빈즈로 사용 / scope:페이지 현재의 페이지에서만 사용--> <jsp:useBean id="user" class="user.User" scope="page" /> <jsp:setProperty name="user" property="userID" /> <jsp:setProperty name="user" property="userPassword" /> <jsp:setProperty name="user" property="userName" /> <jsp:setProperty name="user" property="userGender" /> <jsp:setProperty name="user" property="userEmail" /> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jsp 게시판 웹사이트</title> </head> <body> <% if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null || user.getUserGender() == null || user.getUserEmail() == null){ PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('입력이 안 된 사항이 있습니다.')"); script.println("history.back()"); script.println("</script>"); } else{ UserDAO userDAO = new UserDAO(); //인스턴스생성 int result = userDAO.join(user);
if(result == -1){ // 아이디가 기본키기. 중복되면 오류. PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('이미 존재하는 아이디 입니다.')"); script.println("history.back()"); script.println("</script>"); } //가입성공 else { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("location.href = 'main.jsp'"); script.println("</script>"); } } %> </body> </body> </html>
|
회원가입 테스트
아무거나 입력해본다.
SELECT * FROM USER;
잘 작동하고 있다.
( 실은 겨우 작동 ㅠㅠ )
3. 접속 회원 세션 관리
현재 접속한 회원에 할당해주는 고유 아이디(세션)를
부여해주는 것 으로 부터 세션관리가 시작된다.
로그인을 성공한 회원에게 세션을 부여해준다.
loginAction.jsp에 로그인 성공시(result == 1)
session.setAttribute("userID", user.getUserID());
|
세션값으로 getUserID, 해당회원의 아이디값을 준다.
logoutAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jsp 게시판 웹사이트</title> </head> <body> <% session.invalidate(); // 접속한 회원의 세션을 빼앗음 %> <script> //메인으로 이동 location.href = 'main.jsp'; </script> </body> </body> </html>
|
joinAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="user.UserDAO" %> <!-- userdao의 클래스 가져옴 --> <%@ page import="java.io.PrintWriter" %> <!-- 자바 클래스 사용 --> <% request.setCharacterEncoding("UTF-8"); %> <!-- 한명의 회원정보를 담는 user클래스를 자바 빈즈로 사용 / scope:페이지 현재의 페이지에서만 사용--> <jsp:useBean id="user" class="user.User" scope="page" /> <jsp:setProperty name="user" property="userID" /> <jsp:setProperty name="user" property="userPassword" /> <jsp:setProperty name="user" property="userName" /> <jsp:setProperty name="user" property="userGender" /> <jsp:setProperty name="user" property="userEmail" /> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>jsp 게시판 웹사이트</title> </head> <body> <% //라긴된 회원들은 페이지에 접속 할 수 없도록 String userID = null; if(session.getAttribute("userID") != null ){ userID = (String) session.getAttribute("userID"); } if(userID != null){ PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('이미 로그인 되어있습니다.')"); script.println("location.href = 'main.jsp'"); script.println("</script>"); }
if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null || user.getUserGender() == null || user.getUserEmail() == null){ PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('입력이 안 된 사항이 있습니다.')"); script.println("history.back()"); script.println("</script>"); } else{ UserDAO userDAO = new UserDAO(); //인스턴스생성 int result = userDAO.join(user);
if(result == -1){ // 아이디가 기본키기. 중복되면 오류. PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('이미 존재하는 아이디 입니다.')"); script.println("history.back()"); script.println("</script>"); } //가입성공 else { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("location.href = 'main.jsp'"); script.println("</script>"); } } %> </body> </body> </html>
|
테스트
'STUDY > programing' 카테고리의 다른 글
JSP 기초 : 게시판 만들기 7. 글 목록 및 뷰페이지 (442) | 2018.10.24 |
---|---|
JSP 기초 : 게시판 만들기 6. 글 등록 기능 (262) | 2018.10.23 |
JSP 기초 : 게시판 만들기 5. 게시판 DB 생성 (753) | 2018.10.22 |
JSP 기초 : 게시판 만들기 3. 로그인 처리 (mysql) (23) | 2018.10.18 |
JSP 기초 : 게시판 만들기 2. 디자인, 로그인, 회원 DB (16) | 2018.10.16 |
JSP 기초 : 게시판 만들기 1. JSP 개발환경 구축하기 (3) | 2018.10.15 |