본문 바로가기

국비

(121)
01.31 국비학원 82일차 (평가9) 서버프로그램구현 평가날이었다. 그동안 항상 서술형 + 다른 유형 형태로 봤었는데 처음으로 서술형 없이 평가자체크리스트 + 문제해결시나리오 조합이었어서 푸는데 시간이 꽤나 소요됐다. 평가 점수를 확인하고 싶지만... 하루가 지난(게다가 밤인 시각..) 이 시점에도 아직 채점 완료가 안됐다^^^ 둘 중에 하나만 나왔는데 req.getRequestDispatcher(req.getContextPath() + "/boardList.jsp"); 라 잘못 작성하여 이거 하나로 10점이나 깎였다 흑ㅜㅜ req.getRequestDispatcher 는 forward로 내부 서블릿,JSP 으로 실행 권한을 넘길 때 사용하는 것으로 contextpath를 작성하게 되면 오히려 오류가 난다.
01.30 국비학원 81일차 (jsp페이지 모듈화, 계정별 role 부여, 관리자 페이지) JSP 페이지 모듈화 : 공통된 기능 및 디자인을 가지는 부분을 별도의 JSP 파일로 분류하여 모듈화 하고 사용하기 위한 방법 1. - include 한 JSP 페이지의 코드를 포함시킨 후 컴파일 및 실행 - 변수 공유 가능 : servlet 에서 req.getRequestDispatcher 로 포워드되는 특정 jsp 안에 include 코드가 다른 jsp 파일을 지칭하는데, 그 파일을 실행하지 않고 가지고만 온다. 가지고 온 후 컴파일 및 실행하여 HTML 코드를 생성한다. 2.
01.27 국비학원 80일차 (게시글-추가,수정,삭제) ---------------------------------------------------------------웹페이지 기능 구현 이어서-------------------------------------------------------------- 4 - 상세 페이지 구현 세션을 활용하여 세션에 같은 id 기록이 있으면 조회수가 한번만 증가할 수 있도록 설정 if문 → 세션 생길 때 만들어진 boardViewHistory 속성을 가져와 history에 저장 하는데, 만약 history에 해당 id 가 없다면, 서비스의 upViewCnt 메서드를 이용해 조회수를 올리고 history 에 id 를 추가하고 변경된 history 값을 다시 세션의 boardViewHistory 속성을 설정한다. ---조회수를..
01.26 국비학원 79일차 (게시글-목록페이지) Paging의 setPageList() 메서드 변경 → 활성화 페이지가 가운데에 배치되도록 함 ▶웹 페이지 기능 구현 순서 (순서는 절대적인 것이 아니라 숙련도에 따라 작업하면 된다) 1. 구현하는 기능에 필요한 데이터베이스 테이블 구조를 먼저 작성한다. 2. 생성된 테이블에 초기 데이터를 추가한다. 3. 구현 기능에 필요한 페이지를 나열한다. - 목록 페이지 : 테이블에 저장된 전체 데이터를 조회하여 보여주기 위한 페이지. 페이징 처리를 통해 일부만 출력 - 상세 페이지 : 특정 데이터를 상세하게 보여주기 위한 페이지 - 추가 페이지 : 데이터를 추가할 수 있는 폼(form)을 제공하는 페이지 - 수정 페이지 : 데이터를 수정할 수 있는 폼(form)을 제공하는 페이지 - 삭제 페이지 : 삭제할 데이터..
01.25 국비학원 78일차 (페이징 클래스 생성 후 적용) 페이징 클래스 생성하여 방명록, 북마크 등 모든 페이지에 페이징 적용 북마크 목록은 사용자별로 다르게 설정해두었으니 userId 별 조회가 필요하다. 페이징 클래스 및 부트스트랩 적용한 jsp ↓↓↓↓↓↓↓ > 목록 수 5개, 페이지 번호 수 5개로 설정 했을 때 첫 페이지 (prev 비활성화) > next 버튼을 눌렀을 때 두번째 페이지로 이동. 목록 변화 > 총 6개의 페이지를 가질 때 (페이지 번호 5개 제한) 에서 점점 줄어듦 > 목록 수 10개로 설정했을 때의 브라우저 (페이지 번호 제한은 변경하지 않았으나 총 개수에 맞추어 줄어듦)
01.20 국비학원 77일차 (필터, 페이징) 필터(Filter) - HTTP Request/HTTP Response 와 관련하여 여러 작업을 서블릿에 전달하기 전/후로 처리하기 위해 사용하는 기능 - 사용자 인증 및 로그 기록에 활용 가능 - Filter 인터페이스를 implements 하여 사용하며 @WebFilter 어노테이션 또는 web.xml 의 , 태그를 사용하여 등록한다 (서블릿 등록 방식과 동일) loggingFilter filter.LoggingFilter loggingFilter /* - 필터는 다수의 URL 패턴에 일치하여 동작시킬 수 있다. - 여러개의 필터를 생성하여 순차적으로 필터를 거쳐서 서블릿에 전달되도록 할 수 있는데, 이 경우에는 web.xml에 필터를 등록하여 먼저 등록한 순서대로 동작하는 방식으로 제어한다. - 필..
01.19 국비학원 76일차 (리스너) 리스너(Listener) - 서블릿 컨테이너에서 발생하는 이벤트에 대한 처리를 할 수 있는 기능 - Context 객체, Session 객체, Request 객체에 대한 생성/소멸 및 속성 추가/수정/삭제 에 대한 동작을 이벤트로 감지하고 처리할 수 있게 도와준다. (이러한 이벤트가 발생함과 동시에 특정 행동(메서드나 함수 실행)을 하는데 이를 이벤트 핸들링 이라 한다.) - @WebListener 어노테이션으로 등록 하거나 web.xml 에 태그를 사용하여 해당 기능을 등록한다. // 패키지명.클래스명 listener.MyServletContextListener - ServletContextListener, ServletContextAttributeListener, HttpSessionListener,..
01.18 국비학원 75일차 (쿠키(Cookie), 세션(Session)) 쿠키와 세션 쿠키(Cookie) - 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 사용하는 방법으로 활용하는 것 - 클라이언트에 저장된 정보이기 때문에 보안에 취약 - 클라이언트 브라우저에서 사용 유무를 설정 가능 - 도메인당, 경로당 쿠키가 만들어진다 (현재 프로젝트 상에선 /localhost:8080/web01/ 하위에 있으면 따로 요청하지 않아도 쿠키 정보가 전달됨) - ex. 로그인 할 때 '아이디 저장하기' 에 활용 Cookie cookie = new Cookie("name", "value"); // (쿠키명, 쿠키값) cookie.setMaxAge(60 * 60 * 24); //쿠키 유효시간 설정(초단위) resp.addCookie(cookie); //쿠키 담기 세션(Sessi..