Skip to content

주요 기능 소개(Member)

채현우 edited this page Jun 2, 2022 · 1 revision

📌 Member

✔️ 회원 가입

  • ID를 PK로 설정하여 중복 가입을 막기 위해 Ajax를 사용하여 사용자가 ID를 입력 시 이미 가입된 아이디인지 아닌지
    입력하는 동시에 Text를 뿌려줌
  • 주소 API를 연동하여 사용자의 주소를 입력할 수 있게 해줌

💻 code

MemberController.java
//로그인 - 회원 가입 컨트롤러
@RestController("memberController")
@RequestMapping("/movie")
public class MemberController {
		
	//얘를 호출하면 MemberServiceImpl이 딸려 들어옴
	@Resource
	private MemberService memberService;
	
	//회원 가입 화면
	@RequestMapping(value = "/join", method = RequestMethod.GET)
	public ModelAndView join() throws Exception {
		
		ModelAndView mav = new ModelAndView();
		mav.setViewName("member/join");
		
		return mav;
	}
	
	//주소 API 연결
	@RequestMapping(value = "/jusoPopup")
	public ModelAndView juso() throws Exception {
			
		ModelAndView mav = new ModelAndView();
		mav.setViewName("member/jusoPopup");
			
		return mav;
	}

	//회원 가입 처리
	@RequestMapping(value = "/join_ok", method = RequestMethod.POST)
	public ModelAndView join_ok(MemberDTO dto) throws Exception{

		ModelAndView mav = new ModelAndView();
		memberService.memberJoin(dto);
		mav.setViewName("member/login");
		
		return mav;
	}
	
	//ID 중복 확인
	@RequestMapping(value = "/idcheck",method = {RequestMethod.GET,RequestMethod.POST})
	@ResponseBody
        public Map<Object, Object> idcheck(@RequestBody String id) throws Exception {
		
		int count=0;
		Map<Object, Object> map = new HashMap<Object, Object>();
		count = memberService.idcheck(id);
		map.put("cnt", count);
		
		return map;
	}
}
MemberServiceImpl.java
//MemberService 인터페이스를 구현한 Class
@Service("memberService") //객체 생성
public class MemberServiceImpl implements MemberService {
	
	@Autowired ////memberMapper에 있는 sql문을 MemberServiceImpl로 읽어와서 의존성 주입하여 객체 생성한 것.
	private MemberMapper memberMapper; //의존성 주입
		
	//ID 중복 확인
	@Override
	public int idcheck(String id) throws Exception {
		int count = memberMapper.idcheck(id);
		
		return count;
	}

	//회원 가입 처리
	@Override 
	public void memberJoin(MemberDTO dto) throws Exception {
		memberMapper.memberjoin(dto);
	}
}
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="com.finalProject.mapper.MemberMapper">

<!-- 회원 가입 -->
<insert id="memberjoin" parameterType="com.finalProject.dto.MemberDTO">
	insert into moviemember (id,name,pwd,email1,email2,roadFullAddr,birth_year,birth_month,birth_day) values
	(#{id},#{name},#{pwd},#{email1},#{email2},#{roadFullAddr},#{birth_year},#{birth_month},#{birth_day})
</insert>
</mapper>

📷 View

Image

회원 가입 화면


✔️ MyPage(회원 정보 수정)

  • 로그인을 했을 때 수정이 가능하고, 로그인 시 생성되는 Session 정보를 토대로 회원 정보를 가져옴
  • ID와 이름을 수정을 못하고 나머지 정보는 수정 가능
  • 주소 API 연동(회원 가입과 동일)

💻 code

MemberController.java
//로그인 - 회원 가입 컨트롤러
@RestController("memberController")
@RequestMapping("/movie")
public class MemberController {
		
	//얘를 호출하면 MemberServiceImpl이 딸려 들어옴
	@Resource
	private MemberService memberService;

	//마이 페이지
	// - 여기에 로그인 된 유저의 회원 정보를 불러온다.(getReadData)
	@RequestMapping(value = "/mypage", method = {RequestMethod.POST, RequestMethod.GET}) 
	public ModelAndView myPage(HttpServletRequest request, HttpServletResponse response
			,HttpSession session) throws Exception {
			
		ModelAndView mav = new ModelAndView();
	
		MemberDTO info=(MemberDTO)session.getAttribute("customInfo");
		MemberDTO dto=memberService.getReadData(info.getId());
		request.setAttribute("dto", dto);
			
		mav.setViewName("member/mypage");
			
		return mav;
	}

	//마이 페이지 처리(DB에 수정된 값 저장)
	@RequestMapping(value = "/mypage_ok", method = {RequestMethod.POST, RequestMethod.GET}) 
	public ModelAndView myPage_ok(MemberDTO dto, HttpServletRequest request, HttpServletResponse response
			,HttpSession session) throws Exception {
			
		ModelAndView mav = new ModelAndView();
		MemberDTO info=(MemberDTO)session.getAttribute("customInfo");
		dto.setId(info.getId());
		memberService.updateMember(dto);
			
		mav.setViewName("redirect:/main");
		return mav;
	}
}
MemberServiceImpl.java
//MemberService 인터페이스를 구현한 Class
@Service("memberService") //객체 생성
public class MemberServiceImpl implements MemberService {
	
	@Autowired ////memberMapper에 있는 sql문을 MemberServiceImpl로 읽어와서 의존성 주입하여 객체 생성한 것.
	private MemberMapper memberMapper; //의존성 주입
		
	// 마이 페이지(회원 정보 수정)
	@Override
	public void updateMember(MemberDTO dto) throws Exception {
		memberMapper.updateMember(dto);
	}
}
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="com.finalProject.mapper.MemberMapper">

<!-- 하나의 유저 정보 가져오기(세션, 마이페이지 수정할때 User 정보 불러오기) -->
<select id="getReadData" parameterType="String" resultType="com.finalProject.dto.MemberDTO">
	select id,name,pwd,email1,email2,roadFullAddr,birth_year,birth_month,birth_day
	from moviemember where id = #{id}
</select>

<!-- 회원 정보 수정(MyPage) -->
<update id="updateMember" parameterType="com.finalProject.dto.MemberDTO">
	update moviemember set pwd=#{pwd},email1=#{email1},email2=#{email2},roadFullAddr=#{roadFullAddr},birth_year=#{birth_year},birth_month=#{birth_month},birth_day=#{birth_day}
	where id = #{id}
</update>
</mapper>

📷 View

Image

마이 페이지 화면

Clone this wiki locally