JSP_1강_1_서블릿(Servlet)

열라뽕따히·2024년 3월 13일

JSP

목록 보기
1/43

jsp 시작 전 css 초기 설정과 모두 동일하나 아래 체크만 잘 해주기!!

<css 초기설정 : https://velog.io/@dahee215/Web-Eclipse-%EC%B4%88%EA%B8%B0-%EC%84%A4%EC%A0%95>



Servlet이란?

  • 정적인 웹 페이지의 문제점을 보완하여 나온 것이 동적인 웹 페이지를 구현하는 JSP임. 하지만 사실 동적인 웹 페이지를 처음으로 구현한 것은 JSP가 아님.
  • 초기에 동적인 웹 페이지를 구현한 것은 서블릿(Servlet) 이었음.
  • 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스임.
  • 서블릿은 자바로 작성되어 있으므로 자바의 일반적인 특징을 모두 가지고 있음.
  • 서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 웹 브라우저에게 결과를 전송함.
    - 서버에서 실행되기 때문에 보안과 관련된 기능도 훨씬 안전하게 수행이 가능함.

※ 서블릿의 특징.

  1. 서버쪽에서 실행되면서 기능을 수행함.
  2. 기존의 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공함.
  3. 스레드 방식으로 실행이 됨.
  4. 자바로 만들어져서 자바의 특징(객체 지향)을 가짐.
  5. 서블릿 컨테이너(톰캣)에서 실행됨.
  6. 컨테이너 종류에 상관없이 실행됨(플랫폼 독립적).
  7. 보안 기능을 적용하기 쉬움.
  8. 웹 브라우저에서 요청시 기능을 수행함.
  • 서버에서 만들어진 서블릿이 스스로 작동하는 것이 아니라, 서블릿을 관리해주는 것이 필요한데, 이러한 역할을 하는 것이 바로 서블릿 컨테이너임.
    즉, 서블릿을 '요구사항 명세서' 라고 표현한다면, 서블릿 컨테이너는 그 명세서를 보고 개발하는 '개발자' 임.
    서블릿 컨테이너는 Client의 request(요청)를 받아주고, response(응답) 할 수 있게, 웹 서버와 소켓을 만들어 통신을 함.
    대표적으로는 무료 서비스인 톰캣(Tomcat)이 있음. 톰캣은 웹 서버와 소켓을 만들어 통신하며 JSP(Java Server Page)와 Servlet이 작동할 수 있는 환경을 만들어 줌.

* Servlet Life Cycle(서블릿 생명주기)

  1. 브라우저에서 서블릿을 호출하면 WAS는 서블릿 클래스를 로딩함.

  2. 서블릿 클래스가 로딩이 되면 인스턴스가 생성이 되고, 약속된 서블릿 Life Cycle로 init() 메서드가 자동적으로 호출이 됨.
    ==> 자바에서 main() 메서드가 호출이 되는 것처럼...

  3. 호출된 서블릿 인스턴스로부터 스레드를 생성하고 생성된 서블릿 클래스에 있는 service() 메서드를 호출함.

  4. 작업을 완료 후, 서블릿 종료 시 destroy() 메서드를 호출함.

서블릿의 생명주기(Life Cycle)

  1. init()
  • 서블릿 컨테이너가 서블릿을 생성한 후 초기화 작업을 수행하기 위해서 호출되는 메서드임. 서블릿이 클라이언트의 요청을 처리하기 전에 준비할 작업이 있다면 이 메서드에 작성을 하면 됨.
  1. service()
  • 클라이언트가 요청할 때 마다 호출되는 메서드임. 실질적으로 서비스 작업을 수행하는 메서드임. 바로 이 메서드에 해야 할 일을 작성하면 됨.
    요청에서 method 방식에 따라서 doGet() 메서드나 doPost() 메서드를 호출하여 비지니스 로직을 수행함.
  1. destroy()
  • 서블릿 컨테이너가 종료되거나 웹 애플리케이션이 종료될 때 호출이 되는 메서드임. 따라서 이 메서드에는 서비스 수행을 위해 확보되었던 자원을 해제한다거나 데이터를 저장하는 등의 마무리 작업을 진행함.

request 매개변수
- 사용자(클라이언트)의 요청에 대한 정보를 처리
- 클라이언트로부터 Servlet으로 요청이 들어오게 되면
요청 파라미터라는 것이 같이 오게 되는데, 이것에 대한
분석은 request.getParameter() 라는 메서드를 이용하여 파악하게 됨
*
response 매개변수
- 사용자의 요청 정보에 대한 처리 결과를 클라이언트에 응답하여 처리.
- 요청을 파악했다면 클라이언트로 내보낼 응답을 작성해야 함.
대부분의 웹 프로그래밍은 응답을 텍스트로 작성하며, 이 텍스트는
대부분은 HTML 페이지의 모양을 하고 있게 됨.
- 여기서의 응답은 텍스트를 기록해야 하는데, 이 때 스트림이라는
개념을 이용하여 기록을 하게 됨. 말 그대로 데이터의 흐름이라고 생각하면 됨.
Servlet에서는 클라이언트 쪽으로 보내는 데이터의 흐름을
건드려야 할 필요가 있게 됨.
- response 인자를 활용하면 응답과 관련된 많은 작업들을
할 수 있음. 응답 스트림에 텍스트를 기록하는 것도 가능함.
이 작업을 하기 위해서는 response.getWriter() 라는
메서드를 사용해야 함. 해당 메서드를 이용하여 응답으로 내보낼
출력 스트림을 얻어낸 후에 출력 스트림에 텍스트를 기록하면 됨.




=============================코드=============================

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

		<!-- HTML 주석문입니다. -->
		
		<%-- JSP 주석문입니다. --%>
		
		<h2>반갑습니다. JSP에 오신 것을 환영합니다!</h2>

</body>
</html>

=============================실행=============================

파일 소스를 보면 jsp 주석문은 보이지 않는다!

0개의 댓글