상세 컨텐츠

본문 제목

JSP와 Servlet 특징 및 생명주기

WebProgramming/JSP

by ChrisMare 2018. 10. 15. 14:59

본문

※ JSP 특징

  • 동적 웹어플리케이션 컴포넌트. 

* 컴포넌트? 웹어플리케이션을 이루는 요소하나하나를 말한다. 

* 컴포넌트를 담고있는것을 컨테이너라고 한다.

* html같은 것들은 정적 ( 즉, 리액션이 없다 또는 연산이라든지 기능을 할 수 없다. )

  • jsp 확장자.
  • 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용.
  • jsp는 Servlet으로 변환되어 실행.
  • MVC패턴에서 View로 이용됨.

※ Servlet 특징

  • 동적 웹어플리케이션 컴포넌트. -> jsp와 같다
  • java 확장자. ( 즉, test.java 와 같은 파일을 말한다.)
  • 클라이언트의 요청에 동적으로 작동하고, 응답은 html을 이용.
    • Java Thread 이용하여 동작.  

--> 굉장히 많은 요청이 들어와도 Thread를 이용하여 서버의 부하를 줄여준다. 

      *가장 강력한 기능 ( 서버의 부하 방지 효과 )

  • MVC패턴에서 Controller로 이용됨.

- Model / View / Controller 의 약자로 jsp(java server page)는 view 로 이용되며, Servlet은 Controller로 이용이 된다. 

* web.xml --> servlet 매핑에 사용



ex1 ) 

 * 크게 2가지가 있습니다. ( 1. 데이터가 필요없는 정보만을 보여주는 화면, 2. 데이터가 필요한 정보를 보여주는 화면)

  1. 사용자가 웹브라우저에서 어떤 쇼핑사이트에 들어간다는 가정을 하자. 그렇다면 웹브라우저에서는 webServer로 가서 Controller를 거친다. 그 후 만약 쇼핑 사이트에 나오는 화면이 간단히 정보만 보여주는 즉, 게시글이나 사용자 정보와 같은 데이터가 없는 간단한 소개글만 작성된 곳이라면 바로 View(jsp)파일로 간 후 웹브라우저에 응답을 보내서 화면에 나오게 됩니다.
  2. 사용자가 쇼핑사이트에 들어갔는데 보이는 화면이 게시글이라든지 쇼핑목록들이 보인다면 그것은 웹브라우저가 Controller를 거치고 Model로 가서 DB를 사용하여 값을 가져와서 사용자가 필요한 정보로 수정한 후 다시 Controller로 옵니다. 그러한 후 사용자가 보는 View(jsp)로 가서 필요한 곳에 가져온 데이터를 뿌려줘서 사용자가 보는 화면이 생깁니다.


* Servlet 생명주기

    • Servlet의 사용빈도가 높은 이유 - 빠른 응답 속도
    • Servlet은 최초 요청 시 객체가 만들어져 메모리에 로딩되고, 이후 요청 시에는 기존의 객체를 재활용하기 때문에 동작 속도가 빠릅니다.

* Servlet 선처리, 후처리

  •  Servlet의 생명 주기 중 init( )과 destroy( ) 메소드와 관련하여 선처리[ init( ) 호출 전 ]와 후처리[ destroy( ) 호출 후 ] 작업이 가능.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.howtoservlet.ex;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
 * Servlet implementation class HowToServletEx
 */
@WebServlet("/HTSAnnotation")
public class HowToServletEx extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HowToServletEx() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    @Override
    public void init() throws ServletException {
        // TODO Auto-generated method stub
        super.init();
        System.out.println("init( )");
    }
    
    @Override
    public void destroy() {
        // TODO Auto-generated method stub
        super.destroy();
        System.out.println("destroy( )");
    }
    
    @PostConstruct
    private void preInitProcess() {
        // TODO Auto-generated method stub
        System.out.println("@PostConstruct");
    }
    
    @PreDestroy
    private void preDestroy() {
        // TODO Auto-generated method stub
        System.out.println("@PreDestroy");
    }
    
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("HowToServletEx : doGet");
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
        System.out.println("HowToServletEx : doPost");
    }
 
}
 
cs


결과 )



'WebProgramming > JSP' 카테고리의 다른 글

Servlet 데이터 공유 (ServletContext)  (0) 2018.10.17
Servlet 초기화 Parameter  (0) 2018.10.17
Form 전송으로 Servlet 값 받는 법  (0) 2018.10.17
한글깨짐현상 처리 (JSP/Servlet)  (0) 2018.10.17
서블릿 매핑 방법  (0) 2018.10.16

관련글 더보기

댓글 영역