servlet

    [JSP & Servlet] 프로젝트 관리

    글을 작성하면서 DataBinding 하는 부분은 빼고 작성하도록 하겠다. 이 부분은 작성하지 않아도 코드를 수정하여 충분히 구현할 수 있을 것이라 본다. 📌테이블 생성 멤버(Members) 테이블 CREATE TABLE members( mno INT PRIMARY KEY, --회원일련번호 email VARCHAR(40) NOT NULL,--이메일 pwd VARCHAR(100) NOT NULL, --암호 mname VARCHAR(50) NOT NULL,--이름 cre_date DATETIME NOT NULL,--가입일 mod_date DATETIME NOT NULL --마지막암호변경일 ) COMMENT '회원기본정보'; CREATE UNIQUE INDEX UIX_MEMBERS ON members( --회..

    필터(Filter) 사용하기

    필터(Filter)란? 필터는 서블릿 실행 전후에 어떤 작업을 하고자 할때 사용하는 기술이다. 예를 들어 서블릿이 실행되기 전 자원이 필요하다거나, 모든 각 서블릿에 한글 인코딩 , 시간 측정등과 같은 반복적으로 처리해야 하는 공통 작업을 미리 필터에서 처리하여 번거로움이 줄어든다. 필터는 용도에 따라 2 가지로 나뉜다. 요청 필터 인코딩 기능 사용자 인증 및 권한 검사 요청 시 요청 관련 로그 작업 응답 필터 서비스 시간 측정 응답 결과에 대한 암호화 작업 필터 관련 API javax.servlet.Filter init(): 필터 생성 시 컨테이너에 의해 호출되어 초기화 작업을 수행 doFilter(): 요청/응답 시 컨테이너에 의해 호출되어 기능을 수행 destory(): 필터 소멸 시 컨테이너에 의..

    MVC 패턴 (Model, View, Controller)

    MVC 패턴 (Model, View, Controller)

    📌MVC 패턴 개요 WebProgramming 카테고리에서 Servlet부분을 보면 알겠지만 처음 서블릿이 나왔을 때 클라이언트의 요청 처리를 서블릿 홀로 담당하는 올인원 방식이었다. 서블릿이 요청 데이터 처리도하고 비즈니스 로직 및 데이터 처리도 하고 결과 화면도 생성한 것이다. 이는 장점도 있지만 규모가 커지게 되거나 시스템 변경이 잦은 경우에는 오히려 유지 보수가 어려워 운영 비용이 증가하게 된다. 따라서 요즘같은 글로벌 환경에는 서블릿 홀로 담당하는 올인원 방식이 적합하지 않다. 시스템 변경이 잦은 상황에서 유지 보수를 보다 쉽게 하기 위해서는 중복 코드의 작성을 최소화하고 코드 변경이 쉬워야 한다. 이를 위해 기존 코드의 재사용성을 높이는 방향으로 설계를 해야했고 특히 객체지향의 특성을 활용하여..

    [Servlet] 쿠키(Cookie)

    쿠키(Cookie)란? 쿠키(Cookie)란 클라이언트측에서 관리되는 정보를 의미한다. 세션과의 차이를 비교해보면 세션은 서버측에서 관리되지만 쿠키는 클라이언트에 정보가 저장된다. 또한 쿠키의 정보는 세션과 달리 브라우저를 종료한다고 해도 생존 기간이 지정되면 생존기간 동안 데이터가 사라지지 않는다. 쿠키(Cookie)는 하드디스크에 파일로 저장되기 때문에 그 파일이 남아있는 한 쿠키는 항상 유지된다. 하지만, 쿠키(Cookie)는 클라이언트에서 관리되기 때문에 보안적으로 매우 취약한 면을 가지고 있다. 하드디스크에 있는 쿠키 파일을 수정할 염려가 있기 때문이다. 쿠키를 파일에 저장하는 형태가 아닌 브라우저에 저장하는 형태(세션 쿠키)도 가능하지만 보안이 필요한 정보는 쿠키(Cookie)를 사용하지 않고..

    [Servlet] 세션(Session)

    [Servlet] 세션(Session)

    세션(Session)에 동작 흐름에 대한 자세한 설명은 아래에 포스팅했으므로 보고 오는 것이 이해하는데 더 도움될 것이다. https://yeo-computerclass.tistory.com/110?category=1269285 [JSP & Servlet] 세션(Session) 📌세션(Session) 이란? 세션의 개념을 이해하기 위해선 HTTP 프로토콜의 특성부터 이해해야 한다. HTTP 프로토콜의 대표적인 특징 중의 하나는 상태를 유지하지 않는 것이다. 즉, 클라이언트가 한 번 yeo-computerclass.tistory.com 세션(Session)이란? 정보가 서버의 메모리에 저장된다. 브라우저의 Session 연동은 Session Cookie를 이용한다. 브라우저 당 한 개의 Session이 주..

    [JSP & Servlet] 자바빈(JavaBean)

    [JSP & Servlet] 자바빈(JavaBean)

    📌자바빈(JavaBean)이란? 회원 가입 요청에서 회원 한 명의 정보가 들어온다. 이 때 이름 따로 주소 따로 번호 따로 데이터를 다루게 되면 각 데이터의 관련성이 없으므로 회원정보라는 클래스를 설계하여 해당 클래스에 이름,주소,번호를 속성으로 정의하여 한 명의 회원 정보로 다루는 것이 보다 객체지향적인 코드이며 효율적인 코드라는 것은 알 것이다. 다른 예시를 들어보겠다. 웹 사이트를 개발할 때 디자이너와 프로그래머가 협업을 하여 개발을 할 것이다. 그런데 프로그래머가 JSP 페이지의 이곳 저곳에 자바 코드를 입력해놓으면 디자이너 입장에서는 해당 페이지를 해석하기에 어려움을 느낄 것이다. 자바빈을 사용하면 이에 도움이 될 수 있다. 자바빈(JavaBean)은 JSP 페이지의 디자인 부분과 비즈니스 로직..

    [JSP & Servlet] 템플릿 페이지

    📌템플릿 페이지를 사용하는 이유 웹 서핑을 하다보면 웹사이트 화면 구성에서 상단 혹은 좌측 메뉴는 고정되어 있고 메뉴에 따라 메인 페이지가 변경되는 경우를 본 적 있을 것이다. 이런 경우 템플릿 페이지를 사용하면 매우 효율적이다. 만약 템플릿 페이지를 사용하지 않으면 레이아웃을 변경할 경우 작성된 페이지를 모두 새로 작성해야 한다. 즉, 템플릿 페이지는 레이아웃을 구성하고 각 영역의 내용은 다른 페이지에서 가져오므로 전체 페이지 구성 수정시에도 이 템플릿 페이지만 변환시키면 되므로 매우 편리하다. 📌템플릿 페이지의 설계 템플릿 페이지의 설계에서 중요한 것은 레이아웃 구조를 결정하는 것이다. 템플릿 페이지 자체가 레이아웃 구조나 마찬가지이기 때문이다. 템플릿 페이지 설계를 위해서는 사이트 화면의 틀이 결정..

    [JSP] JSP 액션 태그

    📌액션 태그란? 액션 태그란 JSP 페이지에서 Java 코드 등의 스크립트 언어를 사용하지 않고도 ( HTML 태그 형태로 ) 다른 페이지의 서블릿이나 자바빈의 객체에 접근할 수 있도록 태그를 이용해 구현된 기능을 말한다. 액션 태그를 통해서 개발자는 페이지의 흐름을 제어하거나 자바빈의 속성을 읽고 쓰며 애플릿을 사용하는 등의 다양한 기능을 활용할 수 있다. 또한 이런 기능들은 스크립틀릿 등의 스크립트 요소(자바 코드)를 사용하지 않기 때문에 개발자는 JSP 페이지의 내부적인 프로그램 로직을 사용자로부터 감출 수가 있다. 이 말은 즉, 액션 태그를 사용하면 사용자에게 보여지는 프레젠테이션 부분과 사용자의 요청을 처리하는 비즈니스 로직 부분(프로그램 부분)을 분리하는 것이 가능하다는 것을 의미하며, 웹 프..