웹 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 + "]";
	}

}

 

 

가입
상세조회
수정
삭제