BackEnd263 [Servlet, JSP] Servlet Life Cycle : Servlet 생명 주기 인터넷에서 찾을수 있는 글 중에서 가장 자세하게 설명하려 노력하였습니다. 진짜 영혼을 갈아서 설명해 보았습니다. 도움이 되셨다면 좋아요 하나 부탁해요~~ Servlet Life Cycle " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 클라이언트가 Servlet에 요청을 하면, Servlet은 바로 호출이 되지 않습니다. Servlet은 객체를 생성하고 초기화 작업을 거친 후, 요청을 처리하는 생명 주기를 갖고 있습니다. 우선 다음 그림을 살펴봅시다! ◆ 클라이언트로부터 처리 요청 받음 클라이언트가 웹 브라우저를 통해 요청을 보내면 웹서버가 이를 받아서 요청 정보안에 있는 헤더안에 있는 URI를 분석합니다. 이때 요청받은 페이지가 서블릿 이면 서블릿 컨테이너에게 처리를 넘.. BackEnd/Servlet, JSP 2022. 1. 14. [Servlet, JSP] MVC : Model View Controller MVC (Model View Controller) " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 MVC 패턴은 어플리케이션을 3가지 영역, 즉 Model, View, Controller 로 구분하여 작업함으로써, 서로간의 결합도를 최소화 하고 유지보수성을 높이며, 개발자들이 각각 맡은 영역에만 집중할 수 있게 하는 장점이 있습니다. ◆ View 클라이언트 와 서버같의 인터페이스 역할을 담당함으로써 클라이언트의 요청을 받거나 처리된 결과를 보여줍니다. HTML, CSS, JSP 드을 사용하여 구현. ◆ Controller View 와 Model을 연결하는 중계 역할을 하며, 클라이언트가 전달한 파라미터를 추출하여 Model로 전달하고, 처리 결과를 View에게 넘겨주는 기.. BackEnd/Servlet, JSP 2022. 1. 13. [Servlet, JSP] FilterConfig, FilterChain FilterChain " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 FilterChain은 필터가 실행될 때 doFilter() 메소드의 세번째 인자로 전달되는 객체 입니다. web.xml 파일에서 설정한 에 대한 정보를 가지고 있죠! 즉, 클라이언트의 요청에 대한 필터들의 실행순서를 알고있는 객체인거죠. 이렇게 흐름을 제어할 수 있는 객체가 FilteChain 입니다. void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 한글 처리 필터 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 전달받은 페이지에서 한글 처리를 해야 하는데, 한글이 필요한.. BackEnd/Servlet, JSP 2022. 1. 13. [Servlet, JSP] RequestDispatcher와 요청 재지정 RequestDispatcher " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 RequestDispatcher 객체에서 제공하는 메소드를 이용하여 요청 재지정을 할때는 재지정하는 자원이 반드시 현재 자원과 동일한 웹 어플리케이션에 있어야만 합니다. 우성 재지정 메소드를 확인해 봅시다. 1) forward(ServletRequest request, ServletResponse response) : 요청을 다른 자원으로 넘긴다. 2) include(ServeltRequest request, ServletResponse response) : 다른 자원의 처리 결과를 현재 페이지에 포함시킨다. RequestDispatcher 객체 생성 " data-ke-type="html"> .. BackEnd/Servlet, JSP 2022. 1. 13. [Servlet, JSP] Session과 login, logout 구현하기 Session 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 HTTP를 이용하여 클라이언트가 서버와 통실할때 서버측에 생성되는 "상태정보"를 세션이라 부릅니다. 세션은 HttpSession 인터페이스로 표현되며, HttpServletRequest의 getSession()을 통해 객체로 생성될 수 있습니다. 세션 객체가 생성될때 요청보내온 클라이언트의 정보, 요청시간, 등을 조합하여 세션ID 가 부여되며, 이 세션ID 는 클라이언트 측에서 쿠키로 저장됩니다. 세션 객체는 서버 측에 저장되며, 이후 사용자가 서버에 접근할때 세션ID를 이용하여 세션 객체에 접근합니다. 로그인/로그아웃 form 작성 " data-ke-type="html"> HTML 삽입 미리보기할 수 .. BackEnd/Servlet, JSP 2022. 1. 13. [Servlet, JSP] Servlet 과 Cookie Cookie 란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 쿠키란 서버가 클라이언트에 저장하는 정보로서 클라이언트 쪽에 필요한 정보를 저장해 놓고, 필요할 때 추출하는 것을 지원하는 기술 입니다. 클라이언트와 연결이 끊어져도 클라이언트 개인마다 상태정보를 유지하고자 할때 사용하는 기술 입니다. (이는 HTTP의 stateless 한 특성 때문에 사용되는 기술 입니다.) 이후 서버 방문시 요청정보의 헤더에 포함되어 전달됩니다. 쿠키는 name 과 value로 구성된 정보이며, 필요에 따라 쿠키 유지시간, 유효 디렉터리, 유효 도메인 등 속성또한 정할 수 있습니다. 다만 사용자 브라우저에 저장되기에 용량에 제한이 있고, 클라이언트에 저장된 쿠키를 직접 접근할수 있기때문.. BackEnd/Servlet, JSP 2022. 1. 13. [Design Patterns] Compound Pattern : 컴파운드 패턴 Compound Pattern 이란? 일련의 패턴을 함께 사용하여 다양한 디자인 문제를 해결하는 것을 컴파운드 패턴 이라고 부릅니다. 다만 패턴 몇개를 결합해서 쓴다고 무조건 컴파운드 패턴이 되는 것은 아닙니다. 컴파운드 패턴이라면 여러가지 문제를 해결하기 위한 용도로 쓰일수 있는 일반적인 해결책이여야 합니다. 패턴 소개 Compound Pattern의 대표적인 예인 MVC 패턴에 대하여 글을 작성하였습니다. 함께 보실까요? iTunes같은 MP3 플레이어를 사용한다고 해봅시다. 소프트웨어 에서 제공해주는 인터페이스를 사용하여 새로운 노래를 추가하거나 재생목록을 관리하거나 트랙 이름을 바꿀 수 있습니다. 다양한 데이터가 들어있는 DB는 그 소프트웨어에서 알아서 관리해 줍니다. 곡을 재생하고, 재생중인 곡.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Proxy Pattern : 프록시 패턴 Proxy Pattern 이란? Proxy Pattern - 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴 위의 정의에서 접근을 제어하는 프록시는 어떤 것 일까요? 아래에서 배울 뽑기 기계의 경우 프록시가 원격 객체에 대한 접근을 제어하고 있다고 생각하면 됩니다. 원격 프록시가 접근을 제어해서 네트워크 관련사항들을 챙겨줬다 할 수 이는거죠. 대표적인 접근을 제어하는 방법을 알아봅시다. ▶ 원격 프록시를 써서 원격 객체에 대한 접근을 제어할 수 있습니다. ▶ 가상 프록시를 써서 생성하기 힘든 자원에 대한 접근을 제어할 수 있습니다. ▶ 보호 프록시를 써서 접근 권한이 필요한 자원에 대한 접근을 제어할 수 있습니다. 클래스 다이어그램도 한번 살펴볼까요? Pr.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] State Pattern : 스테이트 패턴 State Pattern 이란? State Pattern - 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀 수 있습니다. 마치 객체의 클래스가 바뀌는 것과 같은 결과를 얻을 수 있습니다. 이 패턴에서는 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위임하기 때문에, 내부 상태가 바뀜에 따라서 행동이 달라지게 된다는 것을 알 수 있습니다. "클래스가 바뀌는 것과 같은" 결과를 얻는다는 것이 어떠한 의미일까요? 클라이언트 입장에서 생각해봅시다! 만약 클라이언트가 사용중이던 객체의 행동이 완전히 달라진다면 마치 다른 클래스로부터 만들어진 객체처럼 느껴지겠죠? 물론 실제로 바뀌는 것은 아니고 여러 상태객체를 바꿔가면서 사용하는 방식입니다. Context라는 클래스에는 여러가지.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Composite Pattern : 컴포지트 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Composite Pattern 이란? Composite Pattern - 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있습니다. 이 패턴을 이용하면 Client에서 개별 객체와 다른 객체들로 구성된 복합객체(composite)를 똑같은 방법으로 다룰 수 있게됩니다. 패턴 소개 다음과 같이 Iterator 를 활용하여 메뉴를 출력하는 코드가 있다고 해봅시다. 이 코드들은 이전 글인 Iterator 에서 나왔던 코드들 입니다. 기억 하시죠? import java.util.Iterator; public class Waitress { Menu pancakeHou.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Iterator Pattern : 이터레이터 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Iterator Pattern 이란? Iterator Pattern - 컬랙션 구현 방법을 노출시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해주는 방법을 제공 이 패턴을 사용하면 컬랙션 내부에서 어떤 방식으로 일처리가 되는지 전혀 모르는 상태에서 그 안의 모든 원소들에 접근할 수 있게됩니다. 컬랙션 객체안에 들어있는 모든 원소들에 대한 접근방식이 공통되어있다면 어떤 종류의 컬랙션 에서도 사용할 수 있는 다형적인 코드를 만들 수 있기 때문이죠! 또한 반복자(Iterator)를 활용하면 모든 항목에 접근하는 일을 컬랙션 객체가 아닌 반복자 객체에 책임을 위임한게.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Template Method Pattern : 템플릿 메소드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Template Method Pattern 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Template Method Pattern - 메소드에서 알고리즘의 골격을 정의합니다. 알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정 단계를 재정의 할 수 있습니다. 이 패턴은 일련의 단계들(메소드들의 순서) 로 알고리즘을 정의한 메소드 입니다. 메소드들을 어떤 순서로 호출하는지가 알고리즘이라 할 수 있겠습니다! 여러 알고리즘의 단계(메소드) 가운데 하나 .. BackEnd/Design Patterens 2022. 1. 13. 이전 1 ··· 18 19 20 21 22 다음