JSP - Java Server Page
서버(Server)
서비스를 제공하는 컴퓨터(요청을 받아 서비스를 제공함)
>> 웹 호스팅 이용시 도메인을 받아 접근이 가능
클라이언트(Client)
서비스를 이용하는 컴퓨터(요청을 시도하는 부분)
HTTP 명령 방식
● GET - URL에 정보가 노출됨(보안에 불리함)
1) 전달할 수 있는 데이터의 크기에 제한이 있음
2) URL?매개변수=값&매개변수=값 과 같은 형태로 보임
3) R(데이터 로드) 작업에 많이 활용 : SELECT
-> 서버에서 정보를 가져오려고 사용하는 방법
● POST - URL에 값이 표시되지 않음
1) 요청 헤더에 데이터를 넣어 전송하기 때문에, 데이터 크기에 제한이 없음
2) CUD(데이터 전달) 작업에 많이 활용
-> 서버에 정보를 전달하려고 사용하는 방법
GET이나 POST 요청 시 서버에 본인이 요청한 HTML 태그가 전달됨
사용자의 요청에 의해 서버에서 전송된 HTML 태그(응답)는 웹 브라우저에 의해 해석되어 화면 구성 및 배치 작업 등을 거쳐 제공됨
웹 서비스 진행 과정(클라이언트와 서버간 동작 과정)
1) URL 입력
2) IP 주소로 변환
3) HTML 페이지 요청 -> 클라이언트의 요청으로 진행
4) 3의 요청 내용을 분석 -> 서버가 진행
5) HTML 파일 전송 -> 서버가 진행
6) HTML 태그를 분석하여 화면 구성 -> 클라이언트의 요청으로 진행
아파치 톰캣
웹 서버의 역할을 담당
JSP가 운영될 환경 제공
서블릿 컨테이너 : 서블릿과 JSP를 실행하기 위한 환경을 제공함
| JSP(Java Server Page)
HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 서버 프로그래밍 언어
JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
컴파일 결과로 .java로 끝나는 파일을 생성함
>> 서블릿 Servlet
서블릿(Servlet) 파일
● .java로 끝나는 파일 >> eclipse wepapp에 생성 X
● 패키지가 항상 존재해야 함
● java언어에서 html를 작성할 수 있게 해줌
● 기본 생성자 필수

● doGet(), doPost() 메서드로 GET, POST 요청에 대해 수행할 것을 작성

● public class xxx 와는 다른 클래스 파일
-> 이러한 클래스 파일을 POJO(Plain Old Java Project)라고 함
-> 서블릿은 POJO가 아닌 클래스
● @WebServlet("/xxx") 어노테이션(애너테이션)
- > /xxx(파일명) 요청에 대해 이 서블릿 파일을 실행시켜라!
JSP 동작 과정

1. 웹 브라우저에서 URL 입력
2. DNS 서버로부터 입력한 URL을 변환한 IP주소 반환
3. 기본설정된 8080 포트에게 JSP 페이지 '요청'
4. JSP 서블릿 처리( 웹서버가 요청 내용을 분석하여 서블릿 컨테이너에게 요청을 넘겨주고 처리하는 것)
-> new 서블릿();
-> .doGET(); 호출
5. html 페이지 응답
-> 화면에 출력될 내용을 HTML 문서형태로 웹 브라우저에게 전송 == '응답'
<%@ %>
페이지 지시어
● language 속성 - 해당 페이지가 어떤 언어로 나타낼 것인지?

● import 속성

Practice


서블릿 파일


doGet() 실행
-> 객체지향언어에서 메서드가 실행되었다는 것
-> 메서드 수행 주체(=객체)가 생겼다는 의미
xxx.doGet();
xxx가 생성 되었다는 뜻(xxx는 Test 서블릿으로 만든 객체)
>> 그러나 new Test(); 가 없음. Test 서블릿이 객체화(인스턴스화, new)되지 않았는데 어떻게 실행?
-> 누군가가 new Test()하고 doGet()을 호출
== 서블릿 컨테이너(여기선 아파치 톰캣) : 객체화를 담당
-> 서블릿을 객체화 한다.