wrap인 div 태그 바로 다음 줄에 <form> 태그를 작성한다. form 태그의 id 속성명은 login_form이고 method 속성명은 post이다.<%@ 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>
<link rel="stylesheet" href="/resources/css/member/login.css">
</head>
<body>
<div class="wrapper">
	
	<div class="wrap">
		<form id="login_form" method="post"><!-- form 추가 -->
			<div class="logo_wrap">
				<span>Book Mall</span>
			</div>
			<div class="login_wrap"> 
				<div class="id_wrap">
					<div class="id_input_box">
						<input class="id_input">
					</div>
				</div>
			<div class="pw_wrap">
				<div class="pw_input_box">
					<input class="pw_iput">
				</div>
			</div>
			<div class="login_button_wrap">
				<input type="button" class="login_button" value="로그인">
			</div>			
		  	</div>
		</form><!-- form 추가 -->
		
	</div>
</div>
</body>
</html>
    // 변경 전
    <input class="id_input">
    <input class="pw_iput">
 
    // 변경 후
    <input class="id_input" name="memberId">
    <input class="pw_iput" name="memberPw">
-jquery를 사용할 것이기 때문에 먼저 jquery url 코드를 login.jsp의 head에 추가한다.
 
<script
  src="https://code.jquery.com/jquery-3.4.1.js"
  integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
  crossorigin="anonymous"></script>
 
<script>
 
    /* 로그인 버튼 클릭 메서드 */
    $(".login_button").click(function(){
        
        alert("로그인 버튼 작동");
        
    });
 
</script>

    /* 로그인 버튼 클릭 메서드 */
    $(".login_button").click(function(){
        
        //alert("로그인 버튼 작동");
        $("#login_form").attr("action", "/member/login");
        $("login_form").submit();
        
    });
MemberController.java에 로그인 기능을 수행하는 메서드를 작성한다. 파라미터로는 MemberVO, ‘HttpServletRequest’, ‘RedirectAttributes’를 사용한다.MemberVO는 데이터를 전달받기 위해, HttpServletRequest는 로그인 성공 시 session에 회원정보를 저장하기 위해, ‘RedirectAttributes’는 로그인 실패 시 리다이렉트 된 로그인 페이지에 실패를 의미하는 데이터를 전송하기 위해 사용한다.	/* 로그인 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
		
		System.out.println("login 메서드 진입");
		System.out.println("전달된 데이터 : " + member);
		
		return null;
	}
HttpSession session = request.getSession();
	/* 로그인 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
		
		//System.out.println("login 메서드 진입");
		//System.out.println("전달된 데이터 : " + member);
		
		HttpSession session = request.getSession();
		
		
		return null;
	}
MemberVO lvo = memberService.memberLogin(member);
	/* 로그인 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	public String loginPOST(HttpServletRequest request, MemberVO member, RedirectAttributes rttr) throws Exception {
		
		//System.out.println("login 메서드 진입");
		//System.out.println("전달된 데이터 : " + member);
		
		HttpSession session = request.getSession();
		MemberVO lvo = memberService.memberLogin(member);
		
		if (lvo == null) { // 아이디, 비밀번호가 일치하지 않는 경우
			int result = 0;
			rttr.addFlashAttribute("result", result);
			return "redirect:/member/login";
		}
		
		session.setAttribute("member", lvo); // 아이디, 비밀번호가 일치할 경우 (로그인 성공)
		
		return "redirect:/main";
	}



