반응형
로그인 후 마이페이지 만들기
로그인을 한 후 나만 볼 수 있는 마이페이지를 만들었다. 마이페이지에서 비밀번호도 변경 가능하다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- jstl을 쓰기 위한 코어태그 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> ----- 내 정보 보기 -----</title>
<link href="./css/index.css" rel="stylesheet">
<link href="./css/menu.css" rel="stylesheet">
<script type="text/javascript" src="./js/menu.js"></script>
<style type="text/css">
#newpw_button {
width: 100px;
padding: 7px;
border: none;
border-radius: 5px;
color: white;
font-weight: bold;
background-color: #8E44EC;
cursor: pointer;
outline: none;
margin: 10px;
}
#newPW {
width: 200px; /* 변경 가능한 비밀번호 길이에 맞게 조절 */
padding: 5px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<%
// 로그인 검사하기
if(session.getAttribute("mid") == null) {
response.sendRedirect("./login");
}
%>
<div class="container">
<header>
<%@ include file="menu.jsp"%>
</header>
<div class="mainStyle">
<div>
<article>
<h1>내 정보 볼까요</h1>
${myInfo.mname } / ${myInfo.mid } /
</article>
<div>
<form action="./myInfo" method="post" onsubmit="return check()">
<input type="password" name="newPW" id="newPW" placeholder="변경할 암호를 입력하세요.">
<button type="submit" id="newpw_button" name="newpw_button">수정하기</button>
</form>
</div>
</div>
</div>
</div>
<footer>
<c:import url="footer.jsp"/>
</footer>
<script type="text/javascript">
function check(){
var pw = document.querySelector("#newPW");
if (pw.value.length < 4) {
alert("패스워드는 4글자 이상이어야 합니다.");
return false;
}
}
</script>
<a href="./board">- 게시판으로 넘어가기 -</a>
</body>
</html>
MyInfo.java
비밀번호를 변경할 수 있도록 서블릿 파일에서 작업을 해줘야 한다.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
// 비밀번호 바꾸기
// 세션 만들기
HttpSession session = request.getSession();
// 비번 수정 가능하도록
MemberDTO dto = new MemberDTO();
dto.setMpw(request.getParameter("newPW"));
// 세션값 보내기
dto.setMid((String)session.getAttribute("mid"));
MemberDAO dao = new MemberDAO();
int result = dao.newpw(dto);
System.out.println(result);
response.sendRedirect("./board");
}
}
MemberDAO
MemberDAO에서도 추가적으로 작업을 해야한다.
public int newpw(MemberDTO dto) {
int result = 0;
Connection con = db.getConnection();
PreparedStatement pstmt = null;
String sql = "UPDATE member SET mpw=? WHERE mid=?";
try {
pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.getMpw());
pstmt.setString(2, dto.getMid());
result = pstmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(null, pstmt, con);
}
return result;
}
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 41일차 TIL] jQuery jsp 회원가입, id 중복확인 (0) | 2024.01.18 |
---|---|
[국비 40일차 TIL] 게시판 페이징, 회원가입 (0) | 2024.01.17 |
[국비 38일차 TIL] 로그인 페이지 세션, 로그아웃 (1) | 2024.01.15 |
[국비 37일차 TIL] 게시판 로그인 페이지 만들기 (0) | 2024.01.12 |
[국비 36일차 TIL] 게시판 만들기 (Delete, Util. update) (0) | 2024.01.11 |
댓글