Search
Duplicate

아이디 μ €μž₯

아이디 μ €μž₯

아이디 μ €μž₯ 체크 여뢀에 λ”°λΌμ„œ, μΏ ν‚€λ₯Ό 생성 λ˜λŠ” μ†Œλ©Έμ‹œμΌœ μ €μž₯된 아이디λ₯Ό 확인할 수 μžˆλŠ” κΈ°λŠ₯

ν™”λ©΄

μž‘μ—… μˆœμ„œ

1.
UserServlet.java
2.
LoginServlet.java
3.
login.jsp

μ½”λ“œ

UserServlet.java

β€’
μ£Όμš” μ½”λ“œ
// 아이디 μ €μž₯ --------------------------------------------------- String rememberId = request.getParameter("rememberId"); Cookie cookieRememberId = new Cookie("rememberId", ""); Cookie cookieUsername = new Cookie("username", ""); cookieRememberId.setPath("/"); cookieUsername.setPath("/"); System.out.println("rememberId : " + rememberId); // 아이디 μ €μž₯ 체크 μ‹œ - κ°’ : on if( rememberId != null && rememberId.equals("on") ) { // μΏ ν‚€ 생성 cookieRememberId.setValue( URLEncoder.encode(rememberId, "UTF-8") ); cookieUsername.setValue( URLEncoder.encode(username, "UTF-8") ); // μΏ ν‚€ λ§Œλ£Œμ‹œκ°„ μ„€μ • - 7일 (/초) cookieRememberId.setMaxAge(60*60*24*7); cookieUsername.setMaxAge(60*60*24*7); } // 아이디 μ €μž₯ 체크 ν•΄μ œ μ‹œ else { // μΏ ν‚€ μ‚­μ œ - μΏ ν‚€ μœ νš¨μ‹œκ°„μ„ 0으둜 ν•˜κ³  응닡 cookieRememberId.setMaxAge(0); cookieUsername.setMaxAge(0); } // 응닡에 μΏ ν‚€ 등둝 response.addCookie(cookieRememberId); response.addCookie(cookieUsername); // 아이디 μ €μž₯ 끝 ---------------------------------------------------
Java
볡사
β€’
전체 μ½”λ“œ
package board.servlet; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.net.URLEncoder; import java.util.UUID; import board.DTO.Users; import board.Service.UserService; import board.Service.UserServiceImpl; @WebServlet("/users/*") public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; private UserService userService = new UserServiceImpl(); /** * [GET] */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // url : /users/idCheck String root = request.getContextPath(); String path = request.getPathInfo(); String page = ""; // /idCheck - 아이디 쀑볡 확인 if( path.equals("/idCheck") ) { System.out.println("아이디 쀑볡 확인..."); String username = request.getParameter("username"); boolean check = userService.idCheck(username); response.getWriter().print(check); } // /logout - λ‘œκ·Έμ•„μ›ƒ if( path.equals("/logout") ) { System.out.println("λ‘œκ·Έμ•„μ›ƒ..."); HttpSession session = request.getSession(); session.invalidate(); response.sendRedirect(root + "/"); } } /** * [POST] */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String root = request.getContextPath(); // /Board String path = request.getPathInfo(); // /idCheck // /join - νšŒμ›κ°€μž… if( path.equals("/join") ) { System.out.println("νšŒμ›κ°€μž… μš”μ²­ 처리..."); String username = request.getParameter("username"); String password = request.getParameter("password"); String name = request.getParameter("name"); String email = request.getParameter("email"); Users user = Users.builder() .id( UUID.randomUUID().toString() ) .username(username) .password(password) .name(name) .email(email) .build(); int result = userService.join(user); // νšŒμ›κ°€μž… 성곡 if( result > 0 ) { response.sendRedirect(root + "/"); } // νšŒμ›κ°€μž… μ‹€νŒ¨ else { response.sendRedirect(root + "/join.jsp?error=true"); } } // /login - 둜그인 if( path.equals("/login") ) { String username = request.getParameter("username"); String password = request.getParameter("password"); // 아이디 μ €μž₯ --------------------------------------------------- String rememberId = request.getParameter("rememberId"); Cookie cookieRememberId = new Cookie("rememberId", ""); Cookie cookieUsername = new Cookie("username", ""); cookieRememberId.setPath("/"); cookieUsername.setPath("/"); System.out.println("rememberId : " + rememberId); // 아이디 μ €μž₯ 체크 μ‹œ - κ°’ : on if( rememberId != null && rememberId.equals("on") ) { // μΏ ν‚€ 생성 cookieRememberId.setValue( URLEncoder.encode(rememberId, "UTF-8") ); cookieUsername.setValue( URLEncoder.encode(username, "UTF-8") ); // μΏ ν‚€ λ§Œλ£Œμ‹œκ°„ μ„€μ • - 7일 (/초) cookieRememberId.setMaxAge(60*60*24*7); cookieUsername.setMaxAge(60*60*24*7); } // 아이디 μ €μž₯ 체크 ν•΄μ œ μ‹œ else { // μΏ ν‚€ μ‚­μ œ - μΏ ν‚€ μœ νš¨μ‹œκ°„μ„ 0으둜 ν•˜κ³  응닡 cookieRememberId.setMaxAge(0); cookieUsername.setMaxAge(0); } // 응닡에 μΏ ν‚€ 등둝 response.addCookie(cookieRememberId); response.addCookie(cookieUsername); // 아이디 μ €μž₯ 끝 --------------------------------------------------- // 둜그인 처리 Users user = Users.builder() .username(username) .password(password) .build(); boolean result = userService.login(user); // 둜그인 성곡 if( result ) { // νšŒμ› 쑰회 Users loginUser = userService.selectByUsername(username); loginUser.setPassword(null); // μ„Έμ…˜μ— μ‚¬μš©μž 정보 등둝 HttpSession session = request.getSession(); session.setAttribute("loginId", user.getUsername()); session.setAttribute("loginUser", loginUser); response.sendRedirect(root + "/"); } // 둜그인 μ‹€νŒ¨ else { response.sendRedirect(root + "/login.jsp?error=true"); } } } }
Java
볡사

