MelonPeach

17. 스프링 회원가입 만들기 / 회원가입

 

안녕하세요?

MelonPeach입니다.

오늘은 회원가입에 대한 포스팅을 하겠습니다.

회원가입이면 아이디, 비밀번호, 이름, 이메일, 주소 등등.. 많지만

저희는 아이디, 비밀번호, 성명 이 3가지만 하도록 하겠습니다.

 

1.  memberMapper.xml 작성


스프링 회원가입 만들기(SQL)
스프링 회원가입 만들기 / memberMapper.xml

 

mappers폴더에 memberMapper.xml을 생성해줍니다.

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="memberMapper">
	<!-- 게시판 글 작성 -->
	<insert id="register">
	    INSERT INTO MP_MEMBER(   USERID 
	   					       , USERPASS 
	   					       , USERNAME 	)
	                  VALUES(    #{userId} 
	                 		   , #{userPass}
	                 		   , #{userName})
    </insert>
   
</mapper>

 

2. MemberVO 작성


스프링 회원가입 만들기 / MemberVO

 

kr.co.vo폴더에 MemberVO를 생성해주시고 코드를 작성해주세요.

 

package kr.co.vo;

import java.util.Date;

public class MemberVO {

	private String userId;
	private String userPass;
	private String userName;
	private Date regDate;
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getUserPass() {
		return userPass;
	}
	public void setUserPass(String userPass) {
		this.userPass = userPass;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public Date getRegDate() {
		return regDate;
	}
	public void setRegDate(Date regDate) {
		this.regDate = regDate;
	}
	
	@Override
	public String toString() {
		return "MemberVO [userId=" + userId + ", userPass=" + userPass + ", userName=" + userName + ", regDate="
				+ regDate + "]";
	}
	
}

 

 

 

3. MemberDAO 작성


스프링 회원가입 만들기 / MemberDAO

 

kr.co.dao 폴더에 MemberDAO와 MemberDAOImpl을 생성해줍니다.

 

package kr.co.dao;

import kr.co.vo.MemberVO;

public interface MemberDAO {
	
	// 회원가입
	public void register(MemberVO vo) throws Exception;
}



package kr.co.dao;

import javax.inject.Inject;

import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;

import kr.co.vo.MemberVO;

@Repository
public class MemberDAOImpl implements MemberDAO {
	
	@Inject SqlSession sql;
	// 회원가입

	@Override
	public void register(MemberVO vo) throws Exception {
		sql.insert("memberMapper.register", vo);
	}
}

 

 

 

4. MemberService 작성


스프링 회원가입 만들기 / MemberService

 

kr.co.service 폴더에 MemberService와 MemberServiceImpl을 생성해줍니다.

 

package kr.co.service;

import kr.co.vo.MemberVO;

public interface MemberService {

	public void register(MemberVO vo) throws Exception;
	
}




package kr.co.service;

import javax.inject.Inject;

import org.springframework.stereotype.Service;

import kr.co.dao.MemberDAO;
import kr.co.vo.MemberVO;

@Service
public class MemberServiceImpl implements MemberService {
	
	@Inject MemberDAO dao;
	
	@Override
	public void register(MemberVO vo) throws Exception {
		
		dao.register(vo);
		
	}
	
}

 

 

 

5. MemberController 작성


스프링 회원가입 만들기 / MemberController

 

회원가입 폼으로 이동할때에는 GET메서드를 타고 회원가입 버튼을 눌렀을때 POST메서드를 타게끔 작성해줍니다.

 

package kr.co.controller;

import java.lang.reflect.Member;

import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import kr.co.service.MemberService;
import kr.co.vo.MemberVO;

@Controller
@RequestMapping("/member/*")
public class MemberController {

	private static final Logger logger = LoggerFactory.getLogger(MemberController.class);
	
	@Inject
	MemberService service;
	
	// 회원가입 get
	@RequestMapping(value = "/register", method = RequestMethod.GET)
	public void getRegister() throws Exception {
		logger.info("get register");
	}
	
	// 회원가입 post
	@RequestMapping(value = "/register", method = RequestMethod.POST)
	public String postRegister(MemberVO vo) throws Exception {
		logger.info("post register");
		
		service.register(vo);
		
		return null;
	}
}

 

 

 

6. register.jsp 작성


스프링 회원가입 만들기 / register.jsp

 

아이디와 패스워드, 성명을 작성해줄 input태그를 만들어줍니다.

회원가입 버튼과 취소 버튼을 만들어줍니다.

아이디, 비밀번호, 성명에 빈값이면 회원가입을 하지못하게 막아줍니다.

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
	<head>
		<!-- 합쳐지고 최소화된 최신 CSS -->
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
		<!-- 부가적인 테마 -->
		<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
	 	
	 	<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
		<title>회원가입</title>
	</head>
	<script type="text/javascript">
		$(document).ready(function(){
			// 취소
			$(".cencle").on("click", function(){
				
				location.href = "/login";
						    
			})
		
			$("#submit").on("click", function(){
				if($("#userId").val()==""){
					alert("아이디를 입력해주세요.");
					$("#userId").focus();
					return false;
				}
				if($("#userPass").val()==""){
					alert("비밀번호를 입력해주세요.");
					$("#userPass").focus();
					return false;
				}
				if($("#userName").val()==""){
					alert("성명을 입력해주세요.");
					$("#userName").focus();
					return false;
				}
			});
			
				
			
		})
	</script>
	<body>
		<section id="container">
			<form action="/member/register" method="post">
				<div class="form-group has-feedback">
					<label class="control-label" for="userId">아이디</label>
					<input class="form-control" type="text" id="userId" name="userId" />
				</div>
				<div class="form-group has-feedback">
					<label class="control-label" for="userPass">패스워드</label>
					<input class="form-control" type="password" id="userPass" name="userPass" />
				</div>
				<div class="form-group has-feedback">
					<label class="control-label" for="userName">성명</label>
					<input class="form-control" type="text" id="userName" name="userName" />
				</div>
				<div class="form-group has-feedback">
					<button class="btn btn-success" type="submit" id="submit">회원가입</button>
					<button class="cencle btn btn-danger" type="button">취소</button>
				</div>
			</form>
		</section>
		
	</body>
	
</html>

 

 

 

7. 회원가입 실행 테스트


스프링 회원가입 만들기 / 실행테스트

빈칸에 입력을 하지않고 회원가입을 하게되면 알림창(alert)에 입력하라는 메세지가 나타나게 됩니다.

 

다음 포스팅에서는 로그인 기능에 대해 포스팅하겠습니다.

이 글을 공유합시다

facebook twitter googleplus kakaostory naver