자바썸
자바랑 썸타는중
자바썸

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자바썸

자바랑 썸타는중

[Hi Planner] login 화면
Hi Planner

[Hi Planner] login 화면

2022. 5. 21. 14:57

○ 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="비밀번호 입력">&nbsp<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
    'Hi Planner' 카테고리의 다른 글
    • [Hi Planner] 메시지 가져오기(All elements are null 해결)
    • [Hi Planner] 다른 일정 조회하기.
    • [intelliJ + gradle + spring boot] 오라클 연동과 마이바티스 의존성 추가
    • [intelliJ + gradle + spring boot] JSP 프로젝트 시작하기 (HiPlanner)
    자바썸
    자바썸

    티스토리툴바