
<http://localhost:8282/jsp_hello/hello.jsp가 실행되는 과정>
-> hello.jsp의 소스코드를 실행시킨다는 것을 의미한다.
컴퓨터의 IP를 찾아 들어간다. (여기서는 localhost)
Tomcat이(웹 애플리케이션 서버)가 관리하는 프로그램 번호 8282를 찾아가서 jsp_hello패키지의 hello.jsp 파일을 찾음
hello.jsp 파일을 hello_jsp.java 파일로 변환한 후 컴파일하여 hello_jsp.class 파일을 생성한다.
.class 파일을 전달한다.
크롬 개발자 도구에서 실행된 내용을 살펴보면 html 부분만 보이는데 이것은 Servlet 때문이다.
클라이언트 요청을 처리하고 응답하는 Servlet 클래스의 구현 규칙을 지킨 서버측 자바 프로그래밍 기술
웹 기반의 요청에 대한 동적인 처리가 가능한 하나의 클래스
자바를 사용하여 웹을 만들기 위해 필요한 기술. 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 하는 자바 프로그램
project 생성: new → project → Dynamic Web Project
servlet파일 생성: new → servlet → Java Package, Class name, Superclass 작성 후 next
→ url Mapping (edit), next → doPost, doGet 확인 후 finish
파일 내용 작성 후 Run As → Run on Server (alt shift + X, R) → 서버 확인 후 finish

Thread란?
운영체제로부터 시스템 자원을 할당받는 작업의 단위
참고 링크: https://mangkyu.tistory.com/14
JSP란 JavaServer Pages 의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.
JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
웹페이지를 만들기 위한 언어(웹 문서를 기술하는 언어)로 웹브라우저 위에서 동작하는 언어
Hyper Text Markup Language의 약자
HT - HyperText 문서와 문서가 링크로 연결되어 있다. M - Markup 태그로 이루어져 있다. (웹문서를 표현하기 위해 태그들로 구성되어 있다.) L - Language 언어
html 파일의 확장자명으로 html 혹은 htm을 사용한다.
w3c가 html의 국제 표준화 기구이다.
GET 방식
데이터를 URL에 포함하여 링크를 통해 값을 전달하는 방식
어떠한 정보를 가져와서 조회하기 위해서 사용되는 방식
method 속성을 생략하면 기본값이 get 방식이다. get 방식은 서버로 전달되는 자료값이 웹브라우저 주소창에 노출되어 보안성이 좋지 않다. (요청 URL에 파라미터를 붙여서 전송한다.) 그리고 서버로 보내는 자료 길이 제한도 있다.
POST 방식
HTML의 form 태그 내에 포함되어 있는 input 태그에 입력한 내용을 전송하기 위한 방법
데이터를 서버로 제출(post)하여 추가 또는 수정하기 위해서 사용하는 방식
헤더필드 중 Body의 데이터를 설명하는 Content-Type이라는 헤더 필드가 들어가고 어떠한 데이터 타입인지를 명시해주어야 한다. 데이터를 Body에 포함시키는 이점 때문에 메세지 길이의 제한은 없지만 최대 요청을 받는 시간인 Time Out이 존재하므로 클라이언트에서 페이지를 요청하고 기다리는 시간이 존재한다. POST 방식은 URL에 데이터가 노출되지 않으므로 즐겨찾기나 캐싱이 불가능하지만 쿼리스트링(문자열) 데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스와 같은 객체들의 값도 전송이 가능하다.

참고: https://mangkyu.tistory.com/17
WAS(Web Application Server)에서 웹 어플리케이션을 구분하기 위한 path
이클립스에서 프로젝트를 여러개 생성해도 톰캣(WAS)은 하나밖에 없기 때문에 실행할때 프로젝트들을 구분해 줄 필요성이 있다. 그럴때를 대비해서 서로간의 프로젝트를 구분시켜 주는 Path를 톰캣(WAS)쪽에 설정해 놓는다.
HttpServletRequest request, HttpServletResponse response
두 파라미터는 서버가 실행되면 반드시 객체가 생성되어 넘어온다.
객체는 WAS(Tomcat)가 생성한다.

HttpServletRequest 의 역할은 사용자 이름 및 암호와 같이 웹 클라이언트가 보낸 데이터 를 수신하는 것 → request 정보를 서블릿에게 전달하기 위한 목적으로 사용
클라이언트가 서버에 데이터를 요청할 때, 요청에 대한 기능과 속성을 가지고 있는 객체
클라이언트의 IP 주소, 사용 된 프로토콜 클라이언트 등과 같은 다른 클라이언트 정보를 검색 하는 많은 getXXX () 메서드 가 제공되며 브라우저의 이름, 버전 등과 같은 클라이언트의 브라우저에 대해 알 수있는 메서드도 포함된다.
HTTP 헤더와 HTTP 바디로 구성되어 있다.
Header정보, parameter, cookie, url, uri 등의 정보를 읽어들이는 메소드를 가진 클래스
bodydml steam을 읽어들이는 메소드를 가짐
메소드 정보
HttpServletResponse 의 역할은 웹 클라이언트에 데이터를 보내는 것
WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServleResponse객체를 생성하여 서블릿에게 전달 → 서블릿은 HttpServletResponse에 content type, 응답 코드, 응답 메세지 등을 담아서 전송함
서블릿에 속성을 설정 하는 많은 setXXX () 메서드가 제공됨
ServletResponse interface (javax.servlet.ServletResponse)
HttpServletResponse interface (javax.servlet.http.HttpServletResponse)
썸네일만으로 사람을 찾아버린 이모씨 왔다 갑니다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 왠지... 당신일 것 같았어....