코드 정리/Spring Framework

1. Spring MVC - 회원가입

@르르 2023. 1. 9. 22:16

 

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)