create table userinfo(userid varchar2(100) primary key
,password varchar2(100),name varchar2(200),email varchar2(300),status number(1));
package xyz.itwill.dto;
public class UserinfoDTO {
private String userid;
private String password;
private String name;
private String email;
private int status;
public UserinfoDTO() {
// TODO Auto-generated constructor stub
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
package xyz.itwill.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import xyz.itwill.dto.UserinfoDTO;
public class UserinfoModelOneDAO extends JdbcDAO {
private static UserinfoModelOneDAO _dao;
private UserinfoModelOneDAO() {
// TODO Auto-generated constructor stub
}
static {
_dao=new UserinfoModelOneDAO();
}
public static UserinfoModelOneDAO getDAO() {
return _dao;
}
public int insertUserinfo(UserinfoDTO userinfo) {
Connection con=null;
PreparedStatement pstmt=null;
int rows=0;
try {
con=getConnection();
String sql="insert into userinfo values(?,?,?,?,?)";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, userinfo.getUserid());
pstmt.setString(2, userinfo.getPassword());
pstmt.setString(3, userinfo.getName());
pstmt.setString(4, userinfo.getEmail());
pstmt.setInt(5, userinfo.getStatus());
rows=pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("[에러]insertUserinfo() 메소드의 SQL 오류 = "+e.getMessage());
} finally {
close(con, pstmt);
}
return rows;
}
public int updateUserinfo(UserinfoDTO userinfo) {
Connection con=null;
PreparedStatement pstmt=null;
int rows=0;
try {
con=getConnection();
String sql="update userinfo set password=?,name=?,email=?,status=? where userid=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, userinfo.getPassword());
pstmt.setString(2, userinfo.getName());
pstmt.setString(3, userinfo.getEmail());
pstmt.setInt(4, userinfo.getStatus());
pstmt.setString(5, userinfo.getUserid());
rows=pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("[에러]updateUserinfo() 메소드의 SQL 오류 = "+e.getMessage());
} finally {
close(con, pstmt);
}
return rows;
}
public int deleteUserinfo(String userid) {
Connection con=null;
PreparedStatement pstmt=null;
int rows=0;
try {
con=getConnection();
String sql="delete from userinfo where userid=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, userid);
rows=pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println("[에러]deleteUserinfo() 메소드의 SQL 오류 = "+e.getMessage());
} finally {
close(con, pstmt);
}
return rows;
}
public UserinfoDTO selectUserinfo(String userid) {
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
UserinfoDTO userinfo=null;
try {
con=getConnection();
String sql="select * from userinfo where userid=?";
pstmt=con.prepareStatement(sql);
pstmt.setString(1, userid);
rs=pstmt.executeQuery();
if(rs.next()) {
userinfo=new UserinfoDTO();
userinfo.setUserid(rs.getString("userid"));
userinfo.setPassword(rs.getString("password"));
userinfo.setName(rs.getString("name"));
userinfo.setEmail(rs.getString("email"));
userinfo.setStatus(rs.getInt("status"));
}
} catch (SQLException e) {
System.out.println("[에러]selectUserinfo() 메소드의 SQL 오류 = "+e.getMessage());
} finally {
close(con, pstmt, rs);
}
return userinfo;
}
public List<UserinfoDTO> selectUserinfoList() {
Connection con=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
List<UserinfoDTO> userinfoList=new ArrayList<>();
try {
con=getConnection();
String sql="select * from userinfo order by userid";
pstmt=con.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()) {
UserinfoDTO userinfo=new UserinfoDTO();
userinfo.setUserid(rs.getString("userid"));
userinfo.setPassword(rs.getString("password"));
userinfo.setName(rs.getString("name"));
userinfo.setEmail(rs.getString("email"));
userinfo.setStatus(rs.getInt("status"));
userinfoList.add(userinfo);
}
} catch (SQLException e) {
System.out.println("[에러]selectUserinfoList() 메소드의 SQL 오류 = "+e.getMessage());
} finally {
close(con, pstmt, rs);
}
return userinfoList;
}
}
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
UserinfoDTO loginUserinfo=(UserinfoDTO)session.getAttribute("loginUserinfo");
//비로그인 사용자이거나 로그인 사용자가 관리자가 아닌 경우 - 비정상적인 요청
if(loginUserinfo==null || loginUserinfo.getStatus()!=9) {
response.sendRedirect("user_error.jsp");
return;
}
String message=(String)session.getAttribute("message");
if(message==null) {
message="";
} else {
session.removeAttribute("message");
}
UserinfoDTO userinfo=(UserinfoDTO)session.getAttribute("userinfo");
if(userinfo==null) {
userinfo=new UserinfoDTO();
userinfo.setUserid("");
userinfo.setPassword("");
userinfo.setName("");
userinfo.setEmail("");
userinfo.setStatus(1);
} else {
session.removeAttribute("userinfo");
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MVC</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel=stylesheet href="css/user.css" type="text/css">
<script language="JavaScript">
function userCreate() {
if ( f.userid.value == "" ) {
alert("아이디를 입력하십시요.");
f.userid.focus();
return;
}
if ( f.password.value == "" ) {
alert("비밀번호를 입력하십시요.");
f.password.focus();
return;
}
if ( f.name.value == "" ) {
alert("이름을 입력하십시요.");
f.name.focus();
return;
}
f.action = "user_write_action.jsp";
f.submit();
}
</script>
</head>
<body bgcolor=#FFFFFF text=#000000 leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
<br>
<table width=780 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="20"></td>
<td style="color: red;"><%=message %></td>
</tr>
<tr>
<td width="20"></td>
<td>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="f4f4f4" height="22"> <b>회원관리 - 회원등록</b></td>
</tr>
</table>
<br>
<form name="f" method="post">
<table border="0" cellpadding="0" cellspacing="1" width="590" bgcolor="BBBBBB">
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">아이디</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="text" style="width:150" name="userid" value="<%=userinfo.getUserid()%>">
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">비밀번호</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="password" style="width:150" name="password" value="<%=userinfo.getPassword()%>">
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">이름</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="text" style="width:240" name="name" value="<%=userinfo.getName()%>">
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">이메일</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="text" style="width:240" name="email" value="<%=userinfo.getEmail()%>">
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">회원등급</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<select name="status">
<option value="1" <% if(userinfo.getStatus()==1) { %> selected <% } %>>일반회원</option>
<option value="9" <% if(userinfo.getStatus()==9) { %> selected <% } %>>관리자</option>
</select>
</td>
</tr>
</table>
</form>
<br>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<input type="button" value="회원등록" onClick="userCreate();">
<input type="button" value="로그인" onClick="location.href='user_login.jsp';">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
if(request.getMethod().equals("GET")) {
response.sendRedirect("user_error.jsp");
return;
}
request.setCharacterEncoding("utf-8");
String userid=request.getParameter("userid");
String password=request.getParameter("password");
String name=request.getParameter("name");
String email=request.getParameter("email");
int status=Integer.parseInt(request.getParameter("status"));
UserinfoDTO userinfo=new UserinfoDTO();
userinfo.setUserid(userid);
userinfo.setPassword(password);
userinfo.setName(name);
userinfo.setEmail(email);
userinfo.setStatus(status);
int rows=UserinfoModelOneDAO.getDAO().insertUserinfo(userinfo);
if(rows>0) {//회원등록이 성공한 경우
response.sendRedirect("user_login.jsp");
} else {//회원등록이 실패한 경우 - 전달받은 아이디에 대한 PK 제약조건 위반으로 인해 발생
session.setAttribute("message", "이미 사용중인 아이디를 입력 하였습니다.");
session.setAttribute("userinfo", userinfo);
response.sendRedirect("user_write.jsp");
}
%>
비로그인 사용자인 경우 사용자로부터 로그인정보를 입력받기 위한 JSP 문서
로그인 사용자인 경우 환영메세지를 전달하는 JSP 문서
비로그인 사용자인 경우
로그인 사용자인 경우
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
UserinfoDTO loginUserinfo=(UserinfoDTO)session.getAttribute("loginUserinfo");
String message=(String)session.getAttribute("message");
if(message==null) {
message="";
} else {
session.removeAttribute("message");
}
String userid=(String)session.getAttribute("userid");
if(userid==null) {
userid="";
} else {
session.removeAttribute("userid");
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MVC</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel=stylesheet href="css/user.css" type="text/css">
<script language="JavaScript">
function userLogin() {
if ( f.userid.value == "" ) {
alert("아이디를 입력하십시요.");
f.userid.focus();
return;
}
if ( f.password.value == "" ) {
alert("비밀번호를 입력하십시요.");
f.password.focus();
return;
}
f.action = "user_login_action.jsp";
f.submit();
}
</script>
</head>
<body bgcolor=#FFFFFF text=#000000 leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
<br>
<table width=780 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="20"></td>
<td style="color: red;"><%=message %></td>
</tr>
<tr>
<td width="20"></td>
<td>
<!--contents-->
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="f4f4f4" height="22"> <b>회원관리 - 로그인</b></td>
</tr>
</table>
<br>
<% if(loginUserinfo==null) {//비로그인 사용자인 경우 %>
<!-- login Form -->
<form name="f" method="post">
<table border="0" cellpadding="0" cellspacing="1" width="590" bgcolor="BBBBBB">
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">사용자 아이디</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="text" style="width:150" name="userid" value="<%=userid%>">
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">비밀번호</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="password" style="width:150" name="password">
</td>
</tr>
</table>
</form>
<br>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<input type="button" value="로그인" onClick="userLogin();">
</td>
</tr>
</table>
<% } else {//로그인 사용자인 경우 %>
<table border="0" cellpadding="0" cellspacing="1" width="590" bgcolor="BBBBBB">
<tr>
<td align=center bgcolor="E6ECDE" height="22">
<%=loginUserinfo.getName() %>님, 환영합니다.
</td>
</td>
</tr>
</table>
<br>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<button type="button" onclick="location.href='user_list.jsp';">회원목록</button>
<button type="button" onclick="location.href='user_logout_action.jsp';">로그아웃</button>
<% if(loginUserinfo.getStatus()==9) { %>
<button type="button" onclick="location.href='user_write.jsp';">회원등록</button>
<% } %>
</td>
</tr>
</table>
<% } %>
</td>
</tr>
</table>
</body>
</html>
로그인정보를 입력받아 USERINFO 테이블에 저장된 회원정보와 비교하여 인증 처리 후 로그인정보 입력페이지(user_login.jsp)로 이동을 위한 URL 주소를 전달하는 JSP 문서
인증 성공한 경우 세션에 권한 관련 정보를 속성값으로 저장
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
if(request.getMethod().equals("GET")) {
response.sendRedirect("user_error.jsp");
return;
}
String userid=request.getParameter("userid");
String password=request.getParameter("password");
UserinfoDTO userinfo=UserinfoModelOneDAO.getDAO().selectUserinfo(userid);
if(userinfo==null) {//아이디 인증 실패
session.setAttribute("message", "입력된 아이디가 존재하지 않습니다.");
session.setAttribute("userid", userid);
response.sendRedirect("user_login.jsp");
return;
}
if(!userinfo.getPassword().equals(password)) {//비밀번호 인증 실패
session.setAttribute("message", "입력된 아이디가 잘못 되었거나 비밀번호가 맞지 않습니다.");
session.setAttribute("userid", userid);
response.sendRedirect("user_login.jsp");
return;
}
//인증 성공 - 세션에 권한 관련 정보를 속성값으로 저장
session.setAttribute("loginUserinfo", userinfo);
response.sendRedirect("user_login.jsp");
%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//session.removeAttribute("loginUserinfo");
session.invalidate();
response.sendRedirect("user_login.jsp");
%>
USERINFO 테이블에 저장된 모든 회원정보를 검색하여 전달하는 JSP 문서 (로그인 사용자만 요청 가능한 페이지)
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="java.util.List"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
UserinfoDTO loginUserinfo=(UserinfoDTO)session.getAttribute("loginUserinfo");
//비로그인 사용자인 경우 - 비정상적인 요청
if(loginUserinfo==null) {
response.sendRedirect("user_error.jsp");
return;
}
List<UserinfoDTO> userinfoList=UserinfoModelOneDAO.getDAO().selectUserinfoList();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MVC</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel=stylesheet href="css/user.css" type="text/css">
</head>
<body bgcolor=#FFFFFF text=#000000 leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
<br>
<table width=780 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="20"></td>
<td>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="f4f4f4" height="22"> <b>회원관리 - 회원목록</b></td>
</tr>
</table>
<br>
<table border="0" cellpadding="0" cellspacing="1" width="590" bgcolor="BBBBBB">
<tr>
<td width=190 align=center bgcolor="E6ECDE" height="22">아이디</td>
<td width=200 align=center bgcolor="E6ECDE">이름</td>
<td width=200 align=center bgcolor="E6ECDE">이메일</td>
</tr>
<% for(UserinfoDTO userinfo:userinfoList) { %>
<tr>
<td width=190 align=center bgcolor="ffffff" height="20">
<%=userinfo.getUserid() %>
</td>
<td width=200 align=center bgcolor="ffffff">
<a href="user_view.jsp?userid=<%=userinfo.getUserid() %>" class="user">
<%=userinfo.getName() %>
</a>
</td>
<td width=200 align=center bgcolor="ffffff">
<% if(userinfo.getEmail()!=null) { %>
<%=userinfo.getEmail() %>
<% } %>
</td>
</tr>
<% } %>
</table>
<br>
<table border="0" cellpadding="0" cellspacing="1" width="590">
<tr>
<td align="right">
<% if(loginUserinfo.getStatus()==9) { %>
<input type="button" value="회원등록" onclick="location.href='user_write.jsp';"/>
<% } %>
<input type="button" value="로그아웃" onclick="location.href='user_logout_action.jsp';"/>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
아이디를 전달받아 USEINFO 테이블에 저장된 해당 아이디의 회원정보를 검색하여 전달하는 JSP 문서 (로그인 사용자만 요청 가능한 페이지)
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
UserinfoDTO loginUserinfo=(UserinfoDTO)session.getAttribute("loginUserinfo");
//비로그인 사용자인 경우 - 비정상적인 요청
if(loginUserinfo==null) {
response.sendRedirect("user_error.jsp");
return;
}
if(request.getParameter("userid")==null) {//전달값이 없는 경우
response.sendRedirect("user_error.jsp");
return;
}
String userid=request.getParameter("userid");
UserinfoDTO userinfo=UserinfoModelOneDAO.getDAO().selectUserinfo(userid);
if(userinfo==null) {//검색된 회원정보가 없는 경우
response.sendRedirect("user_error.jsp");
return;
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MVC</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel=stylesheet href="css/user.css" type="text/css">
<script language="JavaScript">
function userRemove(userid) {
if (confirm("정말로 삭제 하시겠습니까?") ) {
location.href='user_remove_action.jsp?userid='+userid;
}
}
</script>
</head>
<body bgcolor=#FFFFFF text=#000000 leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
<br>
<table width=780 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="20"></td>
<td>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="f4f4f4" height="22"> <b>회원관리 - 회원정보</b></td>
</tr>
</table>
<br>
<table border="0" cellpadding="0" cellspacing="1" width="590" bgcolor="BBBBBB">
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">아이디</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<%=userinfo.getUserid() %>
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">이름</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<%=userinfo.getName() %>
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">이메일</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<% if(userinfo.getEmail()!=null) { %>
<%=userinfo.getEmail() %>
<% } %>
</td>
</tr>
</table>
<br>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<% if(loginUserinfo.getStatus()==9) { %>
<input type="button" value="수정" onClick="location.href='user_modify.jsp?userid=<%=userinfo.getUserid()%>';">
<input type="button" value="삭제" onClick="userRemove('<%=userinfo.getUserid()%>');">
<% } %>
<input type="button" value="목록" onClick="location.href='user_list.jsp';">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
아이디를 전달받아 USEINFO 테이블에 저장된 해당 아이디의 회원정보를 검색하여 입력태그의 초기값으로 설정하고 변경할 회원정보를 사용자로부터 입력받기 위한 JSP 문서 (관리자만 요청 가능한 페이지)
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
UserinfoDTO loginUserinfo=(UserinfoDTO)session.getAttribute("loginUserinfo");
//비로그인 사용자이거나 로그인 사용자가 관리자가 아닌 경우 - 비정상적인 요청
if(loginUserinfo==null || loginUserinfo.getStatus()!=9) {
response.sendRedirect("user_error.jsp");
return;
}
if(request.getParameter("userid")==null) {//전달값이 없는 경우
response.sendRedirect("user_error.jsp");
return;
}
String userid=request.getParameter("userid");
UserinfoDTO userinfo=UserinfoModelOneDAO.getDAO().selectUserinfo(userid);
if(userinfo==null) {//검색된 회원정보가 없는 경우
response.sendRedirect("user_error.jsp");
return;
}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>MVC</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel=stylesheet href="css/user.css" type="text/css">
<script language="JavaScript">
function userModify() {
if ( f.name.value == "" ) {
alert("이름을 입력하십시요.");
f.name.focus();
return false;
}
f.action = "user_modify_action.jsp";
f.submit();
}
</script>
</head>
<body bgcolor=#FFFFFF text=#000000 leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
<br>
<table width=780 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="20"></td>
<td>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td bgcolor="f4f4f4" height="22"> <b>회원관리 - 회원정보수정</b></td>
</tr>
</table>
<br>
<form name="f" method="post">
<input type="hidden" name="userid" value="<%=userinfo.getUserid()%>">
<table border="0" cellpadding="0" cellspacing="1" width="590" bgcolor="BBBBBB">
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">아이디</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<%=userinfo.getUserid()%>
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">비밀번호</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="password" style="width:150" name="password">
<span style="color: red;">** 비밀번호를 변경하지 않을 경우 입력하지 마세요. **</span>
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">이름</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<input type="text" style="width:240" name="name" value="<%=userinfo.getName()%>">
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">이메일 주소</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<% if(userinfo.getEmail()!=null) { %>
<input type="text" style="width:240" name="email" value="<%=userinfo.getEmail()%>">
<% } else { %>
<input type="text" style="width:240" name="email">
<% } %>
</td>
</tr>
<tr>
<td width=100 align=center bgcolor="E6ECDE" height="22">회원등급</td>
<td width=490 bgcolor="ffffff" style="padding-left:10px;">
<select name="status">
<option value="1" <% if(userinfo.getStatus()==1) { %> selected <% } %>>일반회원</option>
<option value="9" <% if(userinfo.getStatus()==9) { %> selected <% } %>>관리자</option>
</select>
</td>
</tr>
</table>
</form>
<br>
<table width=590 border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<input type="button" value="수정" onClick="userModify();">
<input type="button" value="목록" onClick="location.href='user_list.jsp';">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
if(request.getMethod().equals("GET")) {
response.sendRedirect("user_error.jsp");
return;
}
request.setCharacterEncoding("utf-8");
String userid=request.getParameter("userid");
String password=request.getParameter("password");
String name=request.getParameter("name");
String email=request.getParameter("email");
int status=Integer.parseInt(request.getParameter("status"));
UserinfoDTO userinfo=new UserinfoDTO();
userinfo.setUserid(userid);
//비밀번호 전달값이 없는 경우 - 기존 회원의 비밀번호로 필드값 변경
if(password==null || password.equals("")) {
userinfo.setPassword(UserinfoModelOneDAO.getDAO().selectUserinfo(userid).getPassword());
} else {//비밀번호 전달값이 있는 경우 - 비밀번호 전달값으로 필드값 변경
userinfo.setPassword(password);
}
userinfo.setName(name);
userinfo.setEmail(email);
userinfo.setStatus(status);
UserinfoModelOneDAO.getDAO().updateUserinfo(userinfo);
response.sendRedirect("user_view.jsp?userid="+userid);
%>
아이디를 전달받아 USERINFO 테이블에 저장된 해당 아이디의 회원정보를 삭제하고 회원목록 출력페이지(user_list.jsp)로 이동하는 URL 주소를 전달하는 JSP 문서 (관리자만 요청 가능한 페이지)
관리자가 자신의 계정을 삭제한 경우 로그아웃 처리페이지(user_logout_action.jsp)로 이동
<%@page import="xyz.itwill.dao.UserinfoModelOneDAO"%>
<%@page import="xyz.itwill.dto.UserinfoDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
UserinfoDTO loginUserinfo=(UserinfoDTO)session.getAttribute("loginUserinfo");
//비로그인 사용자이거나 로그인 사용자가 관리자가 아닌 경우 - 비정상적인 요청
if(loginUserinfo==null || loginUserinfo.getStatus()!=9) {
response.sendRedirect("user_error.jsp");
return;
}
if(request.getParameter("userid")==null) {//전달값이 없는 경우
response.sendRedirect("user_error.jsp");
return;
}
String userid=request.getParameter("userid");
UserinfoModelOneDAO.getDAO().deleteUserinfo(userid);
//로그인 사용자의 아이디와 삭제된 사용자의 아이디가 같은 경우
if(loginUserinfo.getUserid().equals(userid)) {//관리자가 자신의 계정을 삭제한 경우
response.sendRedirect("user_logout_action.jsp");
} else {
response.sendRedirect("user_list.jsp");
}
%>