Cohe
JSP mini project : mypage 실습4 - 회원 정보 수정 본문
728x90
반응형
update.jsp
<%@page import="com.myweb.user.model.UserVO"%>
<%@page import="com.myweb.user.model.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
String id = (String)session.getAttribute("user_id");
if(id ==null){
response.sendRedirect("user_login.jsp");
}
UserDAO dao = UserDAO.getInstance();
UserVO vo = dao.getInfo(id);
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome to MyWorld</title>
<!-- Bootstrap Core CSS -->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="../css/business-casual.css" rel="stylesheet">
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Josefin+Slab:100,300,400,600,700,100italic,300italic,400italic,600italic,700italic" rel="stylesheet" type="text/css">
</head>
<body>
<%@include file="../include/header.jsp" %>
<section>
<div class="container">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<form name = "regform" class="form-horizontal" action="user_update_ok.jsp" method="post">
<h2 class="text-center">회원 정보 수정 페이지</h2>
<hr>
<div class="form-group">
<label class="col-sm-3 control-label">ID</label>
<div class="col-sm-9">
<input value = "<%=vo.getId() %>" type="text" class="form-control" name="id" readonly="readonly">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">이름</label>
<div class="col-sm-9">
<input value = "<%=vo.getName() %>" type="text" class="form-control" name="name">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Email</label>
<div class="col-sm-9">
<input type="email" class="form-control" name="email" value = "<%=vo.getEmail()%>">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">Address</label>
<div class="col-sm-9">
<input type="text" class="form-control" name="address" value="<%=vo.getAddress()%>">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="button" class="btn btn-primary" onclick="check()">회원 정보 수정</button>
<button type="button" class="btn btn-info" onclick="location.href='user_mypage.jsp'">마이페이지</button>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<%@include file="../include/footer.jsp" %>
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript">
function check(){
//form은 유일하게 document.태그 이름으로 접근이 가능하다.
if (document.regform.name.value == ''){
alert("이름은 필수 사항입니다.");
return;
}else if (document.regform.email.value == ''){
alert("email은 필수 사항입니다.");
return;
}
else if(confirm("회원 정보 수정을 진행 하시겠습니까?")){
//확인창을 띄워서 확인 취소 중 선택하는 메서드
document.regform.submit();
}
}
</script>
</body>
</html>
update_ok.jsp
<%@page import="com.myweb.user.model.UserVO"%>
<%@page import="com.myweb.user.model.UserDAO"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
request.setCharacterEncoding("utf-8");
String id = request.getParameter("id");
if(id ==null){
response.sendRedirect("user_login.jsp");
}
String name = request.getParameter("name");
String email = request.getParameter("email");
String address = request.getParameter("address");
//dao 생성
UserDAO dao = UserDAO.getInstance();
UserVO vo = new UserVO(id, null, name, email, address,null);
int result = dao.update(vo);
if(result==1){
session.setAttribute("user_name",name);
%>
<script>
alert("회원정보가 수정되었습니다");
location.href="user_mypage.jsp";
</script>
<%}
else{%>
<script>
alert("회원정보 수정에 실패했습니다);
location.href="user_mypage.jsp";
</script>
<%}
%>
userDAO- login, update
public int login(String id, String pw) {
int result = 0;
String sql = "select * from users where id=? and pw=?";
try {
conn = ds.getConnection();
System.out.println(conn);
System.out.println("데이터베이스 접속 성공.");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pw);
rs = pstmt.executeQuery(); // 쿼리 실행 결과를 ResultSet에 저장
if (rs.next()) {
result = 1; // 존재하는 경우 1, 존재하지 않는 경우 0
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
JdbcUtil.close(conn, pstmt, rs);
}
return result;
}
//회원 정보 수집
public UserVO getInfo(String id) {
UserVO vo = null;
String sql = "select * from users where id = ?";
try {
int result = 0;
conn = ds.getConnection();
System.out.println(conn);
System.out.println("데이터베이스 접속 성공.");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id); // id 값이 문자열이므로 setString을 사용하여 데이터 타입을 지정
rs = pstmt.executeQuery(); // 쿼리 실행 결과를 ResultSet에 저장
if (rs.next()) {
result = 1; // 존재하는 경우 1, 존재하지 않는 경우 0
String name = rs.getString("name");
String pw = rs.getString("pw");
String email = rs.getString("email");
String address = rs.getString("address");
Timestamp regdate = rs.getTimestamp("regdate");
vo = new UserVO(id, pw, name, email, address, regdate);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
JdbcUtil.close(conn, pstmt, rs);
}
return vo;
}
public int update(UserVO vo) {
int result = 0;
String sql = "update users set name=?, email=?, address=? where id=?";
try {
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,vo.getName());
pstmt.setString(2,vo.getEmail());
pstmt.setString(3,vo.getAddress());
pstmt.setString(4,vo.getId());
result = pstmt.executeUpdate();
} catch (SQLException sqle) {
System.out.println("SQL 연동 오류");
System.out.println(sqle.getMessage());
}finally {
try {
if(conn!=null) conn.close();
if(pstmt!=null) pstmt.close();
if(rs!=null) rs.close();
} catch (Exception e) {
// TODO: handle exception
}
}
return result;
}
728x90
반응형
'개발 언어 > JSP' 카테고리의 다른 글
JSP mini project : mypage 실습6 - 회원 탈퇴 (0) | 2024.04.15 |
---|---|
JSP mini project : mypage 실습5 - 회원 정보 수정(2) (0) | 2024.04.15 |
JSP mini project : mypage 실습3 - 로그인 (0) | 2024.04.15 |
JSP mini project : mypage 실습 (0) | 2024.04.15 |
6-1 JSP-JDBC 연동2 (0) | 2024.04.12 |