FireDrago

[JSP] 초간단 CRUD 구현 본문

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

[JSP] 초간단 CRUD 구현

화이용 2023. 6. 18. 21:57

jsp로 회원가입 CRUD를 구현하는 아주 간단한 예제를 만들어보자 

 

1. 먼저 회원정보를 담기위한 자바 객체를 만들어 줄것이다. dto/Member.java (Domain 객체)

 - 이름과 나이를 캡슐화 하고 get ,set 메서드를 설정해준다.

package dto;

public class Member {
	private String name;
	private int age;
	
	public Member() {}
	public Member (String a, int b) {
		name = a;
		age = b;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
}

 

2. 멤버객체를 저장할 ArrayList를 담고있는 List 객체를 만들어 준다. dao > List.java

package doa;
import dto.Member;
import java.util.*;

public class List {
	 static ArrayList<Member> arr = new ArrayList<>();
}

 

3. main.jsp 페이지를 통해 메인화면을 만든다 

   - 회원가입 (Create)

   - 회원목록 (Read)

   - 회원수정(Update)

   - 회원삭제(Delete) 

각각의 기능을 구현한 jsp 파일과 연결하고, 작업이 끝나면 main.jsp로 돌아올 수 있도록 할 것이다.

또한 회원가입을 마치고 main으로 돌아올때는 파라미터와 함께 이름을 들고와 이름 + 인사말을 띄운다.

<%@ 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>
// 회원가입하고 이름띄우기
	<%
	String name = request.getParameter("name");
	if (name != null) {
	%>
		<p>반갑습니다. <%=name %>님</p>
<%	
	} 
%>
	<h1>헬스장 회원관리</h1>
	<p>
		<a href="sign.jsp">회원등록</a>
	</p>
	<p>
		<a href="print.jsp">회원출력</a>
	</p>
	<p>
		<a href="search.jsp">회원정보 수정</a>
	</p>
	<p>
		<a href="del.jsp">회원탈퇴</a>
	</p>
</body>
</html>

 

 - 회원가입 (Create )

<%@ 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>
	<form action="sign_process.jsp">
		이름 : <input type="text" name="name"> <br>
		나이 : <input type="number" name="age" required> <br>
		<input type="submit" value="가입">
	</form>
</body>
</html>

회원가입 form 양식에서 파라미터의 이름과 값을 받은뒤 sign_process.jsp 파일로 전달한다.

이때 Request 객체를 통해 파라미터를 전달한다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="dto.Member" %>
<%@ page import="doa.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<%	
		try {
			String name = request.getParameter("name");
			int age = Integer.parseInt(request.getParameter("age"));
			
			Member mb = new Member();
			mb.setName(name);
			mb.setAge(age);
		
			List.arr.add(mb);
			
			response.sendRedirect("main.jsp?name="+name);
		} catch (Exception e) {
			
		}
		
	%>
</body>
</html>

sign.jsp로부터 전달받은 파라미터를 변수처리하고 , Member 객체에 넣은 뒤 , List 객체의 ArrayList에 담는다. 

가입이 끝나면 response.sendRedirect ("main.jsp") 로 main으로 돌아간다. 위 코드에서는 name 파라미터를 가지고 간다.

sendRedirect는 버그가 있으니 왠만하면 코드의 마지막에 써주자

 

- 회원출력 (Read)

 

회원가입 데이터를 저장했으니, 이제 가져올 차례다. ArrayList에 접근해서 데이터를 빼낸뒤 출력해주면 될것이다.

<%@ 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>
<style>
	table {
		width : 30%;
		border : 1px solid black;
		border-collapse : collapse;
		text-align : center;
	}
	th, td {
		border : 1px solid black;
	}
</style>
</head>
<body>
	<table>
		<tr>
			<th>이름</th>
			<th>나이</th>
		</tr>
<% 
	ArrayList<Member> tmp = List.arr;
	String name = "";
	String age = "";
	
	for (int i=0; i<tmp.size(); i++) {
		name = tmp.get(i).getName();
		age = Integer.toString(tmp.get(i).getAge());
%>
		<tr>
			<td><%=name %></td>
			<td><%=age%></td>
		</tr>
<% 	
	} 
%>
	</table>
	<a href="main.jsp">메인화면</a>
</body>
</html>

 

게시물이 너무 길어져서 2편에서 Update 와 Delete 도 만들어 보자