YSHUSH

로그인 본문

Coding/SpringFramework

로그인

코딩; 2022. 1. 24. 08:39

 

1. Member.xml 업데이트

<select id="login" parameterType="mul.camp.a.dto.MemberDto" 
	resultType="mul.camp.a.dto.MemberDto">
	SELECT ID, NAME, EMAIL, AUTH
	FROM MEMBER
	WHERE ID=#{id} AND PWD=#{pwd}
</select>

 

2. MemberDao, MemberDaoImpl 업데이트

 

  MemberDao

public interface MemberDao {
	MemberDto login(MemberDto mem);
}

  MemberDaoImpl

@Repository
public class MemberDaoImpl implements MemberDao {
	
    @Autowired
    SqlSession session;
	
    String ns = "Member.";
    
    @Override
    public MemberDto login(MemberDto mem) {		
	    return session.selectOne(ns + "login", mem);
        
    }
}

 

3. MemberService, MemberServiceImpl 업데이트

 

  MemberService

public interface MemberService {

	MemberDto login(MemberDto mem);
        
}

  MemberServiceImpl

@Service
public class MemberServiceImpl implements MemberService{

	@Autowired
	MemberDao dao;
    
    @Override
	public MemberDto login(MemberDto mem) {		
		return dao.login(mem);
        
	}
}

 

 

4. MemberController 업데이트

@Controller
public class MemberController {

	private static Logger logger = LoggerFactory.getLogger(MemberController.class);
	
	@Autowired
	MemberService service;
    
	@RequestMapping(value = "login.do", method = RequestMethod.GET)
	public String login() {
		logger.info("MemberController login() " + new Date());		
		return "login";
	//	return "loginCSS";
	}
    
	@RequestMapping(value = "loginAf.do", method = RequestMethod.POST)
	public String loginAf(MemberDto dto, HttpServletRequest req) { // request == HttpServletRequest
		logger.info("MemberController loginAf() " + new Date());		
		
		MemberDto mem = service.login(dto);
		if(mem != null) {	// 정상적인 로그인
			
			// login 정보를 저장 -> session 
			req.getSession().setAttribute("login", mem);			
			
			return "redirect:/bbslist.do";
		}
		else {		// 회원정보에 없음
			
			return "redirect:/login.do";
		}		
	}
}

 

 

5. login.jsp 만들고 업데이트

  views 폴더 내에 login.jsp를 만들고 로그인 폼을 작성한다.

<%@ 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>

<style type="text/css">
.center{
	margin: auto;
	width: 60%;
	border: 3px solid #0000ff;
	padding: 10px;	 
}
</style>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="http://lab.alexcican.com/set_cookies/cookie.js" type="text/javascript" ></script>

</head>
<body>

<h2>login page</h2>

<div class="center">

<form id="frm" action="loginAf.do" method="post">

<table border="1">
<tr>
	<th>아이디</th>
	<td>
		<input type="text" id="id" name="id" size="20"><br>
		<input type="checkbox" id="chk_save_id">아이디 저장
	</td>
</tr>
<tr>
	<th>패스워드</th>
	<td>
		<input type="password" name="pwd" id="pwd" size="20">
	</td>
</tr>
<tr>
	<td colspan="2">
		<!-- <input type="submit" value="로그인"> -->
		<button type="button" onclick="login()">로그인</button>
		<a href="regi.do">회원가입</a>
	</td>
</tr>

</table>
</form>
</div>
<script type="text/javascript">
function login() {
	
	if($("#id").val().trim() == ""){
		
	}else if($("#pwd").val().trim() == ""){
		
	}else{ 
		alert('submit');
		$("#frm").submit();
	}
}
</script>
</body>
</html>

 

6. 아이디 쿠키에 저장 여부

  login.jsp 스크립트 태그 내부에 작성(jquery사용)

/*
	web 저장공간
		session : web server의 저장공간.	java		사용자정보 -> object
		cookie : web client의 저장공간.	JavaScript	id, pw, 방문회수 -> String
*/

let user_id = $.cookie("user_id");	// cookie에서 데이터를 산출	= aaa, bbb
					// model.addattribute("list", list)
<script>
f(user_id != null){	// cookie에 저장된 값이 있음
	$("#id").val( user_id );
//	$("#chk_save_id").attr("checked", "checked");
	$("#chk_save_id").prop("checked", true);
}

$("#chk_save_id").click(function () {
//	alert("click");

	if( $("#chk_save_id").is(":checked") ){	// 첵크되었을 경우
	//	alert("첵크");		
		if($("#id").val().trim() == ""){	//  java java
		//	alert("빈문자");
			alert("id를 입력해 주십시오");
			$("#chk_save_id").prop("checked", false);
			$("#id").val("");
		}else{
			// 쿠키에 저장
			$.cookie("user_id", $("#id").val().trim(), { expires:7, path:'./' });
		}
	}
	else{
	//	alert("첵크무효!");
		$.removeCookie("user_id", { path:'./' });
	}
});
</script>

 

'Coding > SpringFramework' 카테고리의 다른 글

게시판2. 게시판 목록 & 글쓰기  (0) 2022.01.25
게시판1. 기본 빌드  (0) 2022.01.25
회원가입시 아이디 확인, 빈칸 허용하지 않기  (0) 2022.01.24
회원가입  (0) 2022.01.24
스프링 빌드순서  (0) 2022.01.23