Developer Note/국비과정 수업내용 정리&저장

24년 10월 29일

DH_PARK 2024. 11. 3. 20:58

서블릿

자바에서 자바코드로 웹을 구현하기 위해 나온 서버측의 프로그램.

  • 웹 서버측 에서 동적인 페이지를 자바로 구현한 서버측 프로그램
  • 서버 측에서 실행함. 요청을 받으면 서버에서 처리함. 그러고 응답으로 결과값만 보내주는 구조임

특징

  • MVC 모델에서 컨트롤러 역할을 한다.
  • 서블릿 파일로 사용하기 위해서는 HttpServlet 클래스를 상속받아서 사용한다.
  • 모든 메서드는 스레드로 동작된다

서블릿 컨테이너

  • 서블릿은 .java 파일을 컴파일한 .class 파일 형태이며 , 이를 실행하고 관리해주는 런타임을 서블릿 컨테이너 라고 한다. (간단히 전체적인 동작을 관리해주는 거라고 보면 될듯)
  • 서버에 있는 서블릿이 스스로 작동하는게 아님. 서블릿 컨테이너가 서블릿을 작동시키는 거임.
  • 아파치 톰캣이 이 역할을 하는거임 !

역할 :

  • 생명주기 관리 : 서블릿을 인스턴스화 후에 초기화하고 , 요청에 맞는 메서드를 호출한다. 응답 후에는 GC 를 통해 객체를 소멸시킴
  • 통신 지원 : 클라이언트와 통신하는 과정을 서블릿 컨테이넉 간단하게 해주는 API 를 제공한다.
  • 멀티스레드 방식

서블릿 작성 규칙

  1. 서블릿 클래스 선언
    1. javax.servlet.http.HttpServlet 를 상속받는다. 즉 , class 파일에서 HttpServlet 을 extends 한다
  2. doGet , doPost 메소드 선언
    1. 둘 중에 하나 or 둘 다 선언
    2. 클라이언트 요청이 들어오면 서버측에서 자동으로 호출되는 메소드
    3. 동적으로 HTML 페이지를 만드는 역할
  3. 동적 HTML 페이지 작성 구현
    1. doGet or doPost 내부에서 문서 작성을 위한 코드 작성
    2. response 객체의 getWriter 메소드 호출하면 PrintWriter 객반환
    3. PrintWriter 객체의 print?? 메서드 사용, 동적으로 클라이언트 코드를 작성
    4. 브라우저에게 서비스 반환
  4. 브라우저가 자바 파일(서블릿)을 호출한다
    1. 자바는 웹 기술이 아님
    2. 브라우저에서 자바 파일을 실행할 수 없음
    3. 그래서 웹상에서 자바파일 호출할 수 있게 가상 주소를 생성해서 서블릿에게 매핑해야함
    4. webapp > WEB-INF > web.xml 에서 매핑
<servlet><servlet-name>HelloWorld</servlet-name> // servlet 이름
   <servlet-class>jwprj.servlet.HelloServlet</servlet-class> // 서블릿 클래스가 들어있는 경로
</servlet><servlet-mapping><servlet-name>HelloWorld</servlet-name> // 서블릿 이름 (위와 같아야함)
   <url-pattern>/hello</url-pattern>  // 서블릿 요청 주소 매핑
</servlet-mapping>

JDK.5 ? 부터 추가된기능

어노테이션 (@)

사전적 의미로는 주석이라는 뜻

컴파일러에게 해당 클래스에 대해 알려주거나 자바 프로그램에 관한 내용을 설정하는 용도로 사용됨

dynamic web project 생성 톰캣 설정..

 

프로젝트 우클릭 자바 ee → generate development descriptor stub … 하면 web.xml 파일 생성됨

※ web.xml 파일의 역할 ? 프로젝트의 구성 정보를 설정하고 서블릿,필터,리스너 등을 정의하여 웹의 동작 방식을 제어함.

 

run server 할 때는 project 를 우클릭 후 실행

 

WEB-INF : 웹이 노출되지 않도록 막아주는 폴더.

여기서는 jsp 파일 , view 파일 같은 파일들을 직접적으로 실행할 수 없다.

왜 ? 이 폴더는 웹의 핵심 구성요소를 이루고 있으며 , 리소스를 보관하는 용도로 사용되기 때문. 

그러니까 간단히 말하면 웹이 구성하는데 필요한 요소를 담고 있어서 함부로 접근을 못하게 직접 실행이 안됨.

 

class 파일 서블릿파일로 지정할 때는

public class C04Servlet_test extends HttpServlet{} (HttpServlet 클래스를 상속받아서 사용한다.)

 

백엔드 처리 하는게 서블릿

프론트 처리 하는게 jsp 라고 일단 간단히 생각하자.


지금 오후에 하고 있는 작업이 서블릿과 jsp 를 분리하고 연결하기 위한 작업인듯 ?

지금 내가 오후에 듣고 있는 수업은 원래 jsp 로 모두 처리하려는 내용들을 서블릿과 jsp 로 각각의 역할로 분리하기 위한 작업이다.


지금 하고 있는거 하나도 모르겠음 ㄹㅇ;;

잘모르겠으니까 간단하게 정리

수업 들은거 대충 개념 정리

class 파일에 extends HttpServlet 하면 servlet 파일로 만듬

servlet 은 자바 코드를 다룬다 . 즉 백엔드 작업을 처리함

jsp 는 http 코드를 다룸 . 즉 프론트엔드 작업을 처리한다.

  • src/main/java 폴더 : 자바 서블릿 소스 폴더
  • webapp 폴더 : jsp 소스파일 , 콘텐츠 폴더(html , css , js ,이미지 등) 정적 파일
  • WEB-INF 폴더 : 서버관련 설정파일
  • WEB-INF/web.xml 파일 : 사이트 설정 파일

web.xml 파일이란 ?

웹 애플리케이션 환경설정 담은 파일

웹 서버가 처음 구동될 때 이 파일을 읽어 설정 내용을 톰캣에 적용함. 그러고 실행됨.

서블릿이란 ?

  • 웹 서버측 에서 동적인 페이지를 자바로 구현한 서버측 프로그램
  • 서버 측에서 실행함. 요청을 받으면 서버에서 처리함. 그러고 응답으로 결과값만 보내주는 구조임

특징

MVC 모델에서 컨트롤러 역할을 한다.

'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글

24년 10월 31일  (1) 2024.11.04
24년 10월 30일  (1) 2024.11.04
24년 10월 25일  (0) 2024.10.25
24년 10월 22일  (0) 2024.10.23
24년 10월 18일  (1) 2024.10.21