JSP 2일차

MOZZI KIM·2022년 11월 23일
0

JSP

목록 보기
1/10
post-thumbnail

1. hello.jsp 가 컴파일 되는 과정에 대하여 설명하시오.

📌jsp파일 컴파일 과정

jsp -> 서블릿(java)파일로 변환 -> 서블릿파일을 class파일로 컴파일 -> 컴파일된 후 메모리 적재


2. Servlet에 대하여 설명하시오.

📌 서블릿(Servlet)이란?

클라이언트의 요청을 처리하고, 그 결과를 반환하는
Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술

간단하게는 ⭐자바를 사용하여 웹을 만들기 위해 필요한 기술⭐이라고 볼 수 있다.
클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다.

예를 들어, 어떠한 사용자가 로그인을 하려고 할 때, 사용자는 아이디와 비밀번호를 입력하고, 로그인 버튼을 누른다.
그때 서버는 클라이언트의 아이디와 비밀번호를 확인하고, 다음 페이지를 띄워주어야 하는데,
이러한 역할을 수행하는 것이 바로 서블릿(Servlet)이다. 그래서 서블릿은 자바로 구현 된 CGI라고 흔히 말한다.


3. web.xml에 대하여 설명하시오.

📌 배포 설명자: web.xml

자바 웹 애플리케이션은 배포 설명자 파일을 사용하여 URL이 서블릿에 매핑되는 방법, 인증이 필요한 URL 등의 정보를 확인한다. 이 파일은 이름이 web.xml이며 앱의 WAR에서 WEB-INF/ 디렉터리에 위치합니다. web.xml은 웹 애플리케이션의 서블릿 표준에 포함된다.

📌 배포 설명자?

웹 애플리케이션의 배포 설명자는 애플리케이션의 클래스, 리소스, 구성 및 웹 서버가 이를 사용해서 웹 요청을 처리하는 방법을 기술한다.
웹 서버는 애플리케이션에 대한 요청이 수신되면 배포 설명자를 사용하여 요청의 URL을 해당 요청을 처리해야 하는 코드에 매핑한다.

  • 배포 설명자는 이름이 web.xml인 파일.
  • 이 파일은 앱의 WAR에서 WEB-INF/ 디렉터리에 위치하며, 루트 요소가 인 XML 파일이다.

4. html 이란 무엇인가?

📌 HTML이란?

Hyper Text Markup Language 약어로 HyperText(웹 페이지에서 다른 페이지로 이동할 수 있도록 하는 것) 기능을 가진 문서를 만드는 언어.
다시 말해, 구조를 설계할 때 사용되는 언어로 hyper link 시스템을 가지고 있으며, 흔히 말하는 웹 페이지를 위한 마크업 언어라고 할 수 있다.


5.get 방식과 post 방식에 대하여 설명하시오. ⭐️

📌1. GET 방식

클라이언트가 서버로 데이터를 요청하기 위해 사용되는 Method이며 GET 요청을 할 때는 Body 부분은 비어있고 헤더에 Body의 콘텐츠 타입을 명시하는 Content-Type 헤더 필드도 적지 않는다. 아래와 같이 URL뒤에 쿼리 스트링(Key와 Value)을 붙이고 HTTP 패킷의 헤더에 포함해서 서버에 데이터를 요청한다.

http://localhost:3000/login?id=admin&pw=1234

URL의 "?" 뒤에서부터 쿼리 스트링으로 데이터를 표현하는데 사실 중요한 값들이 노출되기 때문에 실제 사이트에서 ID와 PW와 같은 정보들에 GET 방식을 이용하면 보안에 문제가 생긴다. GET 방식 경우에는 브라우저마다 글자 수 제한이 있기 때문에 게시판의 게시물, 목록 조회와 같은 간단한 데이터 요청할 때 적합하다. 그리고 캐싱이 가능하므로 속도가 빠르다는 장점이 있다.

