FireDrago
[JSP] 초간단 CRUD 구현 본문
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 도 만들어 보자
'프로그래밍 > 템플릿 엔진(thymeleaf, jsp)' 카테고리의 다른 글
| [JSP] web.xml 파일을 이용한 예외처리 (0) | 2023.06.19 |
|---|---|
| [JSP] MultipartRequest 사용하여 파일 입력받기 (0) | 2023.06.18 |
| [JSP] 초간단 CRUD 구현(2) (0) | 2023.06.18 |
| [JSP] 액션태그 (0) | 2023.06.14 |
| [JSP] 스크립트 태그 , 디렉티브 태그 (0) | 2023.06.14 |
