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

2024. 8. 6. 17:45·JSP

오늘은 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>

 

결과는 아래와 같다.

 

'JSP' 카테고리의 다른 글

HTTP 응답코드, 에러페이지 xml 코드  (0) 2024.08.19
[JSP] JSTL, EL, 커스텀 태그에 대해서  (0) 2024.08.16
[JSP] 요청방식, 응답방식  (0) 2024.08.12
[JSP] JSP 내장 객체  (0) 2024.08.07
[JSP] 오류 관련 간단설명  (0) 2024.08.06
'JSP' 카테고리의 다른 글
  • [JSP] JSTL, EL, 커스텀 태그에 대해서
  • [JSP] 요청방식, 응답방식
  • [JSP] JSP 내장 객체
  • [JSP] 오류 관련 간단설명
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    스프링 프레임워크
    jsp
    html
    MVC
    상속
    오버로딩
    2-layered 아키텍처
    오블완
    멘토씨리즈 자바
    Di
    @service
    java
    정처기 실기
    이벤트 스케줄러
    정보처리기사
    Spring
    티스토리챌린지
    recoverabledataaccessexception
    aop
    정처기
    ViewResolver
    수제비
    @repository
    객체지향
    @Component
    DispatcherServlet
    codeup 4891 : 행복
    생성자
    정보처리기사 실기
    어노테이션
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[JSP] 실습 - DAO, DTO (MVC - M)를 사용해서 회원가입 폼 만들기
상단으로

티스토리툴바