본문 바로가기

IT코딩공부!

#37 스프링공부~ (MemBoard프로젝트①) 기본틀

오늘의 노래!!!

 
소년은 커다란 모험 앞에 서있다 (Remaster)
아티스트
세진
앨범
PROLOGUE
발매일
1970.01.01

각 controller, service, dao, mapper 3개씩 만들기~ dto는 4개(변수명확인)!! 

Spring Legacy (Spring MVC) 프로젝트 생성
[1] 프로젝트 이름 : MemBoard

[2] 패키지 : com.icia.mbp
src/main/java에 패키지4 + mapper폴더 생성

	(1) com.icia.mbpo.dto : BOARD.java // COMMENT.java // MEMBER.java // PAGING.java // SEARCH.java 4개 DTO(class생성)
	(2) com.icia.mbp.controller : BController.java //  CController.java //  MController.java 3개 Controller(class생성)
	(3) com.icia.mbp.service : BService.java // CService.java // MService.java 3개 Service(class생성)
	(4) com.icia.mbp.dao : BDAO.java // CDAO.java // MDAO.java 3개 DAO(class생성)

	(5) com.icia.bo.dao.mapper(폴더) : bMapper.xml (Namaspace = "Board") //  cMapper.xml (Namaspace = "Comment") //  mMapper.xml (Namaspace = "Member") 3개의 xml생성
	(6) src/main/resoureces : mybatis-config.xml 파일 생성 : 
				  type-> BOARD  / alias -> board
				  type-> COMMENT / alias -> comment
				  type-> MEMBER / alias -> member
                  type-> PAGING / alias -> paging
                  type-> SEARCH / alias -> search

[3] pom.xml 
  : <properties> 아래로 다 복사해서 붙여넣기

[4] web.xml 
  : 모두 복사

[5] root-context.xml
  : 모두 복사 후 mapperLocations의 value값 확인(패키지)

[6] servlet-context.xml
  : 모두 복사 후 base-package 확인하기

[7] 프로젝트 우클릭 - properties

 (1) Java Build Path - Library - JRE System Library 선택
      : workspace default JRE 으로 바꾸기

 (2) Java Compiler : 1.6 버전에서 11 버전으로 변경

 (3) Project Facets
       - Dynamic Web Module 4.0
       - Java 11
       - Runtimes -> tomcat 9.0 선택

//index 확인!

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원제 게시판 프로젝트</title>
<link rel="stylesheet" href="./resources/css/table.css" />
<style>
body {
	width: 100%;
	background:
		url("https://search.pstatic.net/common/?src=http%3A%2F%2Fblogfiles.naver.net%2FMjAyMjExMDRfMjg2%2FMDAxNjY3NDkxMDg4NjE4.qCQ-XgJR18OSajGtBJZIgjekSv6wIwOzBTUH_jytEJkg.TqIRlxtolDshiJN1K-pASlPB8QeYhh-Ur_iRbJ-ViZMg.JPEG.lsw999777%2FFB%25A3%25DFIMG%25A3%25DF1667491032133.jpg&type=sc960_832")
		
		top center;
		
	text-align: center;
	color: white;
}

</style>
</head>
<body>

<button id="join">회원가입</button>
<button id="login">로그인</button>
<button id="mypage">내정보보기</button>
<button id="logout">로그아웃</button>

</body>

<script src="https://code.jquery.com/jquery-3.6.4.js"
	integrity="sha256-a9jBBRygX1Bh5lt8GZjXDzyOB+bWve9EiO7tROUtj/E="
	crossorigin="anonymous">
</script>
<script>


$('#join').click(function() {
	location.href = "joinForm";
});

$('#login').click(function() {
	location.href = "boardList";
});


$('#mypage').click(function() {
	location.href = "pagingList";
});

$('#logout').click(function() {
	location.href = "pagingList";
});

</script>
</html>

index 출력

 

 

