반응형
이전글
->2019/12/07 - [나만의 미니프로젝트/JSP게시판 웹사이트] - JSP 게시판 만들기 NO.3 로그인 처리(oracle)
1. UserDAO.java 에 join 추가
public int join(User user) {
String SQL = "INSERT INTO USER1 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 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>
</html>
회원가입 테스트
성공! 잘작동한다..
(사실은 이부분에서 오류가 나서 전전긍긍하였다 ..ㅠ)
쿼리문 : SELECT * FROM USER1;
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>
</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 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>
</html>
테스트!
반응형
'나만의 미니프로젝트 > JSP게시판 웹사이트' 카테고리의 다른 글
JSP 게시판 만들기 NO.6 글 등록 기능 (0) | 2019.12.07 |
---|---|
JSP 게시판 만들기 NO.5 메인 화면/ 게시판 DB생성 (0) | 2019.12.07 |
JSP 게시판 만들기 NO.3 로그인 처리(oracle) (0) | 2019.12.07 |
JSP 게시판 만들기 NO.2 디자인,로그인,회원DB (0) | 2019.12.07 |
JSP 게시판 만들기 NO.1 JSP 개발 환경 구축 하기 (0) | 2019.12.03 |