화면
1. 로그인 화면 - login.jsp
아이디 및 비밀번호 입력 폼, 아이디 기억하기 체크박스, 로그인 버튼 존재
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>로그인</h1>
<form action="/ch2/login" method="POST">
<label for="id">id</label>
<input id="id" type="text" name="id" value=${id}>
<br>
<label for="password">password</label>
<input id="password" type="text" name="password">
<br>
<input type="checkbox" name="isCheck" checked=${checked}>
아이디 기억하기
<input type="submit" value="login">
</form>
</body>
</html>
2. 유저 정보 화면 - user_info.jsp
유저가 입력한 아이디, 비밀번호 노출
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>로그인 유저 정보</h1>
id : ${id}<br>
password : ****${password}<br>
<button onclick="location.href='http://localhost:8080/ch2/login'">로그인하러 가기</button >
</body>
</html>
Controller
package com.fastcampus.ch2;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
//1. 프로그램 등록
@Controller
public class LoginController {
// GET 요청과 연결
// session id를 받는다.
@RequestMapping(value="/login", method=RequestMethod.GET)
public String loginForm(HttpSession session) {
// session에서 id 받기
String id = (String)session.getAttribute("id");
return "login";
}
// login
@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(String id, String password, String isCheck, Model model, HttpSession session) {
if(id.isEmpty() || password.isEmpty()) {
return "login";
} else {
// 로그인 후 model에 추가
model.addAttribute("password", password);
model.addAttribute("id", id);
System.out.println(model.toString());
if(isCheck != null) {
// 아이디 기억 체크했다면
model.addAttribute("checked", true);
session.setAttribute("id", id);
} else {
// 아이디 기억 체크 안 했다면
model.addAttribute("checked", false);
session.setAttribute("id", "");
}
System.out.println("id : " + id);
System.out.println("password : " + password);
return "redirect:/user_info";
}
}
// user info
@RequestMapping(value="/user_info", method=RequestMethod.GET)
public String userInfo() {
return "user_info";
}
}
session으로 id를 저장했기 때문에 로그인 화면으로 되돌아가면 입력했던 id가 저장되어 있음을 확인할 수 있다.
'Spring' 카테고리의 다른 글
Spring :: IntelliJ Spring MVC 게시판 프로젝트 - 01 기본설정 (0) | 2024.07.30 |
---|---|
스프링 :: 롬복 (0) | 2024.06.25 |