ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 하나의 Servlet에서 여러 작업을 수행하기 - CRUD
    웹 Web/JSP & Servlet 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 + "]";
    	}
    
    }

     

     

    가입
    상세조회
    수정
    삭제

Designed by Tistory.