웹 Web/JSP & Servlet
하나의 Servlet에서 여러 작업을 수행하기 - CRUD
하나비 HANABI
2023. 2. 8. 20:19
DB와 연결하지 않은 하드코딩 버전
메인페이지는 list.jsp이다. 그래서 쿼리스트링 없이 /mController만 넣어도 list.jsp가 뜰 수 있게 해준다.
메인(전체조회) -> list.jsp
가입하기 -> regist.jsp
회원정보조회 -> detail.jsp
수정 -> update.jsp
삭제 -> list.jsp
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>ServletWeb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>member</servlet-name>
<servlet-class>bitedu.lesson.member.MemberServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-name>member</servlet-name>
<url-pattern>/mController</url-pattern>
</servlet-mapping>
</web-app>
MemberServlet.java
list.jsp
<%@page import="bitedu.lesson.member.MemberVO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>List</title>
</head>
<body>
<h1>List</h1>
<a href="./mController?cmd=viewRegistForm">가입하기</a> <br>
<table>
<%
ArrayList<MemberVO> voList = (ArrayList<MemberVO>) request.getAttribute("voList");
for(MemberVO vo : voList) {
%>
<tr>
<td><%= vo.getId() %></td>
<td><%= vo.getPwd() %></td>
<td><%= vo.getName() %></td>
<td><%= vo.getEmail() %></td>
<td><%= vo.getDate() %></td>
<td><a href="./mController?cmd=search&id=<%= vo.getId() %>">상세조회</a></td>
<td><a href="./mController?cmd=viewUpdateForm&id=<%= vo.getId() %>">수정</a></td>
<td><a href="./mController?cmd=delete&id=<%= vo.getId() %>">삭제</a></td>
</tr>
<%
}
%>
</table>
</body>
detail.jsp
<%@page import="bitedu.lesson.member.MemberVO"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>View Condition</title>
</head>
<body>
<%
MemberVO vo = (MemberVO) request.getAttribute("vo");
%>
<h1>view condition</h1>
<form action="./mController?cmd=readAll" method="post">
<table>
<tr>
<td>아이디:</td>
<td><input type="text" name="id" value="<%= vo.getId() %>"></td>
</tr>
<tr>
<td>비밀번호:</td>
<td><input type="password" name="pwd" value="<%= vo.getPwd() %>"></td>
</tr>
<tr>
<td>이름:</td>
<td><input type="text" name="name" value="<%= vo.getName() %>"></td>
</tr>
<tr>
<td>이메일:</td>
<td><input type="text" name="email" value="<%= vo.getEmail() %>"></td>
</tr>
<tr>
<td>가입일:</td>
<td><%= vo.getDate() %></td>
</tr>
<tr>
<td><input type="submit" value="확인"></td>
</tr>
</table>
</form>
</body>
</html>
update.jsp
<%@page import="bitedu.lesson.member.MemberVO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Update Form</title>
</head>
<body>
<%
MemberVO vo = (MemberVO) request.getAttribute("vo");
%>
<h1>회원정보 수정</h1>
<form action="./mController?cmd=update" method="post">
<table>
<tr>
<td>아이디:</td>
<td><input type="text" name="id" value="<%= vo.getId() %>"></td>
</tr>
<tr>
<td>비밀번호:</td>
<td><input type="password" name="pwd" value="<%= vo.getPwd() %>"></td>
</tr>
<tr>
<td>이름:</td>
<td><input type="text" name="name" value="<%= vo.getName() %>"></td>
</tr>
<tr>
<td>이메일:</td>
<td><input type="text" name="email" value="<%= vo.getEmail() %>"></td>
</tr>
<tr>
<td>가입일:</td>
<td><%= vo.getDate() %></td>
</tr>
<tr>
<td><input type="submit" value="수정완료"></td>
</tr>
</table>
</form>
</body>
</html>
MemberVO.java
public class MemberVO {
private String id;
private String pwd;
private String name;
private String email;
private Timestamp registDate;
public MemberVO(String id, String pwd, String name, String email, Timestamp date) {
this.id = id;
this.pwd = pwd;
this.name = name;
this.email = email;
this.registDate = date;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
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 Timestamp getDate() {
return registDate;
}
public void setDate(Timestamp date) {
this.registDate = date;
}
@Override
public String toString() {
return "MemberVO [id=" + id + ", pwd=" + pwd + ", name=" + name
+ ", email=" + email + ", registDate=" + registDate + "]";
}
}