회원가입 구현

세피·2021년 5월 16일
0

<문제점>

  • ModelAttribute로 값을 받아오면 되는 것을 RequestParam을 또 써서 값을 가져왔다. 왜 그랬니?
  • mapper 에 withdraw 안넣어줘도 됨

<추가 하고 싶은 기능>

  • 우리는 모든 회원 가입 정보를 '필수'라고 해놨다. 필수가 아니라 공백으로 놔둬도 되는 부분이 있을땐?

*분명 배운 부분이다. 프로젝트 포스팅 끝나면 다른 프로젝트로 진행 시키자

===================================================

페이지 이동 시키는건 컨트롤러에서 get으로 다 이동 시킨다.

예를들면

@RequestMapping(value = "/member/memberRegist", method = RequestMethod.GET)
	public String MemberRegist( Model model) {
		return "member/memberSignUp";
	}
  1. JSP에서 form으로 넘어온 값을 받아올 차례 (controller)

    값을 ModelAttribute로 받아오고 비밀번호를 RequestParam로 따로 빼왔는데 이제와서 생각해보니

    dto.getPw(); 로 빼와도 되는거였다. 아니 왜 짬뽕으로 섞었지?? 대체 무슨 생각으로 코딩을 한거지??

@RequestMapping(value = "/member/join", method = RequestMethod.POST)
	public String join(Model model, @ModelAttribute MemberDTO dto, @RequestParam String pw) {
        //msg를 jsp에 전달하기 위해 model을 이용했다.
 		String plain ="";
		String hash ="";
		BCryptPasswordEncoder en = new BCryptPasswordEncoder();
		logger.info("회원 정보 입력 값 = "+dto.getAddress());
		logger.info("회원가입 페이지");
		
		plain = pw;
		logger.info("평문"+plain);

		hash = en.encode(plain); //암호화
		logger.info("암호문"+hash);
		dto.setPw(hash);
		logger.info("회원 정보 입력 값 = "+dto.getPw());
		

		String msg = "회원 가입에 실패했습니다. 잠시 후 다시 시도해주세요";
		String page = "redirect:/member/MemberLogin";
		if(service.join(dto) > 0) {
			msg = "회원 가입 성공";
			page = "member/MemberLogin";
			dao.insertDefaultProfile(dto.getMember_id());
		}
		
		model.addAttribute("regist_msg", msg);
		
		return page;
}

회원가입할때 비밀번호를 암호화 시켜서 넣어줬다.

암호화 메서드

BCryptPasswordEncoder en = new BCryptPasswordEncoder();

en.encode(pw); 를 넣어주면 암호화 된다.

  1. service

    public int join(MemberDTO dto) {
    	return dao.join(dto);
    };
  2. Dao (인터페이스)

    int join(MemberDTO dto);
  3. mapper

    여기 withdraw 부분도 기본 0으로 설정되어 있어서 안 넣어줘도 되었다.

    	<!--회원가입 -->
    	<insert id="join" parameterType="member">
    		INSERT INTO member(member_id,pw,name,birth_date,address,email,phone,withdraw, location)
    		VALUES(#{member_id},#{pw},#{name},#{birth_date},#{address},#{email},#{phone},'0', #{address})	
    	</insert>
profile
세피의 블로그입니다

0개의 댓글