LoginServlet.java

package board.servlet; import java.io.IOException; import java.net.URLDecoder; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; @WebServlet({"/login", "/login.jsp"}) public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String page = ""; // 아이디 μ €μž₯ μΏ ν‚€ 확인 System.out.println("아이디 μ €μž₯ μΏ ν‚€ 확인 ..."); String rememberId = ""; String username = ""; Cookie[] cookies = request.getCookies(); if( cookies != null ) { for( Cookie cookie : cookies ) { String cookieName = cookie.getName(); String cookieValue = URLDecoder.decode( cookie.getValue(), "UTF-8" ); switch(cookieName) { case "username" : username = cookieValue; break; case "rememberId" : rememberId = cookieValue; break; } } } request.setAttribute("username", username); request.setAttribute("rememberId", rememberId); page = "/page/login.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(page); dispatcher.forward(request, response); } }
Java
볡사

login.jsp

β€’
μ£Όμš” μ½”λ“œ
<div class="mb-3"> <input class="form-control" type="text" name="username" id="username" placeholder="아이디" value="${ username }"> </div> <div class="mb-3"> <input class="form-control" type="password" name="password" id="password" placeholder="λΉ„λ°€λ²ˆν˜Έ"> </div> <div class="row"> <div class="mb-3 col-6"> <c:if test="${ rememberId == null || rememberId == '' }"> <input type="checkbox" class="form-check-input" name="rememberId" id="remember-id"> </c:if> <c:if test="${ rememberId != null && rememberId == 'on' }"> <input type="checkbox" class="form-check-input" name="rememberId" id="remember-id" checked> </c:if> <label class="form-check-label" for="remember-id">아이디 μ €μž₯</label> </div> <div class="mb-3 col-6"> <input type="checkbox" class="form-check-input" name="rememberMe" id="remember-me"> <label class="form-check-label" for="remember-me">μžλ™ 둜그인</label> </div> </div>
Java
볡사
β€’
전체 μ½”λ“œ
<%@ include file="/layout/jstl.jsp" %> <%@ include file="/layout/common.jsp" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>projectπŸ’» - ALOHA CLASS🌴</title> <jsp:include page="/layout/meta.jsp" /> <jsp:include page="/layout/link.jsp" /> </head> <body> <jsp:include page="/layout/header.jsp" /> <%-- [Contents] ######################################################### --%> <main> <div class="container"> <div class="px-4 pt-5 my-5 text-center"> <div class="col-lg-6 mx-auto"> <form action="${ root }/users/login" method="post"> <div class="row justify-content-center"> <div class="card p-5"> <h2 class="display-4 fw-bold">Login</h2> <div class="card-body"> <div class="mb-3"> <input class="form-control" type="text" name="username" id="username" placeholder="아이디" value="${ username }"> </div> <div class="mb-3"> <input class="form-control" type="password" name="password" id="password" placeholder="λΉ„λ°€λ²ˆν˜Έ"> </div> <div class="row"> <div class="mb-3 col-6"> <c:if test="${ rememberId == null || rememberId == '' }"> <input type="checkbox" class="form-check-input" name="rememberId" id="remember-id"> </c:if> <c:if test="${ rememberId != null && rememberId == 'on' }"> <input type="checkbox" class="form-check-input" name="rememberId" id="remember-id" checked> </c:if> <label class="form-check-label" for="remember-id">아이디 μ €μž₯</label> </div> <div class="mb-3 col-6"> <input type="checkbox" class="form-check-input" name="rememberMe" id="remember-me"> <label class="form-check-label" for="remember-me">μžλ™ 둜그인</label> </div> </div> <div class="d-grid gap-2"> <button type="submit" class="btn btn-primary">둜그인</button> <a href="${ root }/join.jsp" class="btn btn-success">νšŒμ›κ°€μž…</a> </div> </div> </div> </div> </form> </div> </div> </div> </main> <%-- [Contents] ######################################################### --%> <jsp:include page="/layout/footer.jsp" /> <jsp:include page="/layout/script.jsp" /> </body> </html>
HTML
볡사