👉 GET 방식 특징

  1. URL에 쿼리 스트링(데이터)을 붙여서 서버에 전송
  2. 데이터를 Header(헤더)에 포함하여 전송
  3. URL에 정보들이 그대로 노출되기 때문에 POST 방식보다 상대적으로 보안에 취약
  4. 캐싱이 가능
  5. POST 방식보다 상대적으로 전송 속도가 빠름
  6. 전송하는 데이터양에 한계가 있음 (브라우저마다 GET 요청 길이 제한 존재)
  7. 브라우저 히스토리에 기록이 남음
  • 캐싱(Caching)이란?
    캐싱이란 한번 접근 후 또 요청할 시 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓는 것

📌 2. POST 방식

POST방식은 클라이언트가 서버로 데이터를 전송해 리소스를 추가하거나 생성하기 위해 사용되는 Method. POST 요청 시 HTTP 패킷의 헤더에 Body의 콘텐츠 타입을 명시하는 Content-Type 헤더 필드를 포함하고 HTTP 패킷의 Body에는 데이터를 담아서 서버로 전송한다.

http://localhost:3000/login

POST 방식은 GET 방식과 다르게 데이터들이 URL에 표시되지 않고 HTTP 패킷 Body에 담겨 서버로 데이터가 전송된다. 따라서 보내는 데이터의 양에 제한이 없어 대용량 데이터를 전송할 때는 POST 방식이 적합. 그리고 URL에 데이터가 표시가 되지 않기 때문에 GET 방식보다는 상대적으로 보안적이지만, body의 데이터도 결국엔 크롬 개발자 도구, Fiddler와 같은 툴로 요청 내용을 확인할 수 있기 때문에 꼭 암호화를 해주어야 한다. POST 방식의 경우 보통 서버의 값이나 상태를 변경하기 위해 사용되므로 글쓰기, 글 수정과 같은 작업에 적합하다.

👉 POST 방식 특징

  1. 데이터들을 URL뒤에 붙여서 서버로 보내는 것이 아닌 Body에 담아서 전송

  2. 요청 헤더의 Content-Type에 콘텐츠 타입을 명시

  3. 데이터들이 URL에 노출되지 않기 때문에 GET 방식보다 상대적으로 보안적

  4. 데이터들을 Body에 담기 때문에 서버로 보내는 데이터의 양은 제한 없음

  5. URL에 데이터가 노출되지 않으므로 캐싱 불가

  6. 클라이언트에서 인코딩, 서버에서 디코딩

  7. 요청받는 시간제한 존재

  8. 브라우저 히스토리에 기록이 남지 않음


6. 컨텍스트 패스(Context Path)란 무엇인가?

📌 컨텍스트 패스란?

WAS(Web Application Server)에서 웹어플리케이션을 구분하기 위한 path이다.
이클립스에서 프로젝트를 생성하면 , 자동으로 server.xml에 추가된다.


7. 아래의 객체에 대하여 설명하시오.

  HttpServletRequest request, HttpServletResponse response

📌 요청과 응답

WAS는 웹 브라우저로부터 Servlet요청을 받으면, 요청할 때 가지고 있는 정보를 HttpServletRequest객체를 생성하여 저장
웹 브라우저에게 응답을 보낼 때 사용하기 위하여 HttpServletResponse 객체를 생성
생성된 HttpServletRequest, HttpServletResponse 객체를 서블릿에게 전달

📌 HttpServletRequest란?

http프로토콜의 request 정보를 servlet에게 전달하기 위한 목적으로 사용
헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어 들이는 method를 가지고 있따.
Body의 Stream을 읽어 들이는 method를 가지고 있다.

📌 HttpServletResponse

WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServletResponse 객체를 생성하여 servlet에게 전달
Servlet은 해당 객체를 이용하여 content type, 응답코드, 응답메시지 등을 전달

profile
코린이

2개의 댓글

comment-user-thumbnail
2022년 11월 23일

쌤 썸네일만봐도 쌤이어서 댓글달러왔어요. 진짜 사람들 너무 투명해.. 누군지 썸네일만으로 다 알아볼 수 있어

1개의 답글