시작전에... 서울 함께 걷는 길에 대한 프로젝트가 끝난지가 얼마되지않은 상태입니다. 빨리 블로그를 적고싶었지만... 너무 빠듯한일정에 미루고미루다가 이제 정리하게되었습니다. 복습하는 느낌으로 하루에 한번씩 올릴거!
로그인화면은 다음과 같습니다.
일단 우리프로젝트는 이메일을 인증을 통해 보안을 유지함과 동시에 email을 사용하여 로그인을 합니다.
로그인을 하기위해서는 db에 있는 사용자의 email을 where문을 통해 찾는데 같은 이메일이 되면 허용이 되도록 sql문을 설계하였습니다 .
이제 이 부분인 DAO와 Service를 거쳐서 controller로 오게 되는데
파라미터는 String 형태인 email와 password를 가져오면서 진행을 합니다
@RequestMapping(value = "login", method = RequestMethod.POST)
public ModelAndView login(@RequestParam("email") String email, @RequestParam("password") String password) {
ModelAndView mav = new ModelAndView();
try {
memeberservice.login(email, password);
Integer id = memeberservice.selectuserid(email);
System.out.println(id);
session.setAttribute("id", id);
mav.setViewName("redirect:/");
}catch(Exception e) {
e.printStackTrace();
mav.addObject("err", e.getMessage());
mav.setViewName("member/err");
}
return mav;
}
1. method는 email와 password를 요청하여 결과를 가져와야하기에 POST로 설정합니다
2. ModelAndView를 사용하여 화면의 전환을 성공시에는 메인페이지로 가져오고 그렇지 않을 경우 err페이지로 오게끔하였습니다.
3. session에는 userID를 넣어서 다른유저들과의 구분을 주었습니다
자 그럼 여기서 userId를 어떻게 가져왔냐
Integer id = memberservice.selectuserid(email)을 통해서 가져왔습니다 .
시작은 memberDTO에서 userId를 가져오기 위핸 sql문을 먼저 작성하였습니다 .
이것또한 역시 MVC패턴을 거쳐서 Controller로 오게되는데 login을 할때 userId를 가져와주면서 session에 넣어줍니다 .
사실..이 블로그를 적다보니 세션이 정확하게 뭔지 궁금해졌다..
그래서 공부를 ... ㅎ
세션이란?
세션의 종류는 여러가지가 있는데 일단 우리웹사이트개발프로젝트에서 사용하는 세션은 웹 세션일 가능성이 매우 높다(물론... localhost로 서버 연동을 하기는하지만 서로연결하는게 아닌 로컬에서 진행되는경우이므로 네트워크세션이랑은 거리가 멀다)
한마디로 웹 세션은 사용자가 이 사이트를 이용하고있다는 흔적 또는 상태인것이다
웹 사이트 또는 웹 응용 프로그램과 상호 작용하는 사용자의 상태를 유지하는데 사용된다는 개념인데 대부분 고유번호인ID 로 사용하는 경우가 많다. 사용자가 웹 사이트를 탐색하는 동안에 쿠키 또는 URL매개변수를 통해 전달될 수도 있고 웹 새션은 로그인상태, 장바구니 정보, 페이지 상태 등을 추적하기 위해 사용됩니다.
이것이 바로 session이라고 한다.
그렇다면 우리프로젝트에서는 sesison을 어떻게 사용하고 있냐
바로 jsp에서 로그인 - > 로그아웃
회원가입 버튼 out
마이페이시 생성 등 웹상에서 시각적으로 나타내는 인터페이스의 변화를 줄 때 많이 사용되었습니다( 마이페이지는 select을 통해서 가져옴!)
일단 로그인 부분만 본다면
${sessionScope.id eq null }
이부분은 한마디로 session에 id가 없다면 로그인버튼이 생성이되는것이고 session에 존재한다면 로그아웃응로 바꾼다 이런 의미이다. 이런식으로
로그인부부는 완료를 하였다!
'프로젝트' 카테고리의 다른 글
Spring mini project 검색 로직 만들기 (0) | 2023.06.25 |
---|---|
Spring mini project 관광지 검색 페이지 (0) | 2023.06.24 |
Spring mini project 비밀번호 일치 여부 and 로그인 (0) | 2023.05.29 |
Spring mini project 회원가입 이메일 인증 (0) | 2023.05.29 |
Spring mini project 회원가입 닉네임 중복체크 (0) | 2023.05.29 |