Business Logic : 사용자의 데이터를 처리하고 결과를 생성하는 코드 = Model (POJO : Plain Old Java Object)
Presentation Logic : 사용자에게 보여지는 화면 = View
Model 과 View 를 연결하여 흐름 제어를 수행하는 로직 = Controller
Web Server = Apache 등
WAS ( Web Application Server) = Apache Tomcat, WebLogic 등
=> Web Container + Web Server
사용자 요청(Servlet or JSP) 웹서버 -> 웹컨테이터(톰캣) -> 웹서버 -> 사용자 응답
Servlet = 웹 서버 상에서 실행되는 자바의 클래스 파일 (Server Side Aplet)
사용자의 URL 요청이 서블릿 요청(Login.do, Write.bo ...) 이라는 것을 웹 서버가 알기 위해서는 사전에 웹서버측에 URl 과 서블릿 클래스를 미리 매핑시켜놓은 배포 서술자(Deployment Descriptor) 가 필요하다
웹 서버가 알아챌 수 있도록 적어놓은 파일 이라고 생각 하자!
HTTP 의 요청 방식이 get 일경우 doGet() 메서드 post 일경우 doPost() 메서드가 request, response 객체를 파라미터로 자동으로 호출된다.
서블릿/JSP 는 자바를 기반으로 만들어졌기 때문에 철저히 객체 지향적이며 플랫폼 독립적인 자바의 장점을 그대로 웹에서 구현할 수 있으며 스레드 기반의 요청 처리 방식을 채택했기에 사용자가 많을수록 효율적으로 동작하는 기술이다.
유연하고 확장성이 좋으며 유지/보수 효율이 뛰어난 웹프로젝트의 개발 언어이다.
MVC패턴(모델2)을 사용할 경우 JSP(View) 와 자바빈즈(Model) 그리고 서블릿(Controler)을 이용해 효율적으로 구현할 수 있다. 프로젝트가 커지더라도 View 부분과 Model 부분의 분업으로 훨씬 더 효율적인 개발이 가능하며, 자바빈즈를 사용한 비즈니스 로직을 분리하여 컴포넌트화 할 경우 공통되는 로직의재사용이 가능하게 되어 생산성이 매우 높아지게 된다
서블릿은 반드시 javax.servlet.Servlet 인터페이스를 구현(Implements)해서 작성해야만하며 입력과 출력을 Request 와 Response 의 형태로 다룬다는 점만 다를뿐이다.(Servlet 인터페이스를 구현한 HttpServlet 클래스를 상속 받아도됨)
웹서버는 URL주소의 해석을 맡아주는 HTTP 서버와 서블릿 클래스 또는 JSp파일의 실행 요청을 처리해 주는 웹 컨테이너로 구성된다.
웹 서버가 사용자의 요청이 서블릿 요청이라는 것을 알기 위해서는 배포 서술자라는 것이 필요하다. 배포 서술자를 통해 서블릿 요청임을 알게 되면 웹 컨테이너는 서블릿 인스턴스의 유무를 검사해 없을 경우 인스턴스를 생성하고 초기화한다. 생성된 인스턴스 내에 각각의 서블릿 요청마다 하나씩의 스레드를 생성하며 생성된 스레드는 서비스 메서드를 호출한다.
요청방식이 GET 이냐 POST인가에 따라 각각 doGet(), doPost() 메서드가 자동으로 호출되며 doGet() 또는 doPost() 메서드를 통해 처리된 결과가 response 객체에 담기고 웹컨테이너는 이를 HTTP 응답(response) 메세지로 작성해 최종적으로 클라이언트의 브라우저에 전송하게된다
@WebServlet() 어노테이션 입력 ()
'Language > JSP' 카테고리의 다른 글
데이터베이스 연동 (0) | 2020.06.07 |
---|---|
Database (0) | 2020.06.07 |
session (0) | 2020.06.02 |
response 내장객체 (0) | 2020.06.02 |
application 내장객체 (0) | 2020.06.02 |