[JSP] Servlet이란?

    Sevlet이란?

     

    목차

       

       

       Servlet이란?

      주로 웹 페이지의 기술을 향상하며, 다수의 인원이 작업효율을 높이기 위해 사용하는 기술입니다. 언어는 Java를 활용하며 Class를 통해 작업합니다. 다만 Request값과 Response값을 호출함으로써 JSP에서 작업을 Class에서 작업할 수 있도록 도와주는 역할을 합니다.

       

       

       

        Servlet 만드는 방법

      servlet 만들기
      Servlet 생성
      servlet 만드는 법
      Class의 이름을 설정한다.
      servlet 만드는 방법
      필요없는 부분을 모두 지운 Servlet의 모습이다.

      Servlet에서 중요한 부분을 제외한 현재 불필요한 부분을 모두 삭제하였습니다.

       

      가장 먼저 아셔야 하는 메서드명은 doGetdoPost입니다.

       

      html에서 url 전달 방식이며, get방식 post 방식을 의미합니다.

      여기서 get으로 호출 시, doGet이 반응하며, post 호출 시, doPost가 반응합니다.

       

       

       

        JSP, Servlet 연결 방법

      JSP의 기본은 URL을 파악하는 것입니다. URL을 파악하여 어떻게 동작되는지를 살펴보시는 것이 KeyPoint입니다.

       

      1. Annotation 방식

      servlet 어노테이션
      Annotation 방식이다. 사용자에게 편의를 제공하고자 만들어진 방식이다.

      URL 마지막 경로명에 Mollang을 입력하게 되면, Annotaion 중 Mollang이 반응하게 됩니다. URL의 가장 기본적인 전송방식은 Get방식이며, Get방식에 있는 System.out.println이 반응하는 것을 확인할 수 있습니다.

       

       

      2. web.xml 방식

      servlet 연결하기
      Jsp에서 주로 사용하는 방식이다. Spring의 환경설정에 가장 기본적으로 사용하는 방식이다.

      web.xml 방식입니다. 1번 Annotation보다 복잡하다는 단점이 존재합니다.

       

      방법에 대해서는 아래 링크를 확인해주시면 감사하겠습니다.

       


      [Web/JSP] - [JSP] WEB.XML은 무엇일까?

       

       

       

      servlet 연결
      Web.xml으로도 Servlet을 호출이 가능하다.

      web.xml을 통해 성공적으로 System.out.print가 호출되는 것을 확인할 수 있습니다.

       

       

       

        Servlet 활용하기

       이제 위 방법을 활용하여 사용하는 방법에 대해 알려드리도록 하겠습니다.

      설명을 쉽게 돕기 위하여 1번 방식, Annotation 방식을 활용하였습니다.

       

      mvc 만드는 방법
      asterisk를 활용하여, Url 호출 범위를 높였다.

      이제 이를 활용하여, Asterisk를 활용합니다.

      끝이. do로 끝날 경우, Mollang Class가 호출됩니다.

       

      그리고 request.getRequestURI()를 통해서 해당 프로젝트의 경로명을 확인할 수 있습니다.

       

       

      ■  추가 활용하기

      request.getContextPath()를 활용하자

       프로젝트명에 따라 Servlet의 경로가 달라질 수 있습니다. 이를 해결하려면 Eclipse Server Path를 진행하는 방법도 존재하지만, 이런 방식으로 request.getContextPath()를 활용하여 프로젝트명만 따로 추출할 수 있도록 도와주고 있습니다.

       

      이를 String의 substring과 length의 함수를 이용하여 경로명만 추출할 수 있도록 도와줍니다.

       

      여기서 주의점은 경로명을 설정할 수 있어야 한다는 것입니다.


      [Web/JSP] - [JSP] 절대 경로와 상대 경로

       

       

       

        Controller

      controller

       위의 과정을 통해 출력된 결과를 if를 통해 구분을 갖습니다.

      if ~ else if 혹은 switch를 통해 URL을 통해 각자 다른 Java 실행을 만들 수 있는 것을 확인할 수 있었습니다.

       

      이 방식을 JSP의 MVC 중 Controller라고 칭하고 있습니다.

       

       

       

        마무리

       JSP의 가장 중요하면서도, 기초적인 영역을 다뤄보았습니다. 해당 부분은 오직 JSP에서 Servlet(Controller)를 호출하는 방법에 대해 다뤄보았습니다.

       

       

      ▼  관련 글

      [다음 글] - [JSP] Controller의 완성

      [Web/JSP] - [JSP] 절대경로와 상대경로

      [Web/JSP] - [JSP] 절대경로와 상대경로


       

       

      ▼  코드 보기

      package mollang;
      
      import java.io.IOException;
      
      import javax.servlet.ServletException;
      import javax.servlet.annotation.WebServlet;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      
      @WebServlet("*.do")
      public class Mollang extends HttpServlet {
             
      	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      		System.out.println("반응");
      		
      		String uri = request.getRequestURI();
      		String context = request.getContextPath();
      		String command = uri.substring(context.length());
      		
      		System.out.println("1 : "+uri);
      		System.out.println("2 : "+context);
      		System.out.println("3 : "+command);
      		
      		if(command.equals("/main.do"))
      		{
      			System.out.println("/main 반응");
      		} else if(command.equals("com.do"))
      		{
      			System.out.println("com 반응");
      		}
      	}
      	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      		
      	}
      
      }
      
      반응형

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

      [JSP] userAgent  (0) 2021.05.24
      [JSP] Controller의 완성  (3) 2021.05.18
      [JSP] 절대경로와 상대경로  (0) 2021.05.14
      [JSP] WEB.XML은 무엇일까?  (0) 2021.05.13
      JSTL, JSP를 사용하는 사람이라면 알아야 할 것  (2) 2021.05.02

      댓글

      Designed by JB FACTORY