이로

JSP 로그인 만들기 + 쿠키를 이용하여 id저장하 본문

컴퓨터/과제

JSP 로그인 만들기 + 쿠키를 이용하여 id저장하

利路 2019. 6. 21. 20:55
반응형

id , pwd 를 입력할 수 있도록 하고, id 기억하기를 누르면 재 방문시 기존에 입력했던 id를 저장하도록 한다.

 

login.jsp / LoginAction.java / index.jsp 로 이루어져있다.

 

로그인 성공시 login.jsp-> index.jsp

로그인 실패시 login.jsp-> login.jsp에서 재 입력하도록 하게 한다.

 

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 쿠키값으로 id정보 받아오기 -->
	<%String cookie = "";
		Cookie[] cookies = request.getCookies(); //쿠키생성
		if(cookies !=null&& cookies.length > 0)
		for (int i = 0; i < cookies.length; i++){
			if (cookies[i].getName().equals("userId")) { // 내가 원하는 쿠키명 찾아서 값 저장
				cookie = cookies[i].getValue();}}%>
	<form action="/LoginAction" method=post>
		id:<input name="id" type=text value="<%=cookie%>"
			placeholder="your id."><br> pwd:<input name="pwd"
			type=password value="" placeholder="your password."><br>
		<input name="checkbox" type=checkbox> id 기억하기 <br> <input
			type=submit value="Login">
	</form>
</body>
</html>

 

 

LoginAction.java

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;

@WebServlet("/LoginAction") // URL 뒷쪽에 붙는 이름이다. 이 쿼리를 입력하지 않으면 주소와 프로그램과 연결해주지 못한다.
public class LoginAction extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// id, pwd, checkbox 정보 받아오기
		String id = request.getParameter("id"); // id 넘어온다.
		String pwd = request.getParameter("pwd"); // pwd 넘어온다.
		String checkbox = request.getParameter("checkbox");// 체크박스의 체크여부 넘어온다.

		response.setCharacterEncoding("UTF-8"); // 한글도 입력 가능하게 하기
		PrintWriter out = response.getWriter();
		Cookie cookie = new Cookie("userId", id);// 일단 쿠키 생성

		System.out.println(checkbox);
		if (checkbox != null) { // 체크박스 체크여부에 따라 쿠키 저장 확인
			// 체크박스 체크 되었을 때
			// 쿠키 저장
			response.addCookie(cookie);
		} else {
			// 체크박스 체크 해제되었을 때
			// 쿠키 유효시간 0으로 해서 브라우저에서 삭제하게 한다.
			cookie.setMaxAge(0);
			response.addCookie(cookie);
		}
		
		// id , pwd 에 null 체크 반드시 하기
		if ((id != null) && (pwd != null)) {
			if (id.equals("asdf") && pwd.equals("1234")) { // 로그인 성공시
				// id 와 pwd가 일치하는 경우 index.jsp로 이동 경로설정 주의!! context 값 / 으로해놓았다.
				response.sendRedirect("/index.jsp");
			} else { // 로그인 실패시
				// 로그인 실패시 바로 login 화면으로 돌아가게하기
				response.sendRedirect("/login.jsp");
			}
		}

	}
}

 

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
index 입니다.
<a href="/login.jsp">Login</a>
</body>
</html>
반응형
Comments