JSP

[JSP] 실습 - DAO, DTO (MVC - M)를 사용해서 회원가입 폼 만들기

yn98 2024. 8. 6. 17:45

오늘은 JSP와 Servlet을 배웠다.

보통 JSP를 위주로 사용하기때문에 jsp로 실습을 해보았다.

 

<요구사항>

더보기
더보기

DAO, DTO를 활용해서
회원가입을 해보기!

id가 teemo pw 1234
id ari pw 333인 멤버들이 있는 상황,

회원가입 해보기!

<코드>

<DTO>

package joinmember;

public class DTO {
	private String id;
	private String password;
	private String condition;
	
	
	
	public String getCondition() {
		return condition;
	}
	public void setCondition(String condition) {
		this.condition = condition;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
	

}

<DAO>

package joinmember;

import java.util.ArrayList;

public class DAO {
	ArrayList<DTO> datas;

	public DAO() {
		this.datas = new ArrayList<DTO>();
		DTO data1 = new DTO();
		data1.setId("teemo");
		data1.setPassword("1234");
		this.datas.add(data1);
		DTO data2 = new DTO();
		data2.setId("ari");
		data2.setPassword("333");
		this.datas.add(data2);
	}

	public boolean insert(DTO dto) { // 회원가입
		DTO data = new DTO();
		data.setId(dto.getId());
		data.setPassword(dto.getPassword());
		datas.add(data);
		return true;
	}

	public DTO selectOne(DTO dto) { // 아이디 , 비밀번호 중복검사
		// ▼ 아이디 중복검사
		if(dto.getCondition().equals("IS_UNIQUE")) {
			for(DTO data:this.datas) {
				if(data.getId().equals(dto.getId())) {
					return data;
				}
			}
		}
		return null;
	}
}

<JSP>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"  import ="java.util.ArrayList" %>
<!DOCTYPE html>
<jsp:useBean id="dao" class = "joinmember.DAO"/>
<jsp:useBean id="dto" class = "joinmember.DTO"/>
<jsp:setProperty property="*" name="dto"/>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
<h1>회원가입</h1>

<form method ="POST">
	아이디 <input type = "text" name ="id" required>
	<br>
	비밀번호 <input type = "password" name = "password" required>
	<br>
	비밀번호 확인 <input type="password" name="confirmPassword" required>
	<input type = "submit" value = "회원가입">
</form>

<hr>

<%
    String id = request.getParameter("id");
    String password = request.getParameter("password");
    String confirmPassword = request.getParameter("confirmPassword");
    
    if (request.getMethod().equals("POST")) {
        dto.setId(id);
        dto.setPassword(password);
        
        if (password != null && confirmPassword != null && password.equals(confirmPassword)) {
            // 비밀번호가 일치하는 경우
            dto.setCondition("IS_UNIQUE");
            if (dao.selectOne(dto) != null) { // 아이디 중복 확인
%>
                이미 사용중인 아이디입니다. 다른 아이디를 입력해주세요.
<%
            } else {
                // 아이디가 중복되지 않은 경우 회원가입 처리
                dto.setCondition(null); // 회원가입이므로 조건을 null로 설정
                dao.insert(dto);
%>
                회원가입이 완료되었습니다!
<%
            }
        } else {
%>
            비밀번호가 일치하지 않습니다. 다시 확인해주세요.
<%
        }
    }
%>



</body>
</html>

 

결과는 아래와 같다.