◆ 템플릿 페이지(template page)

  • 홈페이지를 상(header), 컨텐츠(main), 하단(footer)으로 구분하여 생성 후 불러온다.
  • 상단과 하단은 별도의 페이지로 만든 뒤 불러오도록 처리한다.
  • (주의) 템플릿 페이지는 어디서 실행될 지 모르므로 상대 경로 사용 금지!

◆ <jsp:include>

  • jsp가 제공하는 설정 중에 <jsp:include>라는 설정이 있다.
  • 이를 사용하여 상단(header), 하단(footer) 템플릿 페이지를 불러온다.
    <jsp:include page="/WEB-INF/views/template/header.jsp"></jsp:include>
    본문 내용 기입
    <jsp:include page="/WEB-INF/views/template/footer.jsp"></jsp:include>

◆ 페이지 접근 방법

  1. 일반적인 접근 : 메뉴 또는 회원가입 완료 페이지의 링크로 이동
  2. 로그인 실패 시 리다이렉트로 이동
    • 구분을 하기 위해서 2번의 경우 파라미터에 mode=error를 추가했다.
    • 파라미터를 검사해서 로그인 실패인 경우 추가 메세지를 출력한다.
    • JSP에서 파라미터를 직접 읽으려면 ${param.이름}과 같이 작성한다.
    • ${param.mode}는 파라미터 중 mode라는 항목의 값을 불러오라는 의미이다.
    • EL은 equals() 대신 ==로 문자열 비교가 가능하다.
    • EL은 문자열을 쌍따옴표("") 또는 외따옴표('') 구분하지 않고 사용한다.

◆ HttpSession

  • 사용자가 최초 접속하면 자동으로 사용자에게 할당되는 저장 공간이다.

  • 서버가 사용자를 구분하는 척도이다.

  • @Controller에서 선언만 하면 사용이 가능하다.

  • 세션에 데이터를 추가하면 해당 사용자(브라우저)에서만 유효하다.

  • 일정 시간 동안 아무런 접속이 없는 세션은 소멸(기본값 30분, 조절 가능)

  • 세션은 key=value 저장소이다. (Model과 동일하다.)

  • 설정 : sessoion.setAttribute(key, value);

  • 삭제 : session.removeAttribute(key);

  • 확인 : session.getAttribute(key); ---> value

  • 로그인이라 함은 사용자의 어떤 정보를 세션에 넣어두는 행위를 말한다.

  • 로그아웃이라 함은 저장된 세션 정보를 삭제하는 행위를 말한다.

◆ 마이페이지 생성

  • 마이페이지 - 회원 전용 기능
  1. 세션에서 회원ID 추출
  2. 추출한 ID로 대상의 정보를 상세조회
  3. 상세 조회한 결과를 Model에 첨부 @GetMapping("/mypage")
    public String mypage(HttpSession session, Model model) {
    String memberId = (String)session.getAttribute("memberId"); //1번, (String)을 사용하여 다운캐스팅
    MemberDto memberDto = memberDao.selectOne(memberId); //2번
    model.addAttribute("memberDto", memberDto); //3번
    return "/WEB-INF/views/member/mypage.jsp";
    }
profile
Backend Developer

0개의 댓글

Powered by GraphCDN, the GraphQL CDN