// view폴더 안에서 >> join.jsp생성 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<link rel="stylesheet" href="./resources/css/table.css" />
</head>
<body>

	<form>
	<table>
	<caption>회원가입</caption>
	
	<tr>
		<th>아이디</th>
		<td>
			<input type="text" name="mId" id="mId"/>
			<br/><span id="check1"></span>
		</td>  
	</tr>
	
	<tr>
		<th>비밀번호</th>
		<td>
			<input type="password" name="mPw" id="mPw" placeholder="영문, 숫자, 특수문자를 혼합해서 8자 이상" size="40"/>
			<br/><span id="check2"></span>
		</td>
		
	</tr>
	
	<tr>
		<th>비밀번호 확인</th>
		<td>
			<input type="password" id="checkPw"/>
			<br/><span id="check3"></span>
		</td>
	</tr>
	
	<tr>
		<th>이름</th>
		<td><input type="text" name="mName"/></td>
	</tr>
	
	<tr>
		<th>생년월일</th>
		<td><input type="date" name="mBirth"/></td>
	</tr>
	
	<tr>
		<th>성별</th>
		<td>
			여자 <input type="radio" name="mGender" value="여자"/>
			남자 <input type="radio" name="mGender" value="남자"/>
		</td>
	</tr>
	
	<tr>
		<th>이메일</th>
		<td><input type="email" name="mEmail" /></td>
	</tr>
	
	<tr>
		<th>연락처</th>
		<td><input type="text" name="mPhone" /></td>
	</tr>
	
	<tr>
		<th>주소</th>
		<td><input type="text" name="mAddr"/></td>
	</tr>
	
	<tr>
		<th>프로필 사진</th>
		<td><input type="file" name="mProfile"/></td>
	</tr>
	
	<tr>
		<th colspan="2">
			<input type="submit" value="가입"/>
		</th>
		
	</tr>
	
	</table>
	</form>

</body>

<script src="https://code.jquery.com/jquery-3.7.0.js"
	integrity="sha256-JlqSTELeR4TLqP0OG9dxM7yDPqX1ox/HfgiSLBj8+kM="
	crossorigin="anonymous"></script>
<script>
	$('#join').click(function() {
		location.href = "member/joinForm";
	});
	
	/* 키를 눌렀다 땟을때 실행 */
	$('#mId').keyup(function(){
		
		let mId = $('#mId').val();
		let check1 = $('#check1');
		
		if(mId=='icia'){
			check1.html("사용중인 아이디 입니다.");
			check1.css("color", "red");
		} else {
			check1.html("사용가능한 아이디 입니다.");
			check1.css("color", "blue");
		}
		
	});
	
	$('#mPw').keyup(function(){
		
		let mPw = $('#mPw').val();
		let check2 = $('#check2');
		
		
		// 기본값 -1
		let num = mPw.search(/[0-9]/);	// 숫자 입력 여부 : 입력하면 -1이 아니다
		let eng = mPw.search(/[a-z]/);	// 영문 입력 여부 : 입력하면 -1이 아니다
		let spe = mPw.search(/[`~!@#$%^&*|\\\'\":;\/?]/);	// 특수문자 입력 여부 : 입력하면 -1이 아니다
		let spc = mPw.search(/\s/);	// 공백 여부 : 입력하면 -1이 아니다
		
		// console.log("num = " + num + ", eng = " + eng + ", spe = " + spe + ", spc = " + spc);
		
		if(mPw.length < 8 || mPw.length > 16){
			check2.html("비밀번호는 8자리에서 16자리 이내로 입력해주세요.");
			check2.css("color", "red");
		} else if(spc != -1 ) {
			check2.html("비밀번호는 공백없이 입력해주세요");
			check2.css("color", "red");
		} else if(num == -1 || eng == -1 || spe == -1){
			check2.html("영문, 숫자, 특수문자를 혼합하여 입력해주세요.");
			check2.css("color", "red");
		} else {
			check2.html("사용가능한 비밀번호 입니다.");
			check2.css("color", "blue");
		}
		
	});
	
	$('#checkPw').keyup(function(){
		
		let mPw = $('#mPw').val();
		let checkPw = $('#checkPw').val();
		
		let check3 = $('#check3');
		
		if(mPw==checkPw){
			check3.html("비밀번호 일치");
			check3.css("color", "blue");
		} else {
			check3.html("비밀번호 불일치");
			check3.css("color", "red");
		}
		
	});
	
</script>
</html>

join출력문 아이디 비번에 조건문을 달아서 조건이 맞으면 파랑색 아니면 빨강색