1. JSP&Servlet
- JSP
- Java Server Page
- 확장자가 .jsp인 파일
- html 문서 안에 자바 언어를 삽입해 사용할 수 있도록 해줌
- Servlet
- 확장자가 .java인 파일
- 자바의 일반적인 클래스와 동일한 개념
- 웹을 다룰 수 있도록 해주는 "HttpServlet" 클래스를 상속받은 클래스를 의미함
2. 노드(node)
: 네트워크에 연결된 컴퓨터와 그 안에 속한 장비(허브, 공유기, 라우터..)
노드는 host와 중간노드로 나뉜다.
1) Host
: 노드 중에서 애플리케이션을 실행할 수 있는 컴퓨팅 시스템을 갖춘 기기
또 Host는 client와 server로 나뉜다.
- client
: 서비스를 요청하고 사용하는 호스트
- server
: 서비스를 제공하는 호스트
- 임의의 호스트가 클라이언트나 서버로 고정되지 않고
이용하는 서비스의 종류에 따라 클라이언트가 될 수 있고 서버가 될 수도 있음
2) 중간노드
: 다리역할
client가 server에 요청(request)을 하면 server는 HTML문서로 응답(response)을 한다.
3. 웹 페이지 종류
1) 정적페이지(Static Web Page)
2) 동적페이지(Dynamic Web Page)
HTML, CSS, JS로만은 동적페이지를 구현하기 힘들기 때문에
동적페이지 구현을 위해선 JSP&Servlet을 배워야 한다!
JSP&Servlet은 Java언어 기반 Web Application Programming 기술이며,
client 요청에 동적으로 작동, 응답은 HTML형식으로 제공해준다.
아파치 톰캣 9.0ver을 다운받아 이클립스(java기반이니까)에서 하게 될 것이다!
4. Servlet 기초
이클립스에서 새로 만들건데
동적인 웹 페이지를 만들기 위해 Dynamic Web Project를 선택한다.
펼치면 이 상태가 되는데 여기서
Java Resources 안 src/main/java 안에 Servlet을 만들어 사용한다.
Servlet 네임을 지정한 뒤
next를 2번 하면 밑과 같이 뜬다.
Servlet은 기본적으로 상속받는 클래스가 있는데,
위에 체크해놓은 클래스와 메소드에 대해서 간단하게 설명하고 넘어가겠다.
finish를 눌러 실행해보자.
1) URL Mapping 주석
: 먼저 @WebServlet 에서 @는 annotation으로 기능을 제공해주는 주석이다.
그리고 괄호 안의 내용이 URL Mapping 설정을 하는 것이다.
지금 열린대로 ctrl + F11을 눌러 실행하면 아무것도 없는 흰 웹 페이지가 뜨는데 그 페이지 링크를 보면 밑과 같이 생겼다.
실제 Servlet 클래스의 문자열 경로와 url pattern이 일치한다.
다른 url pattern 명으로 변경하는 게 좋다. -> 보안상의 이유와 가독성 때문에
위에서 '/Create'라고 되어있는 이유는 원래 'Ex00CreateServlet'인 걸 내가 바꾼 것이다.
다시 웹 페이지를 열어서 보면 url pattern이 'Create'로 바뀐 걸 알 수 있다.
다음부터는 굳이 만들고 나서 바꾸기 보단
서블릿 만들 때 next 한번만 누르면 이 창이 나오는데 여기서 URL mappings에서 이름을 바꾸면 더 쉽다.
2) HttpServlet을 상속받는 클래스
: tomcat WAS를 설정했기 때문에 사용가능
(tomcat이 다운로드 되어 있지 않으면 오류 발생)
이 상속클래스 안에 여러 메소드가 담기게 된다!
3) 생성자 메소드
: 객체를 생성, 초기화하는 메소드
4) init 메소드(initiate)
: 서블릿 역할을 할 거야! 를 알려주는 초기값을 설정하는 메소드
- 객체 생성 후 자동으로 호출, 딱 한번만 호출되는 메소드
왜 한번만 호출?
: 서블릿을 생성하고, 초기화하는 작업은 많은 자원을 필요로 한다.
→ 똑같은 요청이 들어올 때마다 새로 초기화시키는 건 좋지 않음!!!
→ 새로 초기화시키는 게 아닌 메모리에 올려둠
5) destroy 메소드
: 서블릿 종료 시 실행되는 메소드
- 딱 한번만 호출됨
6) service 메소드 ★★★
: Client 요청을 처리해주는 메소드 (java에서 main method 역할)
- 요청방식에 get, post, put, delete 이 있는데, service 메소드는 요청방식 구분 없이 모든 요청을 처리하는 메소드다.
이렇게 요청방식에 따라 다른 기능을 수행하고 싶을 때 사용할 수 있다.(doGet, doPost, doPut, doDelete)
-----------------------------------------------------------------------------------------------------------------------
위에 있는 모든 메소드를 실행해보면 메소드 안에 출력문을 써두었기 때문에 콘솔에는 이렇게 출력된다.
그리고, F5 누를 때마다 service는 계속 호출되지만 생성자와 초기화는 호출되지 않는다.
생성자와 초기화는 한 번씩만 호출되니까(자원 절약)
'JSP&Servlet > 기초정리' 카테고리의 다른 글
JSP&Servlet 기초 - JSP (0) | 2023.01.30 |
---|---|
Servlet 기초 - 데이터 전송방식 Get/Post (0) | 2023.01.27 |
Servlet 기초 - 실습, '==' / .equals 차이 (0) | 2023.01.26 |
Servlet 기초 - 데이터 전송(요청)과 응답 (1) | 2023.01.26 |
Servlet 기초 - Print (0) | 2023.01.26 |