ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [web] Servlet이란?
    Web/Web 2019. 7. 8. 18:11

    Java Applcation

    - 한개의 main을 가지고 독립적으로 실행하는 자바 클래스

     

    Java Web Application

    - 브라우저에서 실행되는 자바 클래스

      (Servlet /JSP)

      Servlet을 Controller로 이용한다.

      서블릿과 JSP를 실행하기 위해서는 Web Application Server(WAS)가 필요.

     

    Servlet이란?

    - 자바에서 웹 어플리케이션을 개발할 때 사용한다.

    - 스레드(동시실행)를 기반으로 효율적

    - 자바 기반이기 때문에 자바 API를 모두 사용 가능

    - 효율적인 자료 공유 방법을 제공한다.

    - JSP는 서블릿을 기반으로 한 기술이다.

     

    Servlet사용 이점은?

    - 유지보수가 수월하고 기능확장이 용이하다.

    - 컨트롤러와 뷰의 역할분담으로 인해 디자이너와 개발자간의 협업이 가능하다.

     

    Servlet의 Life Cycle

    1. init() 메소드 - 서블릿의 생성자 (가장먼저, 단한번 호출)

    2. service() 메소드 - 웹브라우저에 서비스(화면출력) 하는 메소드

                              클라이언트 요청에 따라 doGet()이나 doPost()메소드로 분기

                              사용자 요청 처리는 request(요청객체, client, 아이객체, 떼쟁이, 브라우저)로

                              응답처리는 response(응답객체, server, 엄마객체, 톰캣)객체로 처리함

    3. destroy() 메소드 - 컨테이너로부터 서블릿 종료요청이 있을때, 서블릿 종료직전에 해야할 작업을 명시할 때 사용.

                               대부분의 경우 컨테이너가 종료될때 실행. (컨테이너란? Apache Tomcat는 서블릿 컨테이너)

     

    Tomcat에서 하는일

    1. 클래스유무 체크

    2. 메모리 적재 체크

    3. 메모리 적재가 안되었을때 메모리 적재와 init() 호출-  service() 호출

    (이 때문에 class에 main이 없다. 톰캣에서 대신 하기 때문에)

     

    request - 브라우저요청

    response- 서버

     

    servlet 실행방법

    1. http://localhost:8282/TomcatTest/servlet/com.siri.servlet.MyServlet <--이렇게 들어가려면 에러가 난다.

    2. WEB-INF/web.xml에 작성된 서블릿 클래스를 등록

    <!-- 서블릿 클래스 등록 -->
    	<servlet>
    		<servlet-name>my</servlet-name>
    		<servlet-class>
    			com.siri.servlet.MyServlet
    		</servlet-class>
    	</servlet>
    	<!-- 가상의 경로 설정(서블릿 클래스에 매핑될 가상의 경로)-->
    	<servlet-mapping> 
    		<servlet-name>my</servlet-name>
    		<url-pattern>/dark/my</url-pattern>
    		<!-- url - pattern 엘리먼트 내의  맨 앞의 '/'는 (컨텍스트) 루트를 의미! -->
    	</servlet-mapping>

    3. MyServlet 클래스 생성 -  생명주기 메소드인 init() ,serviece(), destroy() 메소드 추가

    public class MyServlet extends HttpServlet {
    	// 서블릿: 한개의 웹페이지 화면을 구성한다.
    	@Override
    	public void init() throws ServletException {
    		System.out.println("init()");
    	}
    
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		System.out.println("service()");
    		// 서블릿 메소드 - 웹브라우저 서비스 - HTML서비스
    		// request: 클라이언트(사용자, 브라우저) response: 서버를 각각의미!
    
    		// 한글 설정은 출력객체 얻어오기전에 하는것 (문자집합설정)
    		resp.setContentType("text/html; charset=UTF-8");
    
    		PrintWriter out = resp.getWriter();
    		// 브라우저 출력 객체
    		out.print("<html><head><title></title></head>");
    		out.print("<body><h3>ServletTest</h3><hr>");
    		out.print("<b><font color=red>안녕, 서블릿?^^***</font></b>");
    		out.print("</body></html>");
    
    	}
    
    	@Override
    	public void destroy() {
    		System.out.println("destroy()");
    		//
    	}
    
    }

    servlet 반응

    1. hello.jsp브라우저 요청

    2. hello.java 페이지 유무 확인 후 없으면 생성 

     

    application = ServletContext - 프로젝트명 하나

    application얻어오기

     

    반응형

    'Web > Web' 카테고리의 다른 글

    [web] 페이지 이동시 경로표현  (0) 2019.07.09
    [web] GET과 POST란?  (0) 2019.07.09
    [web] 이클립스 톰캣 서버 환경설정  (0) 2019.07.08
    HTTP란?  (0) 2018.10.12
    Disqus 디스커스 사용방법  (4) 2018.10.10

    댓글

Designed by Tistory.