본문 바로가기

java,jsp,spring/JSP

JSP 예제 - 사용자 관리(3단계)

1. 회원정보 수정

<%@page import="magic.member.MemberBean"%>
<%@page import="magic.member.MemberDBBean"%>
<%@ 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>
<script type="text/javascript" src="script.js?v=100" charset="UTF-8"></script>
<!-- 자바스크립트 파일 뒤에 ?v=100은 자바스크립트가 바로 적용이 안될 때 변수를 입력하면 웹페이지에 바로 적용이 되기 때문에 붙임 -->
</head>
<body>
	<% 
		String id = session.getAttribute("id").toString();
		MemberDBBean manager = MemberDBBean.getInstance();
		MemberBean member = manager.getMember(id);
		String name = member.getMem_name();
		String email = member.getMem_email(); 
		String addr = member.getMem_addr();
		// 회원정보 수정 시 보통 비밀번호만 비워져있기 때문에 비밀번호를 제외한 내용을 가져옴
	%>
	<table border="1" align="center">
		<form method="post" action="memberUpdateOk.jsp" name="update_frm">
			<tr height="50" align="center">
				<td colspan="2">
					<h1>회원 정보 수정</h1>
					'*'표시 항목은 필수 입력 항목입니다.
				</td>
			</tr>
			<tr height="30">
				<td width="80">User ID</td>
				<td><%= id %></td>
			</tr>
			<tr height="30">
				<td width="80">암   호</td>
				<td><input type="password" id="pwd" name="mem_pwd" size="20">*</td>
			</tr>
			<tr height="30">
				<td width="80">암호 확인</td>
				<td><input type="password" id="pwCheck" name="pw_check" size="20">*</td>
			</tr>
			<tr height="30">
				<td width="80">이   름</td>
				<td><%= name %></td>
			</tr>
			<tr height="30">
				<td width="80">E-mail</td>
				<td><input type="text" id="mail" name="mem_email" size="30" value="<%= email %>">*</td>
			</tr>
			<tr height="30">
				<td width="80">주   소</td>
				<td><input type="text" id="addr" name="mem_addr" size="40" value="<%= addr %>"></td>
			</tr>
			<tr align="center">
				<td colspan="2">
					<input type="button" onclick="update_check_ok()" value="수정" />
					&nbsp;&nbsp;&nbsp;&nbsp;
					<input type="reset" value="다시입력" />
					&nbsp;&nbsp;&nbsp;&nbsp;
					<input type="button" value="수정안함" onclick="javascript:window.location='login.jsp'"/>
				</td>
			</tr>
		</form>
	</table>
</body>
</html>

2. 자바스크립트 추가 - 함수 추가

function update_check_ok(){
	var pw = document.getElementById("pwd").value;
	if(!pw){
		alert("패스워드는 반드시 입력해야 합니다.");
		update_frm.mem_pwd.focus();
		return;
	}
	var pwCheck = document.getElementById("pwCheck").value;
	if(pw!=pwCheck){
		alert("패스워드가 일치하지 않습니다.");
		update_frm.mem_pwd.focus();
		return;
	}
	var mail = document.getElementById("mail").value;
	if(!mail){
		alert("Email을 써주세요.");
		update_frm.mem_email.focus();
		return;
	}
	document.update_frm.submit();
}

3. 자바 빈(MemberDBBean) - 메소드 추가

public int updateMember(MemberBean member) throws Exception{
		String updateQuery = "UPDATE MEMBERT SET MEM_PWD=?, MEM_NAME=?, MEM_EMAIL=?, MEM_ADDRESS=? WHERE MEM_UID=?";
		int re = -1; // 수정 실패
		Connection conn = null;
		PreparedStatement pstmt = null;
		try {
			conn = getConnection();;
			pstmt = conn.prepareStatement(updateQuery);
			pstmt.setString(1, member.getMem_pwd());
			pstmt.setString(2, member.getMem_name());
			pstmt.setString(3, member.getMem_email());
			pstmt.setString(4, member.getMem_addr());
			pstmt.setString(5, member.getMem_uid());
			pstmt.executeUpdate();
			re = 1; // 수정 성공
			System.out.print("변경 성공");
		} catch(SQLException ex){
			System.out.print("변경 실패");
			ex.printStackTrace();
		} finally {
			try{
				if(pstmt != null) {
					pstmt.close();
				}
				if(conn != null) {
					conn.close();
				}
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		return re;
	}

4. 정보 수정 처리

<%@page import="magic.member.MemberDBBean"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %> 
// 한글일 경우 input에서 제한한 글자보다 많아져서 오류가 발생함 > 인코딩 필요
<jsp:useBean class="magic.member.MemberBean" id="mb"></jsp:useBean>
<jsp:setProperty property="*" name="mb" />
<%
	String id = session.getAttribute("id").toString();
	mb.setMem_uid(id);
	MemberDBBean manager = MemberDBBean.getInstance();
	int re = manager.updateMember(mb);
	if(re==1){
%>
	<script>
		alert("회원정보가 수정되었습니다.");
		document.location.href= "main.jsp";
	</script>
<%
	} else {
%>
	<script>
		alert("정보 수정에 실패했습니다.");
		history.go(-1);
	</script>
<%
	}
%>

 

'java,jsp,spring > JSP' 카테고리의 다른 글

JSP 게시판 (1) 글쓰기  (0) 2022.09.06
JSP 게시판  (0) 2022.09.06
JSP 예제 - 사용자 관리(2단계)  (0) 2022.09.03
JSP 예제 - 사용자 관리(1단계)  (0) 2022.09.03
DBCP 기법  (0) 2022.08.26