Notice
Recent Posts
Recent Comments
Link
깜장콩의 공부일기
[Servlet & JSP] 공부 1일차 본문
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 |