728x90

 오늘은 로그인까지만 시도했다.


1차 일지 - [ 설정 ], [ 회원가입 ]


23/12/29) 수정!

 

1. 로그인

로그인 창

 1-1) body

더보기

login.jsp

<div>
	<form id="loginfrm" method="post" action="/member/login">
		<div class="frm_item">아이디
			<input type="text" name="mId" class="input" placeholder="아이디를 입력하세요" maxlength="20" autocapitalize="off">
		</div>
		<div class="frm_item">비밀번호
			<input type="password" name="mPw" class="input" placeholder="비밀번호를 입력하세요" maxlength="20" autocapitalize="off">
		</div>
		<br>
		<button type="button" onclick="location.href='/'">메인화면</button>
		<button type="button" onclick="location.href='/member/joinfrm'">회원가입하러가기</button>
		<button type="submit" class="btn btn-3 btn-3e" id="loginSubBtn" style="text-align: center;">login!</button>
	</form>
</div>
  • div 아이디나 클래스명 지어주는 것을 잊어먹었다..
  • 버튼을 통해 메인화면으로, 혹은 회원가입하러 갈 수 있도록 해놨다.

 

 1-2) js

더보기

login.jsp

<script type="text/javascript">
	let m = "${msgFl}"
	if(m!=""){
		alert(m);
	}
</script>
  • 로그인에 실패하면 문구를 띄울 수 있도록 js를 추가했다.

 

 1-3) controller

더보기

MemberController

@GetMapping("/member/loginfrm")
public String login() {
	log.info("==> GetMapping - loginfrm 요청 <==");
	return "login";
}
@PostMapping("/member/login")
public String logrin(MemberDto mDto, RedirectAttributes ra, HttpSession session, Model model) {
	boolean result = mSer.login(mDto);
	if(result) {
		ra.addFlashAttribute("msgFl","로그인 성공!");
		session.setAttribute("loginId",mDto.getMId());
		return "redirect:/";
	}
	ra.addFlashAttribute("msgFl","로그인 실패");
	return "redirect:/member/loginfrm";
}
  • MemberService를 통해 login 메소드를 실행하고 성공여부를 boolean으로 받아와, if문을 돌린다.

 

 1-4) service

더보기

MemberService

public boolean login(MemberDto mDto) {
	log.info("===> mSer login 요청 <===");
	BCryptPasswordEncoder pwEn = new BCryptPasswordEncoder();
	String mPw = mDao.login(mDto.getMId());
	if(pwEn.matches(mDto.getMPw(), mPw)) {
		return true;
	}
	return false;
}
  • 인코딩했던 비밀번호를 디코딩할 수 없지만 비교할 수는 있다고 해서 다시 BCryptPasswordEncoder을 통해 입력받은 비밀번호와 아이디를 통해 검색해온 인코딩된 비밀번호가 같은지 비교하여 true, 아니면 false를 리턴해준다.

 

 1-5) dao

더보기
String login(String mId);
  • MemberDao

 

<select id="login" parameterType="String" resultType="String">
	select mPw from member where mId=#{mId}
</select>
  • MemberDao의 xml 파일 (mappers)

 

 

2. 결과

더보기
  • 로그인 실패 시

동기통신을 하며 얼럿창을 띄운다. (근데 이거 비동기로 확인하고 보내는 것도 나쁘지 않을듯..하다..아무것도 없는 화면에 저 얼럿창만 덜렁 나와있으니 뭔가..별로다ㅠㅠ)

 


 

틀리거나 헷갈렸던 점 메모

  • session에 아이디를 저장하는 방법을 실패한 것 같다..나중에 다시 해보기!
  • controller에서 Model을 안 받아와서 실패했었다. 넣어주니 잘 저장해옴..

 


 

728x90

'프로그래밍 > +a' 카테고리의 다른 글

slPro 3차 일지  (0) 2024.01.01
미니 팀 프로젝트 사전 준비 (파이썬)  (2) 2024.01.01
slPro 1차 일지  (1) 2023.12.27
Java_주말 복습: 문제 다시 풀어보기  (0) 2023.10.01
Java_주말 복습: 문제 다시 풀어보기  (0) 2023.10.01