Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3.  
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.Cookie;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. @WebServlet("/login")
  12. public class loginServlet extends HttpServlet {
  13.     @Override
  14.     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  15.         req.setCharacterEncoding("utf-8");
  16.         resp.setCharacterEncoding("utf-8");
  17.        
  18.         PrintWriter out = resp.getWriter();
  19.        
  20.         String id = req.getParameter("id");
  21.         String pw = req.getParameter("pw");
  22.         Cookie[] cookies = req.getCookies();
  23.        
  24.         //로그인 성공 여부 확인
  25.         boolean check = true;
  26.         // 쿠키에 저장된 값이 하나도 없으면 length를 이용한 배열의 길이를 구해올때 에러가 발생하게 되는데
  27.         // 이 에러때문에 프로그램이 비정상적으로 중지되는 것을 방지하기 위해 try catch문 사용
  28.         try {
  29.         for (int i = 0; i < cookies.length; i++) {
  30.             //만약 쿠키의 이름으로 저장된값(id값)이 입력받은 id값과 동일하다면
  31.             if(cookies[i].getName().equals(id)) {
  32.                 //또한 그 id값에 해당하는 정확한 비밀번호를 입력했다면
  33.                 if(cookies[i].getValue().equals(pw)) {
  34.                     out.println("로그인 성공!");
  35.                     out.println(cookies[i].getName() + "님 환영합니다.");
  36.                     check = false;
  37.                     break;
  38.                 }
  39.             }
  40.         }
  41.         } catch (Exception e) {
  42.             out.println("쿠키에 저장된 아이디,비밀번호가 없습니다!");
  43.             check = false;
  44.         }
  45.        
  46.         //아이디 또는 비밀번호가 틀릴경우
  47.         if(check) {
  48.             out.println("아이디 혹은 비밀번호가 잘못 되었습니다.");
  49.         }
  50.     }
  51. }