본문 바로가기
수업(국비지원)/JSP

[JSP] MVC MODEL2 방식 - 회원가입(join, loginForm)

by byeolsub 2023. 4. 19.

 📌 join

<%@page import="model.MemberDao"%>
<%@page import="model.Member"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/join.jsp 
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<%-- ${mem.id} : mem 객체의 get프로퍼티의 이름 
    => ${객체이름.프로퍼티명}
--%>
   <tr><td>아이디</td><td>${mem.id}</td></tr>
   <tr><td>이름</td><td>${mem.name}</td></tr>
   <tr><td>성별</td><td>${(mem.gender ==1)?"남":"여"}</td></tr>
   <tr><td>전화번호</td><td>${mem.tel}</td></tr>
   <tr><td>이메일</td><td>${mem.email}</td></tr>
</table>
<input type="button" value="로그인하기" onclick="location.href='loginForm'">
</body>
</html>

 

📌 MemberController.java - 내용 추가

	1. 파라미터값들을 Member 객체에 저장
	2. Member 객체의 내용을 db에 저장
	3. 저장 성공 : 화면에 내용 출력
	   저장 실패 : joinForm.jsp 페이지 이동

 

@RequestMapping("join")

	public String join(HttpServletRequest request, HttpServletResponse response) {
	    try {
			request.setCharacterEncoding("UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} //Unhandled exception type UnsupportedEncodingException 예외처리 해줘야 한다
	    //1. 파라미터값들을 Member 객체에 저장
        Member mem =  new Member();
        mem.setId(request.getParameter("id"));
        mem.setPass(request.getParameter("pass"));
        mem.setName(request.getParameter("name"));
        mem.setGender(Integer.parseInt(request.getParameter("gender")));
        mem.setTel(request.getParameter("tel"));
        mem.setEmail(request.getParameter("email"));
        mem.setPicture(request.getParameter("picture"));
        //2. Member 객체의 내용을 db에 저장
        MemberDao dao = new MemberDao();
        if(dao.insert(mem)) { //3. 저장 성공
        	 return "/view/member/join.jsp"; 
        } else { // 저장 실패
        	return "/view/member/joinForm.jsp";
        }
	}

 


📌 loginForm

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/member/loginForm.jsp --%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인</title>
<script type="text/javascript">
     function inputcheck(f) {
    	 if(f.id.value == '') {
    		 alert("아이디를 입력하세요.")
    		 f.id.focus()
    		 return false
    	 }
    	 if(f.pass.value == '') {
    		 alert("비밀번호를 입력하세요.")
    		 f.pass.focus()
    		 return false
    	 }
     }
     function win_open(page) {
    	 let op = "width=500, height=350, left=50, top=150"
    	 open(page,"",op) //idForm.jsp
       //open("idForm.jsp","윈도우 이름",옵션)
     }
</script>
</head>
<body>
<form action="login" method="post" name="f" onsubmit="return inputcheck(this)">
<table><caption>로그인</caption>
<tr><th>아이디</th><td><input type="text" name="id"></td></tr>
<tr><th>비밀번호</th><td><input type="password" name="pass"></td></tr>
<tr><td colspan="2">
   <input type="submit" value="로그인">
   <input type="button" value="회원가입" onclick="location.href='joinForm'">
   <input type="button" value="아이디 찾기" onclick="win_open('idForm')">
   <input type="button" value="비밀번호 찾기" onclick="win_open('pwForm')">
</td></tr></table></form>   
</body>
</html>

 

📌 MemberController.java - 내용 추가

1. 아이디, 비밀번호 파라미터를 변수 저장 
2. db 정보를 읽기. id에 해당하는 db정보를 읽어서 Member 객체에 저장 
   Member MemberDao.selectOne(id);
3. 아이디와 비밀번호 검증. 
    - 아이디가 없는 경우      
      아이디가 없습니다. 메세지확인. loginForm.jsp 페이지 이동
    - 아이디 존재. 비밀번호가 틀린경우   
      비밀번호오류 메세지확인. loginForm.jsp 페이지 이동
    - 아이디 존재. 비밀번호가 맞는경우 => 정상적인 로그인.
      session 객체에 로그인 정보 저장.
      main.jsp로 페이지 이동.

 

@RequestMapping("login")

public String login(HttpServletRequest request, HttpServletResponse response) {
	   //1. 아이디, 비밀번호 파라미터를 변수 저장 
	   String id = request.getParameter("id");
	   String pass = request.getParameter("pass");
	   //2. db 정보를 읽기. id에 해당하는 db정보를 읽어서 Member 객체에 저장 
	   Member mem = new MemberDao().selectOne(id);
	   String msg = null;
	   String url = null;
	   if(mem == null) { // 3. 아이디와 비밀번호 검증.
		   msg = "아이디를 확인하세요.";
		   url = "loginForm";
	   } else if(!pass.equals(mem.getPass())) {
		   msg = "비밀번호가 틀립니다.";
		   url = "loginForm";
	   } else {
		   request.getSession().setAttribute("login",id);
		   msg = "반갑습니다." + mem.getName() + "님";
		   url = "main";
	   }
	   request.setAttribute("msg",msg);
	   request.setAttribute("url",url);
	     return "/view/alert.jsp"; //forward 됨
}

 

 

📌 alert.jsp - model2방식

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/alert.jsp --%>    
<script>
   alert("${msg}")
   location.href="${url}"
</script>