네이버클라우드캠프

네이버클라우드캠프 61~62일차(3/27~3/28)

하루지오 2024. 3. 28. 20:47

1. 웹 애플리케이션

- 웹 브라우저를 통해 클라이언트와 상호작용하는 소프트웨어

더보기

ex) 웹사이트, 온라인 쇼핑몰, 소셜 미디어 플랫폼 등의 웹 서비스

 

2. Servlet(서블릿)

- 클라이언트의 요청을 처리하고, HTML,XML, JSON 등과 같은 다양한 형식의 데이터를 처리하며, 응답을 생성하는 등의 작업을 수행하는데 사용

더보기

ex) Client 가 로그인하면 서블릿은 그 정보를 확인하고 로그인이 되었는지 여부를 알려줌

ex) Client 가 새로운 정보를 입력하면, 서블릿은 그 정보를 받아서 처리하고, 필요하면 데이터베이스에 저장

- Java 언어로 작성되며, Java EE(Java Enterprise Edition) 환경에서 Dynamic Web Project로 개발됨

- javax.servlet.GenericServlet, javax.servlet.http.HttpServlet 등의 추상클래스를 상속받아 구현함

- 서블릿 컨테이너(Apache Tomcat, Jetty 등)에서 실행

 

3. HTML <form> 요소의 action 속성과 Servlet의  URL 매핑

-  HTML 폼에서 <form action="Hello">이라고 선언하면, 사용자가 폼을 제출할 때 해당 폼 데이터가 서버로 전송

- 서블릿에서 @WebServlet("/Hello")로 매핑되어 있다면, 웹 브라우저는 폼 데이터를 가지고 "/Hello " 경로로 HTTP POST 요청을 보냄

-  이때 요청의 목적지 URL은 현재 웹 애플리케이션의 기본 URL과 " Hello " 경로를 합친 것

- 서블릿 컨테이너(Apache Tomcat)는 이 요청을 받아들이고 해당 Servlet 클래스의 service() 메서드, doGet() 메서드 또는 doPost() 메서드를 호출하여 응답(데이터 전송)

더보기

즉, HTML 폼의 action 속성 값과 Servlet의 @WebServlet 어노테이션에 지정된 URL이 매핑

 

4. HTML <form> 요소의 HTTP 메소드 2가지

1) get

  • 폼 데이터를 요청 Html의 본문(body)에 포함시켜 서버로 전송
  • 데이터는 사용자에게 보이지 않고, URL에 노출되지 않음
  • 일반적으로 보안이 중요한 데이터를 전송할 때 사용
  • 데이터 크기에 제한이 없음

2) post

  • 폼 데이터를 URL의 쿼리 문자열(query string)에 포함시켜 서버로 전송
  • 데이터가 URL에 노출되어 있으므로, 보안에 취약
  • 일반적으로 데이터가 적고, 보안이 크게 중요하지 않을 때 사용
  • URL 길이에 제한이 있으므로, 매우 큰 데이터를 전송하기에는 적합하지 않음

 

5. ServletResponse 인터페이스

- ServletResponse 인터페이스는 Java Servlet API에서 제공하는 인터페이스 중 하나

- 서블릿 컨테이너에 의해 구현

- 클라이언트의 요청에 대한 응답 생성하고 전송하기 위한  다양한 메서드를 정의

- 주요 메서드로는 getWriter()와 getOutputStream() 존재

더보기

ex) getOutputStream() 메서드: ServletOutputStream 객체를 반환하여 이진 데이터를 클라이언트에게 전송

 

6. .gerWriter() 메서드

- 서블릿ServletResponse 인터페이스에서 제공되는 메소드 중 하나

- 클라이언트의 요청에 대한 응답을 보내기 위한 출력 스트림(PrintWriter 또는 ServletOutputStream)을 생성

 

7. PrintWriter 객체

- 서블릿에서 클라이언트로 데이터를 출력, 전송하기 위한 객체를 생성

- PrintWriter 객체를 통해 서블릿은 HTML, 텍스트 등 다양한 형식의 데이터를 생성하여 클라이언트에게 전송

더보기

ex) PrintWriter out = response.getWriter(); // out의 PrintWriter의 참조변수