Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[영이] Servlet & ServletContainer #359

Merged
merged 3 commits into from
Jun 8, 2021
Merged

[영이] Servlet & ServletContainer #359

merged 3 commits into from
Jun 8, 2021

Conversation

choijy1705
Copy link
Contributor

안녕하세요 주모, 와이비 Servlet 에 대하여 적어보았습니다. 많은 리뷰 부탁드려요


## Servlet

서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다. 자바를 이용하여 웹을 만들기 위해서 필요한 기술이다. 클라이언트가 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 자바 프로그램이 하는 것이다. 이전의 웹 프로그램들은 클라이언트의 요청에 대한 응답으로 만들어진 페이지를 넘겨주었다. 웹 프로그래밍이 점점 발전하면서 응답을 가공하여 동적인 페이지를 작성할 수 있게 되었다. 동적인 페이지를 제공하기 위해서는 웹서버가 다른 곳에 도움을 요청하여 동적인 페이지를 작성하게된다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

자바를 이용하여 웹을 만들기 위해서 필요한 기술이다.

빼기

Comment on lines 20 to 21
- HTTP 요청 정보를 편하게 사용할 수 있는 HttpServletRequest
- HTTP 응답 정보를 편하게 사용할 수 있는 HttpServletResponse
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

편하게 제거

Comment on lines 28 to 32
- 요청을 전송받은 Servlet Container 는 **HttpRequest, HttpResponse** 객체를 생성
- 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾는다. 여기서는 **helloServlet**을 찾게 된다.
- service 메서드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet(), doPost()를 호출
- 동적페이지를 생성한 후 HttpServletResponse 객체에 응답을 보낸다.
- 응답 후 HttpServletRequest, HttpServletResponse 객체를 소멸한다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

명확한 기준을 가지고 하기

Comment on lines +39 to +41
- 클라이언트 요청이 들어오면 컨테이너는 서블릿이 메모리에 있는지 확인한다. 메모리에 없다면 init() 메서드를 호출하여 적재
- 클라이언트 요청에 따라서 service() 메소드를 통해 요청에 대한 응답이 doGet(), doPost()로 분기. 이때 HttpServletRequest, HttpServletResponse 에 의해 request, response 객체가 제공된다.
- 컨테이너가 서블릿에 종료 요청을 하면 destroy() 메서드가 호출된다. 종료시 처리해야하는 작업은 destroy() 메서드를 오버라이딩하여 구현하면 된다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Servlet 유지 될 때(?) 의 이야기도 추가하면 좋을 것 같습니다!


## Servlet Container

서블릿 컨테이너는 서블릿을 관리해주는 컨테이너이다. 서블릿은 서블릿 스스로 동작하지 않는다. 서블릿을 관리해주는 서블릿 컨테이너를 통해 동작하게 된다. 서블릿 컨테이는 클라이언트의 요청을 받고 응답 할 수 있도록 웹 서버와 소켓으로 통신한다. 톰캣이 서블릿 컨테이너의 대표적인 예이다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

첫 세 문장 연결해서 쓰기

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

서블릿 컨테이 -> 서블릿 컨테이너

Comment on lines 58 to 64
서블릿 컨테이너는 서블릿과 웹 서버가 통신할 수 있도록 해준다. 서블릿 컨테이너가 웹 서버와 통신하는 과정을 생략할 수 있도록 해주기 때문에 개발자는 비즈니스 로직에만 집중하면 된다.

- 서블릿 생명주기 관리

서블릿의 생성과 소멸을 관리한다. 서블릿을 로딩하여 인스턴스화하고 초기화 메서드를 호출한다. 요청이 들어오면 적절한 메서드를 호출한다. 서블릿의 역할이 끝난후 GC(Garbage Collection) 를 진행하여 소멸시킨다.

- 멀티쓰레드 지원 및 관리
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

소제목 크기 키우기

@hybeom0720
Copy link
Contributor

안녕하세요 영이!
서블릿과 서블릿 컨테이너는 처음 들었을 때 정말로 낯선 개념인 것 같아요.
주도권이 저희가 아닌 스프링으로 가있기 때문에 더더욱 그런 것 같아요.
저번 리뷰 잘 반영해서 깔끔하게 개념만 잘 적어주신 것 같습니다.
저는 Approve할게요!

@choijy1705 choijy1705 removed the request for review from jum0 May 31, 2021 05:18
Copy link
Contributor

@kang-hyungu kang-hyungu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

영이 글 잘 써주셨어요 👍
띄어쓰기가 두 번 들어간게 보이지만 글을 읽는데 큰 문제가 없으니 머지하겠습니다.
수고하셨어요~!


## Servlet

서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다. 클라이언트가 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 자바 프로그램이 하는 것이다. 이전의 웹 프로그램들은 클라이언트의 요청에 대한 응답으로 만들어진 페이지를 넘겨주었다. 웹 프로그래밍이 점점 발전하면서 응답을 가공하여 동적인 페이지를 작성할 수 있게 되었다. 동적인 페이지를 제공하기 위해서는 웹서버가 다른 곳에 도움을 요청하여 동적인 페이지를 작성하게된다.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다. 클라이언트가 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 자바 프로그램이 하는 것이다. 이전의 웹 프로그램들은 클라이언트의 요청에 대한 응답으로 만들어진 페이지를 넘겨주었다. 웹 프로그래밍이 점점 발전하면서 응답을 가공하여 동적인 페이지를 작성할 수 있게 되었다. 동적인 페이지를 제공하기 위해서는 웹서버가 다른 곳에 도움을 요청하여 동적인 페이지를 작성하게된다.
서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다. 클라이언트가 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 자바 프로그램이 하는 것이다. 이전의 웹 프로그램들은 클라이언트의 요청에 대한 응답으로 만들어진 페이지를 넘겨주었다. 웹 프로그래밍이 점점 발전하면서 응답을 가공하여 동적인 페이지를 작성할 수 있게 되었다. 동적인 페이지를 제공하기 위해서는 웹서버가 다른 곳에 도움을 요청하여 동적인 페이지를 작성하게된다.

@kang-hyungu kang-hyungu merged commit 2a62b01 into master Jun 8, 2021
@choijy1705 choijy1705 deleted the doc/servlet branch June 21, 2021 07:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants