반응형
이번 페이지에서는 로그인 및 회원가입한 사용자에게 세션을 부여하는 작업을 해보도록 하겠다.
세션ID를 부여하는 이유는 로그인 및 회원가입을한 회원이 또 다시 로그인 하거나 회원가입을 하는 행위를 막기 위해서 세션ID를 부여한다.
이제 코드를 작성해보자
Loginaction.jsp
그 후 <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>");
}
코드를 해석하면
String userID = null; -> 사용자에게 부여할 세션ID 변수 생성
if(session.getAttribute("userID") != null)
userID = (String)session.getAttribute("userID");
}
-> 만약 userID라는 세션이 존재 할경우(로그인이 되어 있는 경우) 사용자에게 sessionID를 부여한다.
if(userID != null)
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('이미 로그인 되어 있습니다.')");
script.println("location.href = 'main.jsp'");
script.println("</script>");
}
-> 만약 sessionID가 존재 할 경우(로그인이 되어 있는 경우) 다음과 같은 경고창을 띄운 후 메인 페이지로 이동시킴
다음과 같이 작성하면 다음 코드를 Joinaction.jsp 파일에다가도 그대로 복사해서 붙여 넣는다.
Loginaction.jsp 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "user.userDAO" %>
<%@ page import = "java.io.PrintWriter" %>
<% request.setCharacterEncoding("UTF-8");%>
<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()"); // 이전 페이지로 사용자 redirect
script.println("</script>");
}
else {
userDAO userDao = new userDAO();
int result = userDao.join(user);
if(result==-1){ // 아이디가 이미 존재할시(DB 오류시)
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('이미 존재하는 ID 입니다.')");
script.println("history.back()");
script.println("</script>");
}
else{
PrintWriter script = response.getWriter();
session.setAttribute("userID",user.getUserID());
script.println("<script>");
script.println("location.href = 'Main.jsp' ");
script.println("</script>");
}
}
%>
</body>
</html>
Joinaction.jsp 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "user.userDAO" %>
<%@ page import = "java.io.PrintWriter" %>
<% request.setCharacterEncoding("UTF-8");%>
<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('이미 존재하는 ID 입니다.')");
script.println("history.back()");
script.println("</script>");
}
else{
PrintWriter script = response.getWriter();
session.setAttribute("userID",user.getUserID());
script.println("<script>");
script.println("location.href = 'Main.jsp' ");
script.println("</script>");
}
}
%>
</body>
</html>
반응형
'JSP' 카테고리의 다른 글
node.js를 이용하여 네이버 뉴스 크롤링하기 (0) | 2021.09.05 |
---|---|
JSP 무작정 해보기 - 로그아웃 페이지, 메인 페이지 틀 잡기 (1) | 2019.11.05 |
JSP 무작정 해보기 - 회원가입 (0) | 2019.11.05 |
JSP무작정 해보기 - 게시판 만들기 - DB 만들기, DB 연동, 로그인 함수 (0) | 2019.11.03 |
JSP무작정 해보기 - 게시판 만들기 - Login.jsp (0) | 2019.10.31 |