프로필보기 기능 구현 (내 프로젝트에 적용)
Back-End/Spring 2019. 9. 23. 13:57로그인을 한 후에 "나의 프로필 확인" 버튼을 누르면 회원가입할때 작성한 나의 정보들이 표시되는 페이지로 이동해서
나의 프로필 정보가 출력된다.
로그인 페이지에 "나의 프로필 확인" 버튼을 추가함.
login.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | <%@ 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> </head> <%@ include file="header.jsp"%> <body> <br> <!-- 세션에 id값이 저장되어 있는 경우 로그아웃 버튼과 로그인한 아이디가 출력되도록 코드를 작성함 --> <c:if test = "${sessionScope.user_id != null}"> (일반)${sessionScope.user_id}님이 로그인 하셨습니다. <br><br> <form action = "logout.do" method = "post"> <button type = "submit" name = "submit">로그아웃</button></form><br><br> <form action = "member_profile.do" method = "post"> <button type = "submit" name = "submit">나의 프로필 확인</button></form><br><br> </c:if> <c:if test = "${sessionScope.navername != null}"> (네이버)${sessionScope.navername}님이 로그인 하셨습니다.<br><br> <form action = "naver_logout.do" method = "post"> <button type = "submit" name = "submit">로그아웃</button></form><br><br> <form action = "authentication.do" method = "post"> <button type = "submit" name = "submit">회원 인증하기 (인증을 해야 각종 기능들 사용 가능)</button></form><br><br> <form action = "member_profile.do" method = "post"> <button type = "submit" name = "submit">나의 프로필 확인</button></form><br><br> </c:if> <c:if test = "${sessionScope.kakaonickname != null}"> (카카오톡)${sessionScope.kakaonickname}님이 로그인 하셨습니다.<br><br> <form action = "kakao_logout.do" method = "post"> <button type = "submit" name = "submit">로그아웃</button></form><br><br> <form action = "authentication.do" method = "post"> <button type = "submit" name = "submit">회원 인증하기 (인증을 해야 각종 기능들 사용 가능)</button></form><br><br> <form action = "member_profile.do" method = "post"> <button type = "submit" name = "submit">나의 프로필 확인</button></form><br><br> </c:if> <c:if test = "${sessionScope.facebookname != null}"> (페이스북)${sessionScope.facebookname}님이 로그인 하셨습니다.<br><br> <form action = "facebook_logout.do" method = "post"> <button type = "submit" name = "submit">로그아웃</button></form><br><br> <form action = "authentication.do" method = "post"> <button type = "submit" name = "submit">회원 인증하기 (인증을 해야 각종 기능들 사용 가능)</button></form><br><br> <form action = "member_profile.do" method = "post"> <button type = "submit" name = "submit">나의 프로필 확인</button></form><br><br> </c:if> <c:if test = "${sessionScope.admin_id != null}"> (관리자)${sessionScope.admin_id}님이 로그인 하셨습니다.<br><br> <form action = "logout.do" method = "post"> <button type = "submit" name = "submit">로그아웃</button></form><br><br> <form action = "member_profile.do" method = "post"> <button type = "submit" name = "submit">나의 프로필 확인</button></form><br><br> </c:if> <c:if test = "${sessionScope.user_id == null and sessionScope.navername == null and sessionScope.kakaonickname == null and sessionScope.facebookname == null and sessionScope.admin_id == null}"> <% //url로 보낸 아이디를 세션에 저장하기 위해 변수에 저장함 String navername = request.getParameter("navername"); String kakaonickname = request.getParameter("kakaonickname"); String facebookname = request.getParameter("facebookname"); String normalname = request.getParameter("user_id"); String admin_id = request.getParameter("admin_id"); //url로 보낸 이메일를 세션에 저장하기 위해 변수에 저장함 String navere_mail = request.getParameter("navername"); String kakaoe_mail = request.getParameter("kakaonickname"); String facebooke_mail = request.getParameter("facebookname"); %> <% //아이디를 세션에 저장 session.setAttribute("navername", navername); session.setAttribute("kakaonickname", kakaonickname); session.setAttribute("facebookname", facebookname); session.setAttribute("normalname", normalname); session.setAttribute("admin_id", admin_id); //이메일을 세션에 저장 session.setAttribute("navere_mail", navere_mail); session.setAttribute("kakaoe_mail", kakaoe_mail); session.setAttribute("facebooke_mail", facebooke_mail); if (navername == null && kakaonickname == null && facebookname == null && normalname == null && admin_id == null) { %> (guest)님 방문을 환영합니다. <br> <br> 로그인을 하셔야 다른 기능을 정상적으로 이용하실 수 있습니다. <br> <%@ include file="../member/login_form.jsp"%><br> <% } %> </c:if> </body> </html> | cs |
버튼을 누르면 컨트롤러로 맵핑된다.
MemberController.java 중 일부
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | //회원아이디로 해당 회원의 정보를 검색하는 메소드 @RequestMapping(value = "member_profile.do") public ModelAndView member_profile(HttpSession session, Date join_date, MemberDTO dto) throws Exception{ //세션에 저장되어 있는 회원의 아이디를 변수에 저장함 String user_id =(String)session.getAttribute("user_id"); //데이터베이스에서 검색한 값들을 DTO타입에 LIST에 저장한다. java.util.List<MemberDTO> list = memberservice.member_profile(user_id); Map<String,Object> map = new HashMap<>(); //map에 리스트를 저장해서 출력할 view로 이동시킨다. ModelAndView mv = new ModelAndView(); //if문에서 list null처리를 할때에는 isEmpty()를 사용해서 null체크후 처리를 해주어야 한다. //list안에 값이 들어있을때 실행되는 구문 if(!list.isEmpty()) { //join_date의 형식을 바꾸어야 하기 때문에 join_date만 따로 빼서 형식을 변경한 후에 따로 넘긴다. for (int i = 0; i<list.size(); i++) { join_date = list.get(i).getJoin_date(); } String re_join_date = new SimpleDateFormat("yyyy-MM-dd").format(join_date); map.put("re_join_date", re_join_date); map.put("list", list); mv.addObject("map",map); mv.setViewName("member/member_profile"); } return mv; } | cs |
MemberServiceImpl.java 중 일부
1 2 3 4 5 6 | //자신의 프로필을 볼 수 있게 하는 메소드 @Override public List<MemberDTO> member_profile(String user_id) throws Exception{ return memberdao.member_profile(user_id); } | cs |
MemberDAOImpl.java 중 일부
1 2 3 4 5 6 7 | //회원의 프로필 정보를 리턴한다. @Override public List<MemberDTO> member_profile(String user_id) throws Exception { return sqlSession.selectList("member.member_profile", user_id); } | cs |
memberMapper.xml 중 일부
1 2 3 4 5 6 7 | <!-- 회원 프로필 확인 mapper --> <select id = "member_profile" resultType="com.example.hansub_project.model.member.dto.MemberDTO"> select user_id, e_mail, join_date from member where user_id=#{user_id} </select> | cs |
데이터베이스에서 검색한 회원의 프로필 정보가 넘어가서 출력되는 페이지
member_profile.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <%@page import="java.text.SimpleDateFormat"%> <%@page import="com.thoughtworks.qdox.parser.ParseException"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <%@ include file="../include/header.jsp"%> <%@ include file="../include/menu.jsp"%><br> <body> <center> <br> <br> <br> <c:if test = "${map.list != null}"> <center> <span style="color: green; font-weight: bold;">나의 프로필</span> <br> <br> <table border="1" width="300" height="250"> <div style="text-align:center;"> <tr> <td> <center> <div> <c:forEach var = "member" items = "${map.list}"><!-- 컨트롤러에서 넘어온 map의 값 --> 아이디 : ${member.user_id} <br><br> 이메일 : ${member.e_mail} <br><br> 가입날짜 : ${map.re_join_date} <br><br> </div> </center> </td> </tr> </div> </c:forEach> </table> </center> </c:if> <br><br><%@ include file="../include/Botton.jsp"%> </body> </html> | cs |
'Back-End > Spring' 카테고리의 다른 글
베스트 게시물 관련 게시판 구현 (내 프로젝트에 적용) (0) | 2019.09.26 |
---|---|
소셜 로그인 (네이버, 카카오톡, 페이스북) 후 프로필 확인 (내 프로젝트 적용)) (1) | 2019.09.24 |
java에서 List형태로 저장한 값 출력 및 날짜형식 변환 (0) | 2019.09.20 |
java에서 List null 체크 (0) | 2019.09.20 |
회원정보보기 기능 구현 (내 프로젝트에 적용) (0) | 2019.09.19 |