반응형
📌로그인 컨트롤러
LoginServlet.java
package controller;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import service.LoginService;
import vo.Member;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
Cookie[] cookieArray = request.getCookies();
String id = "";
String passwd = "";
if(cookieArray != null){
for (int i = 0; i < cookieArray.length; i++) {
if(cookieArray[i].getName().equals("id")){
id = cookieArray[i].getValue();
}
else if(cookieArray[i].getName().equals("passwd")){
passwd = cookieArray[i].getValue();
}
}
LoginService loginService = new LoginService();
Member loginMember = loginService.getLoginMember(id,passwd);
if(loginMember != null){
RequestDispatcher dispatcher = request.getRequestDispatcher("loginSuccess.jsp");
request.setAttribute("loginMember", loginMember);
dispatcher.forward(request, response);
}
else{
RequestDispatcher dispatcher = request.getRequestDispatcher("loginForm.html");
dispatcher.forward(request, response);
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String id = request.getParameter("id");
String passwd = request.getParameter("passwd");
String useCookie = request.getParameter("useCookie");
LoginService loginService = new LoginService();
Member loginMember = loginService.getLoginMember(id,passwd);
if(loginMember != null){
if(useCookie != null){ //체크박스를 체크하면 "on"문자열이 전송되어 온다.아니면 null 값 전송
//아이디와 비밀번호를 쿠키 정보로 저장하는 부분
Cookie idCookie = new Cookie("id", id);
//쿠키를 생성하면 기본 생존기간이 -1이다.
//브라우저가 실행중일 때는 쿠키가 생존하지만 브라우저를 닫으면
//쿠키가 사라짐
idCookie.setMaxAge(60 * 60 * 24);//단위는 초임
Cookie passwdCookie = new Cookie("passwd", passwd);
//쿠키를 생성하면 기본 생존기간이 -1이다.
//브라우저가 실행중일 때는 쿠키가 생존하지만 브라우저를 닫으면
//쿠키가 사라짐
passwdCookie.setMaxAge(60 * 60 * 24);//단위는 초임
//응답에 쿠키 추가
response.addCookie(idCookie);
response.addCookie(passwdCookie);
}
RequestDispatcher dispatcher = request.getRequestDispatcher("loginSuccess.jsp");
request.setAttribute("loginMember", loginMember);
dispatcher.forward(request, response);
}
else{
RequestDispatcher dispatcher = request.getRequestDispatcher("loginFail.jsp");
dispatcher.forward(request, response);
}
}
}
doGet 메소드
이 메소드는 사용자가 "loginForm.html" 페이지에서 로그인 요청을 한 것이 아닌 index.jsp 페이지를 실행한 후 <jsp:forward/> 액션 태그에 의해서 요청을 했기 때문에 요청이 GET방식으로 넘어와 doGet 메소드가 실행되는 것이다.
📌로그인 비즈니스 로직 처리 파일
LoginService.java
package service;
import static db.JdbcUtil.*;
import java.sql.Connection;
import dao.LoginDAO;
import vo.Member;
public class LoginService {
public Member getLoginMember(String id, String passwd) {
// TODO Auto-generated method stub
LoginDAO loginDAO = LoginDAO.getInstance();
Connection con = getConnection();
loginDAO.setConnection(con);
Member loginMember = loginDAO.selectLoginMember(id,passwd);
close(con);
return loginMember;
}
}
반응형
'JSP & Servlet > 실습' 카테고리의 다른 글
[JSP & Servlet] 쇼핑몰 (오늘 본 상품 & 장바구니) - controller (0) | 2022.07.01 |
---|---|
[JSP & Servlet] 쇼핑몰 (오늘 본 상품 & 장바구니) - 테이블 생성 및 vo(Value Object) + 기본 세팅 (0) | 2022.07.01 |
[JSP & Servlet] 로그인 (feat. 세션 & 쿠키) - View / DAO (0) | 2022.06.30 |
[JSP & Servlet] 로그인 (feat. 세션 & 쿠키) - 테이블 생성 및 vo(Value Object) (0) | 2022.06.30 |
[JSP & Servlet] 게시판 만들기 (feat. MySQL) - View (0) | 2022.06.29 |