ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JSP/Servlet 이클립스 기본설정,정보
    자바 초보개발/JSP-Servlet 2023. 12. 13. 17:34

     

    기본지식

    웹 애플리케이션 동작 원리

     

    1. 사용자가 주소 입력

    2. 브라우저가 웹 서버에 해당 페이지 요청

    3. 서버에서 제공할 페이지를 찾는다

    4. 서버에서 찾은 페이지를 클라이언트의 브라우저에 보낸다.

     

    동적 페이지에 새로운 정보를 제공하기 위해 많은 정보를 관리한 데이터베이스가 필요한 것이고, 데이터베이스에 정보를 저장하거나 저장하기 위한 언어가 PHP,ASP, 그리고 JSP/Servlet이다.

     

    웹 서버: 클라이언트의 요청을 받아 결과페이지를 전송

    웹 애플리케이션 서버 (WAS): 요청받은 페이지의  실질적인 로직이나 데이터베이스 연동 처리를 하는 비즈니스 로직을 사용하는 곳.

     

     

    init() 초기화 메서드. 클래스가 실행되면 무조건 실행되는 메서드.

    service()  doGet(),doPost()를 둘다 처리할 수 있고, 보다 우선시하여 처리

    doGet() get방식으로 요청오면 처리

    doPost() post방식으로 요청오면 처리

     

    request  객체는 클라이언트의 정보를 가지고 전달 후 소멸. 중간의 데이터 출력은 request.

    response 객체는 데이터베이스의 정보를 

     

    사용 형식 예제)

    public void doGet(HttpServlestRequest request, HttpServlestResponse response) throws IOException{

     

    }

     


    이클립스 프로젝트 생성

     

    Create New Dynamic Web Project > 

     

     

     

     

    타겟 런타임에 톰캣9.0을 설정해준다. New Runtime 을 클릭해 사용할 서버 종류를 변경할 수 있다.

     

    Servers tap

    Generate web.xml deployment descriptor를 체크한다.

     

     

     

    아파치 톰캣으로 server를 만든다.

    서버를 만든후 프로젝트 폴더에 우클릭해서  Properties를 클릭한 후, 기본 서버 설정을 tomcat으로 하면 차후 파일 실행시 톰캣서버로 자동 실행할 수 있다.

     

     

     

    모듈 탭

     

    서버 프로젝트를 여러가지 사용할때는 Path를 서로 다르게해야 충돌이 일어나지 않는다. 그래서 기존에 html을 사용했을때 처럼 Path를 "  / " 로 바꾸진 않는다.

     

     

     


     

    servlet 파일 생성

    main 폴더의 java 폴더 안에 생성해야 한다. 폴더를 우클릭하고 New - Other - Web -  Servlet을 눌러 생성한다.

    Class Name

     

    Class name 칸에 파일 이름을 작성한다.

     

    mapping

     

     

    URL mappings는 기존 클래스 이름이 자동으로 입력되있고, Edit을 눌러, 어떤 URL을 입력할시 해당 파일을 호출할 지 , mapping 을 설정할 수 있다. 

     

    stub

     

     

    stub 부분은 어떤 메서드의 기본 파트를 생성할 것인지 체크할 수 있다. 


     

     

     

    servlet

    서블릿 동작 원리

    서블릿이 요청될 때마다 스레드가 계속 생성되어 서블릿 객체를 생성해서 수행한다.

    서블릿의 수행은 서블릿 컨테이너에 의해 처리된다.

     

    서블릿 컨테이너 :  톰캣도 컨테이너중 하나이다. 서블릿을 처리할 수 있는 환경을 제공하는 프로그램들을 의미.

    스레드 : 시작되는 부분부터 끝나는 부분까지 프로그램이 실행되는 한 단위

     

     

    서블릿 라이프사이클

    클라이언트에서 첫번째 요청이 오면  해당 서블릿 클래스의 객체를 생성하고, 이후 서블릿 호출시마다 메모리에 남아있는 객체를 사용하기 때문에 수행속도가 빠르다.

     

    톰캣 재가동시 혹은 클래스 파일 변경시에 destroy() 메서드가 호출되어 생성된 객체를 제거한다.

     

     

    전에 자바와 JDBC로만 Controller들을 만들어 사용할 때 모든 입력정보를 Controller에 직접 입력했었는데, 

    JSP/Servlet으로 만들때, 클라이언트로부터 오는 모든 요청을 먼저 받은뒤, 그 요청들을 알맞는 Controller들에게 분배하는 Frontcontroller를 하나 더 만들 예정이다.

     

    Frontcontroller

    DIspatcherServlet : 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러로 보내는 역할.

     

    *.do   : 확장자 기반 패턴. 앞에 어떤 이름이든 .do 확장자가 붙으면 인식한다.    ex) list.do

    /board/* : 위치 기반 패턴.   ex) /board/

     

    위와같이 패턴 으로 정보를 받을 수 있다. 어떤 패턴을 받을 것인지는 web.xml에서 설정 가능하다. servlet 태그와 servlet-mapping 태그를 이용한다.

     

     


     

    ++

     

    추가적으로, 왜 이클립스 폴더에는 src, main, webapp 폴더가 존재하는데, 왜 경로를 입력할때 이 세가지를 생략하고 바로

    /project/WEB-INF .. 이하의 경로를 작성하는지 궁금했는데,

     

     이 세가지는 개발중일 때에만 접촉 가능하고, 배포한 애플리케이션에서는 사용할 수 없기때문에 이들 폴더는 경로에서 제외된다고 한다.

     

     

Designed by Tistory.