FireDrago

[JSP] 초간단 CRUD 구현(2) 본문

프로그래밍/템플릿 엔진(thymeleaf, jsp)

[JSP] 초간단 CRUD 구현(2)

화이용 2023. 6. 18. 22:05

앞선 게시물에서 Create와 Read 까지 만들었으니 이제 수정(Update)와 삭제(Delete)를 해보자

 

회원정보 수정 (Update)

회원정보 수정은

1. 수정할 회원의 이름을 입력받고,

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<h1>회원 검색</h1>
	<p>수정하고싶은 회원님의 이름을 입력하세요</p>
	<form action="update_process.jsp">
		이름 : <input type="text" name="name">
		<input type="submit" value="검색">
	</form>
</body>
</html>

2. 그 회원의 정보를 표시, 수정정보를 입력받은 뒤,

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="dto.Member" %>
<%@ page import="doa.List" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
	String name = request.getParameter("name");
	String age = "";
	
	for (int i = 0; i<List.arr.size(); i++) {
		if(List.arr.get(i).getName().equals(name)) {
			age = Integer.toString(List.arr.get(i).getAge());
		}
	}
%>
	<p>원하는 나이를 입력하고 수정 버튼을 클릭하세요(이름은 변경할 수 없습니다.)</p>
	<form action="update_result.jsp">
		<input type="text" value=<%=name%> name="name">
		<input type="number" value=<%=age%> name="age">
		<input type="submit" value="수정">
	</form>
</body>
</html>

3. 수정 프로세스를 거친다음 메인화면으로 돌아간다. 

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="dto.Member" %>
<%@ page import="doa.List" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
	String name = request.getParameter("name");
	String age = request.getParameter("age");
	
	for (int i=0; i<List.arr.size(); i++) {
		if (List.arr.get(i).getName().equals(name)) {
			Member mb = new Member();
			mb.setName(name);
            //Set메서드를 사용
			mb.setAge(Integer.parseInt(age));
			List.arr.set(i, mb);
		}
	}
	response.sendRedirect("main.jsp");
%>
</body>
</html>

ArrayList의 set 메서드를 사용하는 것 외에는 사실 회원가입과 크게 다르지 않다.

 

회원삭제(Delete)

 

회원삭제 역시 원리는 비슷하다 입력받은 회원이름을 통해 회원을 찾고

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<h1>회원삭제</h1>
	<p>삭제하고싶은 회원님의 이름을 입력하세요</p>
	<form action="del_process.jsp">
		이름 : <input type="text" name="name">
		<input type="submit" value="검색">
	</form>
</body>
</html>

그 회원을 삭제하는 메서드를 실행한다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="dto.Member" %>
<%@ page import="doa.List" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
	String name = request.getParameter("name");
	
	for (int i =0; i<List.arr.size(); i++) {
		if (List.arr.get(i).getName().equals(name)) {
			List.arr.remove(i);
		}
	}
	response.sendRedirect("main.jsp");
%>
</body>
</html>

 

앞의 과정을 잘 이해했다면 Delete 역시 remove 메서드 사용하는 것 외에 다른 원리가 있는것은 아니다.