서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스임. 서블릿은 자바로 작성돼 있으므로 자바의 일반적인 특징을 모두 가짐. 하지만 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servl
서블릿 API는 Servlet과 ServletConfig 인터페이스를 구현해 제공하며 GenericServlet 추상 클래스가 이 두 인터페이스의 추상 메서드를 구현함. 그리고 이 GenericServlet을 다시 HttpServlet이 상속 받음.Servlet 인터페
서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바클래스임. 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 가짐. 하지만 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 톰캣과 같은 jsp/Servlet 컨테이너에
서블릿 실행 구조클라이언트 1이 요청하면 톰캣은 FirstServlet이 메모리에 로드돼 있는지 확인함. 최초의 요청이므로 init() 메서드를 호출해 FirstServlet 인스턴스를 메모리에 로드함. 그런 다음 doGet()이나 doPost() 메서드를 호출해 서비
여러 서블릿을 web.xml에 설정할 경우 복잡해진다는 단점이 있음. 따라서 각 서블릿 클래스에 기호(@)를 이용해서 서블릿 표시를 해주면 훨씬 가독성이 좋아짐.애너테이션을 이용해 서블릿 매핑을 하려면 @WebServlet을 이용하면 됨. 그리고 애너테이션이 적용되는
포워드(forward)하나의 서블릿에서 다른 서블릿이나 jsp와 연동하는 방법임. 한마디로 포워드 기능은 서블릿에서 다른 서블릿이나 jsp로 요청을 전달하는 역할을 함. 그리고 이 요청(request)을 전달할 때 추가 데이터를 포함시켜서 전달할 수도 있음. 모델2 개
앞 절에서 서블릿에서 다른 서블릿으로 포워딩 할 때 get 방식으로 전달하는 방법을 알아 봤는 데, 전달하는 데이터 양이 적을 떄는 이 방법이 편리함, 하지만 서블릿에서 조회한 대량의 상품 정보를 jsp로 전달할 때는 jsp로 전달할 때는 get 방식이 불편함. 따라서
ServletContext 클래스는 톰캣 컨테이너 실행 시 각 컨텍스트(웹 애플리케이션)마다 한 개의 ServletContext 객체를 생성함. 그리고 톰캣 컨테이너가 종료하면 ServletContext 객체 역시 소멸 됨.ServletContext 객체는 웹 애플리케
서블릿은 브라우저에서 최초 요청 시 init() 메서드를 실행한 후 메모리에 로드되어 기능을 수행함. 따라서 최초 요청에 대해서는 실행 시간이 길어질 수밖에 없음. 이런 단점을 보완하기 위해 이용하는 기능이 load-on-startup임.load-on-startup의
웹 페이지 연결 기능보통 웹 프로그램에서 사용되는 정보는 서블릿의 비즈니스 로직 처리 기능을 이용해 데이터베이스에서 가져옴. 그러나 동시 사용자 수가 많아지면 데이터베이스 연동 속도도 영향을 받게 되므로 정보의 종류에 따라 어떤 정보들을 클라이언트 PC나 서버의 메모리
쿠키는 사용 시 웹 페이지들의 정보가 클라이언트 PC에 저장되므로 정보가 쉽게 노출될 수 있다는 단점이 있는 반면, 세션은 서버의 메모리에 생성되어 정보를 저장함. 따라서 웹 페이지에서 사용되는 정보 중에 로그인 정보처럼 보안이 요구되는 정보는 대부분 세션을 이용함.세
클라이언트 쿠키의 생성 상태를 크롬에서 확인하는 방법.크롬 브라우저를 실행하고 f12를 눌러 디버그창을 나타냄. 그리고 상단 메뉴 바에서 Application을 클릭함.왼쪽 메뉴에서 Cookies를 선택한 후 하위에 있는 http://localhost:8090
앞 절에서는 쿠키와 세션 기능을 알아봤음. 세션 역시 클라이언트의 세션 쿠키를 이용해 각 브라우저에 대한 세션 기능을 사용함. 그런데 만약 브라우저에서 쿠키 기능을 사용할 수 없게 설정했다면 쿠키 기능은 물론 세션 기능도 사용할 수 없음. 이럴 때는 encodeURL(
서블릿 속성이란 다음 세 가지 서블릿 API 클래스에 저장되는 객체(정보)라고 보면 됨.ServletContextHttpSessionHttpServletRequest각 장은 앞 장에서 이미 사용해 봤음. 서블릿의 API의 setAttribute(String name,
필터브라우저에서 서블릿에 요청하거나 응답할 때 미리 용청이나 응답과 관련해 여러 가지 작업을 처리하는 기능. 프로그래밍을 하다가 한글 인코딩처럼 각 서블릿에서 반복적으로 처리해야 하는 작업이 있을 수 있는데, 이런 경우 서블릿의 공통 작업을 미리 필터에서 처리하면 반복
자바 GUI에서는 마우스 클릭과 같은 이벤트발생 시 여러 가지 이벤트 핸들러를 이용해 화면의 기능을 구현함. 이처럼 서블릿에서도 서블릿에서 발생하는 이벤트에 대해 적절한 처리를 해주는 여러 가지 리스너를 제공함.ServletContextAttributeListenerC