202401to07
  • 2024.03.08.금.day45
    2024년 03월 10일 20시 48분 22초에 업로드 된 글입니다.
    작성자: 202401to07

    DemoProject코드분석 순서 및 방법

    1.controller 
    -어떤 파라미터 request.getParameter : 어디로 전달하는 파라미터인지, 어떤 값인지
    -어떤 Attribute: request.setAtrribute

    community패키지의 controller분석하기
    1. ListController: [GET] 페이지 번호를 클릭할 때마다 새로운 페이지번호 
          request.getServletPath(): 현재 요청된 URL의 서블릿 경로를 문자열 형태로 반환
       
          request.setAttribute(속성,값) : 실행값을 속성에 넣는다
             JSP 페이지에서 속성이름으로 해당 데이터에 접근할 수있다
             1. list.jsp    :글목록/페이지번호버튼(103-123라인)
                <a class="pagenum ieach" href="?page=${i }"><c:out value="${i }"/></a>
             2. read.jsp   :글읽기/목록버튼(67라인)
                <a class="button" href="list?page=${page }">목록</a>
             3. write.jsp:글쓰기/목록버튼(43라인)
                <button type="button" onclick="location.href='list?page=${(page eq null)?1:page}'">목록</button>
                : 페이지값없으면1 있으면 attribute값
          1. request.setAttribute("list", dao.pagelist(map));:요청한 페이지의 글목록
          2. request.setAttribute("paging", paging); :요청 페이지 번호
          3. request.setAttribute("today", LocalDate.now());: 현재날짜 (list.jsp 62라인)
          request.getParameter(이름): 이름에 해당되는 파라미터를 문자열로 반환하여보여줌

          Integer.parseInt() : 문자열->정수로 변환
          Paging(현재페이지,글총갯수,1페이지당글갯수)
          map.put("start",paging.getStartNo());
          map.put("end",paging.getEndNo()); : Map에 키와값을 짝지어 넣는다
          request.getRequestDispatcher("list.jsp"); :현재 요청과 연결된 RequestDispatcher 객체를 생성하고
                   전달할 JSP 파일의 경로("list.jsp")를 지정
          dispatcher.forward(request, response); : 앞서 생성한 RequestDispatcher를 사용하여 
                   현재 요청(request)과 응답(response)을 "list.jsp"로 전달
          정리  
          ListController의 파라미터: 1. page
          ListController의 애트리뷰트 :1. list 2. paging 3. today

    2. ReadController [GET] : 글목록의 제목을 클릭하면 옴
          list.jsp 의 47라인
          <a href="read?idx=${vo.idx }&page=${paging.currentPage}" class="title"><c:out value="${vo.title }"/></a>
       
          1. request.getParameter("idx"); : 요청글의 idx값
          2. request.getParameter("page"): 요청글의 페이지위치

          Long.parseLong() : 문자열->long 타입 변환
       
          1. request.setAttribute("vo", vo);   : idx로검색한 글 객체
          2. request.setAttribute("cmtlist", cmtlist);: 요청idx의 댓글목록
          3. request.setAttribute("page", request.getParameter("page"));:요청글의 페이지위치
                ListController의 page->list.jsp->read.jsp전달
          response.sendRedirect(): 다른페이지로 리다이렉트
          정리 
           ReadController의 파라미터: 1. idx 2. page
           ReadController의 애트리뷰트 1. vo 2. cmtlist 3. page

    3. WriteViewController [GET]
          1. request.setAttribute("page",request.getParameter("page"));
          정리 
          WriteViewController 의 파라미터: 1. page

       사용자 브라우저가 서버 http://locaslhost:8088/DemoProject url로 처음 요청을 보내면
       톰캣은 이 브라우저를 식별하기 위해서 JSESSIONID 값을 생성하고 (JESESSIONID,생성값) 한쌍을
       브라우저 쿠키 저장소에 저장하도록 응답을 보낸다.
       
       그 이후에는, 사용자 브라우저가 동일한 url로 요청을 보낼때마다,
       JESESSIONID값을 함께 서버로 보낸다.
       서버는 JESESSIONID 값이 같으면 동일세션이라고 취급한다.
       애트리뷰트를 session scope에 저장하면, JESESSIONID 값이 같은 동안에는 애트리뷰트값이 유지가 된다.

       쿠키, 로컬스토리지,세션저장소는 브라우저에 저장되는것이다.서버에 저장되는것이 아니다.
       session 애트리뷰트는 서버에 저장된다.

    4.WriteController [POST] : 글쓰기 저장
    5.LoginViewController
    6.LoginActionController
    7.LogoutController
    8.UpdateViewController
    9.UpdateController
    10.DeleteController
    11.CommentsController
    12.BookCaseListController
    13.BoolCaseFromController
    14.BookCaseSaveController

    '보안' 카테고리의 다른 글

    2024.03.12.화.day47  (0) 2024.03.12
    2024.03.11.월.day46  (0) 2024.03.11
    2024.03.07.목.day44  (0) 2024.03.08
    2024.03.06.수.day43  (0) 2024.03.06
    2024.03.05.화.day42  (0) 2024.03.05
    댓글