○ login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Hi Planner</title>
<script type="text/javascript" src=""></script>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<style type="text/css">
.wrapper {
display: grid;
place-items: center;
min-height: 90vh;
}
.content {
font-family: system-ui, serif;
font-size: 1rem;
padding: 1rem;
border-radius: 2rem;
}
</style>
<script type="text/javascript">
function loginCheck() {
var id = document.getElementById("id");
var pwd = document.getElementById("pwd");
if (id.value == "") {
alert("아이디를 입력해주세요.");
return false;
}else if(pwd.value == ""){
alert("비밀번호를 입력해주세요.");
return false;
}
return true;
}
</script>
</head>
<body>
<div class="wrapper" >
<div class="content" style="border: 1px solid gray">
<form method="post" action="/member/loginProc.do">
<h1>Login</h1>
<label for="id">ID</label><br>
<input type="text" id="id" name="id" placeholder="아이디 입력"><br>
<label for="pwd">Password</label><br>
<input type="password" id="pwd" name="pwd" placeholder="비밀번호 입력"> <input type="submit" class="w3-button w3-blue" value="로그인" onclick="loginCheck()"><br><br>
<input type="button" value="회원 가입" class="w3-button w3-black" onclick="location.href='/member/join.do'">
</form>
</div>
</div>
</body>
</html>
ID와 비밀번호를 입력 후 로그인 버튼을 누르면 /member/loginProc.do 요청을 하게 된다.
○ MemberController.java
@Controller
@RequestMapping("/member")
@RequiredArgsConstructor
public class MemberController {
private final MemberService memberService;
@RequestMapping("/loginProc.do")
public ModelAndView loginDo(ModelAndView mv, Member member, HttpSession session, RedirectView rv){
int count = memberService.getLogin(member);
if(count == 1){
session.setAttribute("id", member.getId());
System.out.println("member.getId() = " + member.getId());
mv.setViewName("main");
}else{
rv.setUrl("/");
mv.setView(rv);
}
return mv;
}
}
○ MemberServiceImpl.java
@Service
@RequiredArgsConstructor
public class MemberServiceImpl implements MemberService{
private final MemberMapper memberMapper;
@Override
public int getLogin(Member member) {
return memberMapper.getLogin(member);
}
}
○ MemberMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.todo.Hiplanner.mapper.MemberMapper">
<!-- 로그인 -->
<select id="getLogin" resultType="int" parameterType="com.todo.Hiplanner.vo.Member">
select
count(*)
from
member
where
id =#{id}
and pwd = #{pwd}
</select>
</mapper>
입력받은 ID와 비밀번호를 파라미터로 현재 DB에 몇 개 있는지 조회하여 int 타입으로 반환해준다. 그 반환 값이 1일 경우 해당 ID와 비밀번호가 실제로 DB에 있다는 것이므로 id 값을 session에 저장하고 앞으로 이 id 값을 가지고 회원 정보나 회원이 쓴 메모를 불러올 때 사용할 것이다.
로그인에 성공했다면 사용자가 메인 화면에서 서비스를 이용할 수 있도록 메인 화면을 반환해주자.
'Hi Planner' 카테고리의 다른 글
[Hi Planner] @Builder 어노테이션 ( + 트러블 슈팅) (0) | 2022.06.01 |
---|---|
[Hi Planner] 메시지 가져오기(All elements are null 해결) (0) | 2022.05.29 |
[Hi Planner] 다른 일정 조회하기. (0) | 2022.05.26 |
[intelliJ + gradle + spring boot] 오라클 연동과 마이바티스 의존성 추가 (0) | 2022.05.13 |
[intelliJ + gradle + spring boot] JSP 프로젝트 시작하기 (HiPlanner) (0) | 2022.05.13 |