회원 정보 조회
Controller
// 회원정보 조회
@GetMapping(value = "/info")
public void memberInfoGET(HttpSession session) {
logger.debug("/members/info 호출 -> memberInfoGET()실행");
// ID정보를 받아오기(세션영역)
String id = (String) session.getAttribute("id");
logger.debug(" 아이디 정보 : "+id);
// 서비스 -> id를 사용해서 회원정보 모두 조회 동작
// DB에서 조회된 결과를 view페이지로 전달
// 페이지 이동(/members/info.jsp)
}
Service
// 회원정보 처리 동작
public MemberVO memberInfo(String userid);
ServiceImpl
@Override
public MemberVO memberInfo(String userid) {
logger.debug(" Service - 회원정보 조회 memberInfo(String userid) ");
// DAO 객체를 사용해서 해당동작을 처리하는 메서드 호출
return mdao.getMember(userid);
}
DAO
// 회원정보 처리 동작
public MemberVO getMember(String userid);
DAOImpl
@Override
public MemberVO getMember(String userid) {
logger.debug("DAO - 회원정보 조회 getMember(String userid");
return sqlSession.selectOne(NAMESPACE+".getMember", userid);
}
Mapper
<!-- 회원정보 조회 -->
<select id="getMember" resultType="com.itwillbs.domain.MemberVO">
select * from tbl_member
where userid=#{userid}
</select>
<!-- mybatis 설정파일 -->
<configuration>
<typeAliases>
<package name="com.itwillbs.domain"/>
</typeAliases>
</configuration>
다시 Controller
// 회원정보 조회
@GetMapping(value = "/info")
public void memberInfoGET(HttpSession session,Model model) {
logger.debug("/members/info 호출 -> memberInfoGET()실행");
// ID정보를 받아오기(세션영역)
String id = (String) session.getAttribute("id");
logger.debug(" 아이디 정보 : "+id);
// 서비스 -> id를 사용해서 회원정보 모두 조회 동작
MemberVO vo = mService.memberInfo(id);
logger.debug(" vo : "+vo);
// DB에서 조회된 결과를 view페이지로 전달 => Model 객체 생성
model.addAttribute("vo", vo);
// 이름이 없는 경우 전달되는 데이터 클래스타입의 첫 글자를 소문자로 바꿔서 이름으로 사용
model.addAttribute(mService.memberInfo(id));
// 페이지 이동(/members/info.jsp)
}
info.jsp
<body>
<h1>/members/info.jsp</h1>
${vo } <hr>
${memberVO } <hr>
<%-- ${memberVO.userid } --%>
<a herf="/members/main">메인페이지로</a>
</body>
회원정보 수정 처리 동작
Controller
// 회원정보 수정 GET - 기존의 회원정보를 가져와서 출력
@RequestMapping(value = "/update",method = RequestMethod.GET)
public void memberUpdateGET(HttpSession session, Model model) {
logger.debug("/members/update -> memberUpdateGET()");
// 아이디 정보 저장(세션영역)
String id = (String) session.getAttribute("id");
// 서비스 -> 아이디에 해당하는 회원정보 조회
// 연결된 뷰페이지(/members/update.jsp)에 정보 전달
model.addAttribute(mService.memberInfo(id));
}
<body>
<h1>http://localhost:8088/members/update 실행</h1>
<h1>/members/update.jsp</h1>
<fieldset>
<legend>스프링MVC 회원수정</legend>
<!-- action="/members/join" 주소 생략가능
action 속성정보가 없으면 자기자신의 주소를 호출
-->
<form method="post">
아이디 : <input type="text" name="userid" value="${memberVO.userid }" readonly> <br>
비밀번호 : <input type="password" name="userpw"> <br>
이름 : <input type="text" name="username" value="${memberVO.username }"> <br>
이메일 : <input type="text" name="useremail" value="${memberVO.useremail }"> <br>
<input type="submit" value="회원가입">
</form>
</fieldset>
</body>
아직 수정 안 됨
Controller
// 회원정보 수정 POST - 수정된 회원정보를 디비에서 변경
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String memberUpdatePOST(MemberVO vo) {
logger.debug(" /members/update -> memberUpdatePOST() ");
// 한글처리 인코딩(생략- 필터 사용)
// 전달정보 저장(폼태그- 파라메터)
logger.debug(" 수정할 정보 :"+vo);
// 서비스 - 회원정보 수정하는 동작
// 메인페이지로 이동
return "redirect:/members/main";
}
Service
// 회원정보 수정 동작
public void memberUpdate(MemberVO vo);
ServiceImpl
@Override
public void memberUpdate(MemberVO vo) {
logger.debug(" memberUpdate(MemberVO vo) ");
mdao.updateMember(vo);
}
DAO
// 회원정보 수정
public void updateMember(MemberVO vo);
DAOImpl
@Override
public void updateMember(MemberVO vo) {
logger.debug(" updateMember(MemberVO vo) ");
sqlSession.update(NAMESPACE + ".updateMember", vo);
}
Controller
// 회원정보 수정 POST - 수정된 회원정보를 디비에서 변경
@RequestMapping(value = "/update", method = RequestMethod.POST)
public String memberUpdatePOST(MemberVO vo) {
logger.debug(" /members/update -> memberUpdatePOST() ");
// 한글처리 인코딩(생략- 필터 사용)
// 전달정보 저장(폼태그- 파라메터)
logger.debug(" 수정할 정보 :"+vo);
// 서비스 - 회원정보 수정하는 동작
mService.memberUpdate(vo);
// 메인페이지로 이동
return "redirect:/members/main";
}
다시 수정페이지로 가서 수정하면
바뀐 걸 확인할 수 있다
회원정보 삭제 처리 동작
delete.jsp 생성
<body>
<h1>http://localhost:8088/members/delete 호출</h1>
<h1>/views/members/delete.jsp</h1>
<fieldset>
<legend> 회원탈퇴 </legend>
<form action="" method="post">
<!-- 아이디 : <input type="text" name="userid"><br> -->
<input type="hidden" name="userid" value="${id }">
비밀번호 : <input type="password" name="userpw"><br>
<input type="submit" value=" 회원탈퇴 ">
</form>
</fieldset>
</body>
Controller
// 회원정보 삭제 - GET
@RequestMapping(value = "/delete", method = RequestMethod.GET)
public void memberDeleteGET(MemberVO vo) {
logger.debug("/members/delete -> memberDeleteGET()");
logger.debug("/members/delete.jsp 페이지 이동");
}
// 회원정보 삭제 - POST
@RequestMapping(value = "/delete", method = RequestMethod.POST)
public String memberDeletePOST(MemberVO vo /*HttpSession session*/) {
logger.debug("/members/delete -> memberDeletePOST()");
// 전달정보 저장
logger.debug("삭제할 정보"+vo);
// vo.setUserid((String)session.getAttribute("id"));;
// 서비스- 회원정보 삭제 (삭제 성공/실패)
// 성공 -> 세션 정보 초기화, 메인페이지 이동
// 실패 -> 삭제 페이지(이전페이지)로 이동
logger.debug("/members/main.jsp 페이지 이동");
return "redirect:/members/main";
}
Mapper
<!-- 회원정보 삭제 -->
<delete id="deleteMember">
delete from tbl_member
where userid=#{userid} and userpw=#{userpw}
</delete>
DAO
// 회원정보 삭제
public int deleteMember(MemberVO vo);
DAOImpl
@Override
public int deleteMember(MemberVO vo) {
logger.debug(" deleteMember(MemberVO vo) ");
return sqlSession.delete(NAMESPACE + ".deleteMember", vo);
}
Service
// 회원정보 삭제 동작
public int memberDelete(MemberVO vo);
ServiceImpl
@Override
public int memberDelete(MemberVO vo) {
logger.debug(" memberDelete(MemberVO vo) ");
return mdao.deleteMember(vo);
}
Controller
// 회원정보 삭제 - POST
@RequestMapping(value = "/delete",method = RequestMethod.POST)
public String memberDeletePOST(MemberVO vo ,HttpSession session ) {
logger.debug(" /members/delete -> memberDeletePOST()");
// 전달정보 저장
logger.debug(" 삭제할 정보 "+vo);
//vo.setUserid((String)session.getAttribute("id"));
// 서비스- 회원정보 삭제 (삭제 성공/실패)
// 성공 -> 세션정보 초기화, 메인페이지 이동
// 실패 -> 삭제 페이지(이전페이지)로 이동
int result = mService.memberDelete(vo);
if(result == 1) { // 삭제 성공
session.invalidate();
logger.debug(" /members/main.jsp 페이지 이동");
return "redirect:/members/main";
}else { // 삭제 실패
logger.debug(" /members/delete.jsp 페이지 이동");
return "redirect:/members/delete";
}
}
춘식 삭제 완료
'⛏️ > Spring' 카테고리의 다른 글
[Spring] 게시판 셋팅하기 (0) | 2023.12.14 |
---|---|
[Spring] 회원 정보 목록 ver. (1) | 2023.12.12 |
[Spring] main ver. / logout ver. (0) | 2023.12.12 |
[Spring] member login ver. (0) | 2023.12.08 |
[Spring] member join ver. (0) | 2023.12.07 |