깜장콩의 공부일기

[Servlet & JSP] 공부 1일차 본문

Web 공부

[Servlet & JSP] 공부 1일차

깜장콩_912 2023. 3. 27. 17:00
728x90

멀캠에서 받은 책이 아래에 보이는 책이었지만, 

http://www.yes24.com/Product/Goods/113797972

 

채쌤의 Servlet&JSP 프로그래밍 핵심 - YES24

웹 개발이 처음이라면 채쌤의 퍼펙트 강의가 딱이야!서블릿과 JSP를 이해하기 위해 웹 서버와 브라우저의 동작 원리부터 배운다. 무조건 쌓기만 하는 기술이 아니라 핵심 개념을 콕 짚어서 기초

www.yes24.com

강사님이 이거 말고 다른 자료로 쓰시는데 절판된거라 나는 이 책을 보면서 다시 공부하기로 결정했다 !

이제 곧 프로젝트를 시작하기 때문에 공부를 진짜 해야된다 !!


<1장>

난 수업때문에 거의 다 설치가 되어있어서 프로젝트 새로 만드는 것부터 시작했다 

  • Dynamic Web Project module version은 꼭 2.5로 지정을 해줘야 web.xml이 자동으로 지정된다 ! 
  • HTML을 4.01 변경하는 이유는 HTML5을 기반으로 UI을 구성하려면 CSS를 직접 추가해야한다. 

환경 설정 따라하면서 간단한 웹 사이트를 만들었다 !


<2장>

  • 웹 애플리케이션은 인터넷상에서 웹 클라이언트(브라우저)와 웹 서버가 메시지를 주고 받으면서 동작하는데, 이때 HTTP 프로토콜 사용

 

HTTP 특징 

  • 비연결성 : 브라우저가 서버에 특정 문자를 요청하는 순간, 잠깐 서버와 연결됐다가 서버로부터 응답이 전송된 후 곧바로 끊어지는 것
  • 무상태 : 웹 서버가 웹 클라이언트의 상태 정보를 유지하지 않는 것
  • 상태 정보 유지가 필요한 작업에 대해서는 쿠키나 세션을 이용해야 함. 

 

  • 브라우저의 가장 기본적인 기능은 HTTP 요청 프로토콜을 웹 서버에 전달하고, 웹 서버가 전송한 HTTP 응답 프로토콜을 처리하는 것임. 

 

HTTP 요청 프로토콜 

  • start-line : 요청과 관련된 세가지 핵심 정보(요청 방식, 요청 URL, 프로토콜/버전) - GET, POST, PUT, DELETE
  • message-body : start-line에 설정된 요청 방식에 따라 message-body의 설정 정보가 달라짐. 
    • POST는 사용자가 입력한 값들이 설정되고, GET은 아무것도 설정 안됨. 

 

GET & POST

  • GET은 사용자가 입력한 정보가 쿼리 문자열로 외부에 노출됨.
  • POST는 message-body에 포함되어 전달되기 때문에 사용자가 입력한 정보가 노출되지 않음.

 

  • servlet : 서버에서 사용자의 요펑을 처리함. 
    • Constructors from superclass : 클래스의 생성자를 호출하는 생성자를 제공하겠다는 설정 

<3장>

톰캣 서버

  • 웹 서버 : 마이크로소프트의 IIS나 구글의 GWS같은 정적 콘텐츠 처리 담당
  • 서블릿 컨테이너 : 서블릿을 비롯한 동적 콘텐츠 처리 담당 
    • 서블릿 클래스의 객체를 생성하고 관리하는 역할을 담당
    • 자신이 생성하고 관리할 클래스들에 대한 정보를 WEB.XML파일을 통해 획득함. 

 

  • 컨테이너 : 생성된 객체를 보호하고 효율적으로 관리하기 위해 사용 (서버 엔진 = 서블릿 컨테이너)

 

서블릿 작성 규칙 

  • javax.servlet과 javax.servlet.http 패키지의 API를 import한다.
  • public 클래스로 선언한다.
  • HttpServlet 클래스를 상속한다. 
  • 반드시 기본 생성자를 가지고 있어야 한다.
  • 라이프 사이클과 관련된 콜백 메소드를 오버라이딩한다.

 

  • 콜백 메소드 : 특정 시점에 서블릿 컨테이너가 자동으로 호출해주는 메소드
  • 서블릿 컨테이너는 서블릿 객체의 생성과 운용, 소멸 과정에서 서블릿이 가진 다양한 콜백 메소드를 호출
  • 레이지 로딩 : 컨테이너가 서블릿 객체를 생성하는 시정을 클라이언트가 요청하기 전까지 늦추는 것 (load-on-startup)
    • 브라우저의 요청에 대해서 반응 속도는 느리지만 서버 메모리를 효율적으로 사용할 수 있음
  • 프리 로딩 : 사용자의 요청과 무관하게 컨테이너가 구동되는 시점에 XML 설정 파일에 등록된 객체를 생성하는 것
    • 반응 속도는 빠르지만 사용하지 않는 객체를 미리 생성하기 때문에 메모리를 낭비하는 문제가 있음.
  • destroy() : 서블릿 객체가 리로딩되거나 삭제되기 직전에 호출됨.
  • init() : 멤버 변수를 초기화할 수 있음.
    • 서블릿 컨테이너는 최초의 요청에 대해 디폴트 생성자를 이용해서 서블릿 객체를 생성한 후, 무조건 init() 호출 
  • <servlet> : 작성된 서블릭 클래스를 등록할 때 사용
    • <servlet-name> : 설정된 서블릿의 이름을 기준으로 생성된 서블릿 객체들을 식별
    • <servlet-mapping> : 브라우저의 요청 URL과 서블릿을 매핑하는 설정
  • 어노테이션을 이용하여 복잡한 XML 설정을 대체하는 기능을 제공함. => @WebServlet

정보처리기사 실기 공부와 이제 멀캠에서 프로젝트를 들어가기 때문에 시간이 남으면 다시 공부하도록 하겠다 ..!!

빨리 공부하도록 노력해야지ㅎㅎ

728x90

'Web 공부' 카테고리의 다른 글

[Servlet&JSP] 공부 3일차  (1) 2023.05.31
[Servlet & JSP] 공부 2일차  (0) 2023.04.03
[Web 공부] 3일차  (0) 2022.12.19
[Web 공부] 2일차  (0) 2022.12.16
[Web 공부] 1일차  (0) 2022.12.14