일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스프링 쇼핑몰
- 스프링 프로젝트 기본 설정
- 로그아웃 기능 구현
- ResponseEntity
- 로그인 기능
- 정규표현식
- 스프링 업로드
- 스프링 프로젝트
- 삭제 구현
- 쇼핑몰 포트폴리오
- 쇼핑몰 프로젝트
- spring 쇼핑몰
- 스프링 메일 전송
- BCrypt 적용
- spring 프로젝트
- oracle 설치방법
- 회원가입 기능
- 인증번호 전송
- 스프링 게시판
- 스프링 쇼핑몰 프로젝트
- 스프링 프로젝트 설정
- 파일 업로드
- Bcrypt
- arraylist
- 스프링 이미지
- 스프링 HikariCP
- 스프링 게시판 구현
- 이미지 출력
- 스프링 포트폴리오
- 스프링 파일 삭제
- Today
- Total
Kim VamPa
[Spring][쇼핑몰 프로젝트][2.2] 회원가입 기능 구현(Service / controller/ jsp) 본문
[Spring][쇼핑몰 프로젝트][2.2] 회원가입 기능 구현(Service / controller/ jsp)
Kim VamPa 2020. 8. 14. 14:39프로젝트 Github : https://github.com/sjinjin7/Blog_Project
프로젝트 포스팅 색인(index) : https://kimvampa.tistory.com/188
목표
이번 포스팅에선 회원가입 기능을 구현해보겠습니다. 해당 기능이 구현되는 상황은 다음과 같습니다.
1. 회원가입페이지(join.jsp)에서 필요 정보를 입력합니다.
2.입력 후 '가입하기' 버튼을 클릭합니다.
3.입력한 회원정보가 데이터베이스에 저장되고 화면은 메인 페이지로 이동합니다.
회원가입 기능 구현은 두포스팅에 걸쳐서 진행하겠습니다.
순서
1. 데이터베이스 테이블 생성 및 VO 생성
1) Oracle
2) MySQL
3) VO생성
2. MemberMapper.xml 추가
1) insert 쿼리문 테스트 및 관리자 아이디 만들기
2) mapper.xml 작성
3. MemberMapper.java 인터페이스 추가
----------------------↑이전 포스팅--------------------------------
4. Mapper에 추가한 쿼리문 테스트(MemberMapperTests.java)
5. MemberService.java 추가
6. MemberController.java 회원가입 메서드 추가
7. join.jsp
8. 테스트
9. 정리
4. Mapper에 추가한 쿼리 메서드 테스트(MemberMapprTests.java)
- src/test/java 경로에 패키지 com.vam.mapper를 추가해준 후 MemberMapperTests.java 클래스를 추가해줍니다.
- 아래와 같이 코드를 추가해준후 테스트를 진행해줍니다.
MemberMapperTests.java
package com.vam.mapper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.vam.model.MemberVO;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
public class MemberMapperTests {
@Autowired
private MemberMapper membermapper; //MemberMapper.java 인터페이스 의존성 주입
//회원가입 쿼리 테스트 메서드
@Test
public void memberJoin() throws Exception{
MemberVO member = new MemberVO();
member.setMemberId("test"); //회원 id
member.setMemberPw("test"); //회원 비밀번호
member.setMemberName("test"); //회원 이름
member.setMemberMail("test"); //회원 메일
member.setMemberAddr1("test"); //회원 우편번호
member.setMemberAddr2("test"); //회원 주소
member.setMemberAddr3("test"); //회원 상세주소
membermapper.memberJoin(member); //쿼리 메서드 실행
}
}
1
-데이터베이스 SELECT * FROM book_member; 명령문을 통해 테스트가 정상적으로 진행되었는지 확인합니다.
5.MemberService.java
- com.vam.service에 MemberService.java 인터페이스와 MemberServiceImpl.java 클래스를 추가해줍니다.
- MemberService.java 인터페이스와 MemberServiceImpl.java클래스의 코드는 아래와 같이 추가해줍니다.
- MemberServceImpl.java 클래스는 MemberService.java 인터페이스르 상속받도록 설정해줍니다.
(public class MemberServiceImpl 옆에 implements MemberService 추가)
- 가장 주의해야할점은 MemberServiceImp.java 클래스에 @Service 어노테이션이 반드시 추가해주어야 한다는 점입니다.
package com.vam.service;
import com.vam.model.MemberVO;
public interface MemberService {
//회원가입
public void memberJoin(MemberVO member) throws Exception;
}
package com.vam.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.vam.mapper.MemberMapper;
import com.vam.model.MemberVO;
@Service
public class MemberServiceImpl implements MemberService{
@Autowired
MemberMapper membermapper;
@Override
public void memberJoin(MemberVO member) throws Exception {
membermapper.memberJoin(member);
}
}
6. MemberController.java 회원가입 메서드 추가
- 회원가입 메서드를 추가하기 앞서 @Autowired를 통해서 MemberService.java가 MemberController.java에 자동 주입되도록 코드를 추가해줍니다.
@Autowired
private MemberService memberservice;
- 회원가입 메서드를 추가해줍니다.
- 반환형식을 String으로 하여 return에 main페이지로 이동하도록 작성하였습니다.
//회원가입
@RequestMapping(value="/join", method=RequestMethod.POST)
public String joinPOST(MemberVO member) throws Exception{
logger.info("join 진입");
// 회원가입 서비스 실행
memberservice.memberJoin(member);
logger.info("join Service 성공");
return "redirect:/main";
}
7. join.jsp
- 정보를 입력해야할 input태그에 속성 name태그를 추가합니다. 속성 name의 값은 해당 input태그에 들어가야할 정보에 해당하는 MemberVO에서 정의한 변수 이름을 삽입합니다.(대상 클래스 : id_input, pw_input, user_input, mail_input, address_input_1, address_input_2, address_input_3 )
<input class="id_input">
=>
<input class="id_input" name="memberId">
- form태그에 기존에 있던 action속성은 지우고, id속성과 method속성을 추가해줍니다. id속성의 값은 join_form, method속성의 값은 post로 한다.
<form action="">
=>
<form id="join_form" method="post">
- jquery 사용을 위해 head태그 내부 제일 끝에 jquery연결을 위한<script>태그를 추가해준다
<script
src="https://code.jquery.com/jquery-3.4.1.js"
integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
crossorigin="anonymous"></script>
- body태그 내부 제일 아래에 script 태그를 추가 해준 후 회원가입 클릭 시 회원가입 기능 작동을 위한 jquery 코드를 추가 해줍니다.
- 코드의 의미는 '가입하기 버튼'(<input type="button" class="join_button" value="가입하기">) 클릭하였을때 form태그에 속성 action(url 경로)이 추가되고, form태그가 서버에 제출이 된다는 의미입니다.(제출 방식(post)은 form태그에 미리 추가되어져 있습니다.)
<script>
$(document).ready(function(){
//회원가입 버튼(회원가입 기능 작동)
$(".join_button").click(function(){
$("#join_form").attr("action", "/member/join");
$("#join_form").submit();
});
});
</script>
8. 테스트
- 회원가입 기능이 완성되었습니다. 해당기능이 정상적으로 작동이 되는지 확인해보도록하겠습니다.
- 서버를 구동시켜서 회원가입 페이지로 이동하겠습니다.
- 회원가입페이지에 테르트를 위해 데이터를 test3을 입력하고 '가입하기' 버튼을 클릭합니다.
- 정상적으로 완료가되었다면 화면은 메인페이지로 이동할 것입니다.
- 데이터베이스Select명령문을 통해 방금 작성한 회원정보가 등록이 되었는지 확인합니다.
9. 정리
- 지금까지 작성한 문서들은 전체적인 흐름에서 어떤역할을 하는지 어떤흐름을 거치는지 정리하였습니다.
DATE
- 2020.08.14 작성
'스프링 프레임워크 > 쇼핑몰 프로젝트' 카테고리의 다른 글
[Spring][쇼핑몰 프로젝트][4] 인증번호 이메일 전송(1) (9) | 2020.10.30 |
---|---|
[Spring][쇼핑몰 프로젝트][3] 아이디 중복 검사 기능 (37) | 2020.08.25 |
[Spring][쇼핑몰 프로젝트][2.1] 회원가입 기능 구현(테이블 생성, vo 생성, Mapper 생성 및 테스트) (11) | 2020.08.13 |
[Spring][쇼핑몰 프로젝트][1] 메인페이지, 로그인페이지, 회원가입페이지 (22) | 2020.04.21 |
[Spring][쇼핑몰 프로젝트][0] 프로젝트 생성 및 환경설정 (27) | 2020.04.16 |