회원서비스
< 마이페이지 >
1. 마이페이지 요청 버튼
<a href="<%= contextPath %>/myPage.me">마이페이지</a>
2. MyPageController.java (Servlet)
- 매핑값 : /myPage.me
- 로그인 하지 않고 url로 접그하는 경우를 막기 위해 Session에 loginUser가 담겨있는지를 판단 후 보여줌
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(); // 세션의 주소값 불러옴
// 로그인 판별
if (session.getAttribute("loginUser") == null) {
session.setAttribute("alertMsg", "로그인한 사용자만 이용할 수 있습니다.");
response.sendRedirect(request.getContextPath());
} else {
request.getRequestDispatcher("views/member/myPage.jsp").forward(request, response);
}
}
3. myPage.jsp - 마이페이지 화면
- 스크립틀릿(<% %>)과 출력식(<%= %>) 사용
- Session에 담겨있는 loginUser에서 정보를 가져와 변수에 담음
<%
String userId = loginUser.getUserId();
String userName = loginUser.getUserName();
// 필수입력사항이 아닌 경우 => null이 나올 수 있음
String phone = (loginUser.getPhone() == null) ? "" : loginUser.getPhone();
String email = (loginUser.getEmail() == null) ? "" : loginUser.getEmail();
String address = (loginUser.getAddress() == null) ? "" : loginUser.getAddress();
String interest = (loginUser.getInterest() == null) ? "" : loginUser.getInterest();
%>
- 화면에 정보 보여주기
- 취미 체크박스에 checked속성 부여 위해 script태그 사용
<form action="<%= contextPath %>/update.me" method="post" id="mypage-form">
<table align="center">
<tr>
<td>* 아이디</td>
<td><input type="text" name="userId" value="<%= userId %>" readonly maxlength="12" required></td>
<td></td>
</tr>
<tr>
<td>* 이름</td>
<td><input type="text" name="userName" value="<%= userName %>" maxlength="5" required></td>
<td></td>
</tr>
<tr>
<td> 전화번호</td>
<td><input type="text" name="phone" value="<%= phone %>" placeholder="- 포함해서 입력해주세요"></td>
<td></td>
</tr>
<tr>
<td> 이메일</td>
<td><input type="email" name="email" value="<%= email %>"></td>
<td></td>
</tr>
<tr>
<td> 주소</td>
<td><input type="text" name="address" value="<%= address %>"></td>
<td></td>
</tr>
<tr>
<td> 취미</td>
<td colspan="2">
<input type="checkbox" id="climbing" value="등산" name="interest"><label for="climbing">등산</label>
<input type="checkbox" id="drinking" value="음주" name="interest"><label for="drinking">음주</label>
<input type="checkbox" id="challenge" value="챌린지" name="interest"><label for="challenge">챌린지</label>
<br>
<input type="checkbox" id="community" value="커뮤니티" name="interest"><label for="community">커뮤니티</label>
<input type="checkbox" id="vegetarian" value="채식" name="interest"><label for="vegetarian">채식</label>
<input type="checkbox" id="rest" value="휴식" name="interest"><label for="rest">휴식</label>
</td>
</tr>
</table>
<br><br>
<script>
// 사용자가 입력한 취미들
var interest = '<%= interest %>';
// 자바의 변수를 자바스크립트 변수로 받아줌
$('input[type=checkbox]').each(function() {
// 순차적으로 접근한 checkbox의 value속성값이 interest에 포함되어있을 경우 체크
// -> checked속성 부여 => attr(속성명, 속성값);
// 자바스크립트 indexOf => 찾고자하는 문자가 없을 경우 -1을 리턴 == 제이쿼리의 search메소드
// 제이쿼리에서 value속성값을 리턴해주는 메소드 : val()
// 제이쿼리에서 현재 접근한 요소 지정 : $(this)
if(interest.search($(this).val()) != -1) { // 포함되어있을 경우 => checked 부여!
$(this).attr('checked', true);
}
});
</script>
<div align="center">
<button type="submit" class="btn btn-sm btn-secondary">정보변경</button>
<button type="button" class="btn btn-sm btn-warning" data-toggle="modal" data-target="#updatePwdFor">비밀번호변경</button>
<button type="button" class="btn btn-sm btn-danger" data-toggle="modal" data-target="#deleteMember">회원탈퇴</button>
</div>
<br><br>
</form>
'개발 > Web' 카테고리의 다른 글
[Java] Sevlet/JSP - 회원서비스 - 회원 탈퇴 (0) | 2022.11.18 |
---|---|
[Java] Sevlet/JSP - 회원서비스 - 회원 정보 변경 (0) | 2022.11.18 |
[Java] Sevlet/JSP - 회원서비스 - 회원가입 (0) | 2022.11.18 |
[Java] Sevlet/JSP - 회원서비스 - 로그인 / 로그아웃 (0) | 2022.11.18 |
[Java] JSP - 스크립팅 요소(Scripting Element), 지시어/지시자(Directive) (0) | 2022.11.14 |