1. Spring MVC - 회원가입
Spring MVC 패턴을 사용했기 때문에 Model, View, Controller로 역할을 나누어 컴포넌트를 만들었다.
Model : 데이터를 저장하는 컴포넌트
View : 사용자 인터페이스(UI) 컴포넌트
Controller : 사용자의 요청을 처리하고, Model과 View를 중개
Spring MVC 흐름
contoller → service → serviceImpl → dao → daoImpl
MemberController
- 회원 관련 요청을 관리
- @Controller 선언
- @RequestMapping("/member/*") 아래 경로를 사용할 예정
@RequestMapping(value="/insert", method=RequestMethod.GET)
public void insertGET() throws Excpetion {
}
@RequestMapping(value="/insert", method=RequestMethod.POST)
public String insertPOST(MemberVO vo,HttpServletResponse response) throws Exception {
service.insertMember(vo);
return "/member/login";
}
- 스프링이 매개변수로 받은 MemberVO에 자동으로 데이터를 채움
- 참조변수 vo를 가지고 서비스 실행 → 회원 가입 완료
- 로그인 페이지로 이동
. MemberService, Impl
- 서비스 역할 : Controller가 클라이언트로부터 넘어온 요청을 처리하기 위해 Service를 호출하고, Service는 알맞은 정보를 가공(= 비지니스 로직을 수행) & 데이터베이스에 접근하는 DAO를 이용해 결과값을 받아와 Controller에게 다시 넘긴다.
// 회원가입
public void insertMember (MemberVO vo) throws Exception;
// 회원가입
@Override
public void insertMember(MemberVO vo) throws Exception {
dao.insertMember(vo);
}
MemberDAO, Impl
- DAO : 데이터베이스에 접근하여 SQL문을 실행할 수 있는 객체
- SqlSession 주입
- servlet-context.xml , root-context.xml 설정 필요
//회원가입
public void insertMember(MemberVO vo) throws Exception;
//회원가입
@Override
public void insertMember(MemberVO vo) throws Exception {
sqlSession.insert(NAMESPACE+".insertMember", vo);
}
MemberMapper
- 데이터베이스에서 실행할 sql 구문 작성
- dtd 설정
→ dtd? 문서 타입 정의(DTD)는 XML 문서의 구조 및 해당 문서에서 사용할 수 있는 적법한 요소와 속성을 정의
- 외부에서 사용할 네임스페이스 설정 필요
<insert id="insertMember">
insert into d_member(user_id,user_pw,user_email,user_name,user_phone)
values (#{user_id},#{user_pw},#{user_email},#{user_name},#{user_phone})
</insert>
insert.jsp
- 사용자에게 보여질 화면(UI)