JSP Servlet

JSP Servlet 기본

wanttosleep1111 2023. 1. 26. 23:05

JSP Servlet 기본

 

1. 네트워크

  • 통신 장비들이 그물망처럼 연결되어 데이터를 교환하는 형태 
  • Node : 각각의 통신 장비, 네트워크에 연결된 컴퓨터와 그 안에 속한 장비
    ex) 허브, 공유기, 라우터 등
  • Host : 노드 중에서 어플리케이션을 실행할 수 있는 컴퓨팅 시스템을 갖춘 기기
    ※ 허브나 공유기 등은 중간노드
  • Client와 Server : 호스트 사이에 제공되는 서비스를 기준으로 호스트를 세분화
    임의의 호스트가 클라이언트나 서버로 고정되지 않고, 서비스의 종류에 따라 클라이언트나 서버가 될 수 있다.
  • request : 클라이언트가 서버에 보내는 요청
    response : 서버가 클라이언트로 보내는 응답

 

2. 웹 서버의 종류 (APACHE)

 

 

  • 오픈 소스
  • 다양한 모듈 제공
  • 강력한 커뮤니티, 다양한 자료
  • 확장성이 좋음
  • 보안 수준 높음

 

 

3. 웹 페이지

  • 정적페이지(Static Web Page)
    서버(웹 서버)에 미리 저장된 파일(HTML, 이미지, JavaScript 파일 등)이 그대로 전달되는 웹페이지
    사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정덴 웹 페이지를 보게 됨
    ex) 위키백과 등

 

  • 동적페이지(Dynamic Web Page)
    서버(웹 서버)에 있는 데이터들을 스크립트에 의해 가공처리한 후 생성되어 전달되는 웹페이지
    사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 됨
    ex) 네이버 메인페이지 등
    ※ 정적페이지로만 처리하려고 하면 엄청나게 많은 양의 HTML이 필요함 → WAS 필요
    WAS(Web Application Server) : 클라이언트의 요청에 맞는 HTML 파일을 만들어 주는 서버 프로그램

 

※ WAS Apache Tomcat 9.0 설치 및 설정 이클립스

 

① Tomcat 9.0 다운로드

 

② workspace로 사용할 폴더를 생성하고 이클립스 실행 후 workspace 교체

 

③ 서버탭에 있는 No servers are available~ 클릭해서 서버 Tomcat v9.0 Server 지정 후 Tomcat 폴더 지정

 

④ 포트 오류가 뜬다면 서버 탭의 Tomcat을 클릭해 포트 번호를 1정도 올리거나 해서 바꿔주기

(컴퓨터에 다른 프로그램과 포트 번호 중복이 일어날 수 있음)

 

4. 서버사이드 스크립트 언어 : 프로그램이 동작되기 위한 작업을 서버에서 제공

  • 종류 : PHP, JSP, ASP.net
  • JSP : 자바를 기반으로 한 언어

 


 

5. Servlet

  • Server + Applet : 서버 상에서 작동하는 응용 프로그램
  • Java를 기반으로 하는 Web Application Programming 기술
  • Client의 요청에 동적으로 작동, 응답은 HTML 형식으로 제공

※ 동적 웹 페이지 프로젝트 시작

New → Dynamic Web Project

New → Other → dy 검색 → Dynamic Web Project

 

Target runtime의 서버를 확인하고 Finish

 

※ Servlet, HTML, CSS, JS 위치

 

 

 

▶ Servlet 생성

  • Servlet 생성 → Next 2번 클릭
    Constructors from superclass, inherited abstract methods 체크
    init, destroy, service, doget, dopost 체크

 

※ 각 코드 혹은 메소드 설명

  • URL Mapping 설정
    실제 Servlet 클래스의 문자열 경로와 url pattern 일치
    외부에서 봤을 때, 다른 url pattern 명으로 변경
    ※ @ : annotation, 기능을 제공해주는 주석 

실제 Servlet 클래스의 문자열 경로와 URL pattern 일치

 

Ctrl+F11을 눌러 실행하면 나오는 웹 페이지 주소창 주소 확인

 

 

  • public class Servlet이름 extends HttpServlet { }
    HttpServlet을 상속 받는 클래스, Tomcat WAS를 설정했기 때문에 사용 가능

 

  • private static final long serialVersionUID = 1L;
    지워도 상관없는 필드이지만, JVM 컴파일 하는 과정에서 Servlet을 못 찾을 수 있기 때문에 지우지 않음

 

  • 생성자
    객체 생성, 초기화
    그냥 부모 클래스에서 호출만 해서 사용해도 됨 → 안 만들어도 무방하다
    (Servlet 호출을 확인하기 위해 생성자 호출 구문 작성)

 

  • init
    Servlet 역할을 한다라는 것을 알려주는 초기값 설정하는 메소드
    객체 생성 후 자동 호출되며, 딱 한번만 호출됨
    Servlet 생성, 초기화하는 작업은 많은 자원이 필요하므로, 똑같은 요청이 들어올 때마다 새로 초기화 하는것은 불필요하다. → 메모리에 올려둠
    그냥 부모 클래스에서 호출만 해서 사용해도 됨 → 안 만들어도 무방하다
    (Servlet 호출을 확인하기 위해 Servlet 초기화 구문 작성)

 

  • destroy
    Servlet 종료 시 실행되는 메소드 (딱 한번만 호출)
    그냥 부모 클래스에서 호출만 해서 사용해도 됨 → 안 만들어도 무방하다
    (Servlet 호출을 확인하기 위해 Servlet 종료 구문 작성)

  • service
    Java main method 역할
    Clinet 요청을 처리해주는 메소드
    요청 방식(get, post, put, delete)의 구분 없이 모든 요청을 처리하는 메소드
    (Servlet 호출을 확인하기 위해 Service 호출 구문 작성)

  • doGet, doPost
    요청 방식에 따라서 다른 기능을 수행하고 싶을 때 사용하는 메소드

 

 

▶ Servlet 생성 주기 확인

서버를 중지하고 다시 Ctrl+F11을 눌러 실행시킨 후 콘솔창 확인

① 생성자 호출(생성자) → Servlet 초기화!(init) → Service 호출!!(service)

② 열려있는 웹 페이지에 F5를 눌러 새로고침하면 Service 호출!!(service) 반복

③ 서버탭의 Tomcat을 강제로 중지하면 Servlet 종료!!(destroy) 

 


 

※ 이클립스 UTF-8 설정하기 (한글 깨짐 방지)

① Window → Preferences

 

② General → Content Types → CSS, HTML, JSP, JSP 하위항목 → Defalut encoding을 UTF-8로 update

 

③ Editors → Text Editors → Spelling → Encoding을 Default(UTF-8) 체크 후 apply

 

④ Web → CSS Files, HTML Files, JSP Files → Encoding을 맨 위 UTF-8로 바꾼 후 apply