2. 웹 프로그래밍의 기초

  • 서블릿
    • 웹 개발의 표준
    • 서블릿 규칙에 따라 생성된 클래스
    • 서블릿을 만들려면 Java 코드를 작성하고 코드를 컴파일하고 클래스 파일을 만듭니다.
      • 서블릿은 실행 코드 방식
      • 화면에 표시되는 데이터를 변경하고 싶다면
        • 필요한 경우 코드 수정, 컴파일, 클래스 복사
        • 개발 효율성 감소
  • JSP
    • 서블릿의 단점을 보완하기 위해 만들어짐
    • 스크립트 방식
    • 서블릿 표준 기반
    • 내부적으로 jsp 파일이 컴파일되면 최종 결과로 서블릿이 생성됩니다.

서블릿 코드 예제

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;

@WebServlet("/NowServ") // 서블릿 경로명

public class NowServlet extends HttpServlet {

  @Override //get방식으로 요청한 경우 실행되는 메서드
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    //응답문서에 대한 ContentType 지정
    response.setContentType("text/html; charset=euc-kr");

    Date now = new Date();

    //브라우저에 출력할 출력 스트림
    PrintWriter writer = response.getWriter();

    writer.println("<html>");
    writer.println("<head><title>현재 시간</title></head>");
    writer.println("<body>");
    writer.println("<b>현재 시간:</b>");
    writer.println(now.toLocaleString());
    writer.println("</body>");
    writer.println("</html>");

    writer.close();
  }
}
  • Http서블릿
    • doGet 메서드
      • URL에서 Enter 키를 눌렀을 때 메소드 실행

1.JSP란?

  • 자바 서버 페이지(JSP)
    • 스크립팅 언어
    • Extending Java Servlet Technology, 웹 환경에서 Java만을 사용하여 서버측 모듈을 개발하는 기술
    • 자바 기반 동적 페이지 생성을 위한 웹 프로그래밍 언어, 서버에서 실행되는 스크립팅 언어
    • Java에서 제공하는 기능을 사용할 수 있습니다.
    • Java 언어의 특성을 변경하지 않고 유지합니다.
    • HTTP와 같은 프로토콜에 따라 클라이언트의 요청을 처리하고 응답합니다.
    • 익스프레션 랭귀지, 익스프레션, 스크립틀릿 등 다양한 스크립트 요소와 액션 태그 제공

2. JSP 액션 구조

  • 웹 브라우저에서 웹 서버로 jsp 페이지 요청
  • 웹 서버는 jsp에 대한 요청을 웹 컨테이너로 전달합니다.
  • 웹 컨테이너는 해당 jsp 페이지를 찾아 구문 분석합니다.
    • 서블릿 파일 컴파일(Java)(클래스)
  • 컴파일된 서블릿은 마침내 웹 브라우저에 응답합니다.
  • 구문 분석 프로세스는 첫 번째 요청에서만 실행됩니다.

3. 웹 컨테이너

  • 웹 애플리케이션을 실행할 수 있는 컨테이너
  • JSP 및 서블릿을 실행할 수 있는 서버
  • Tomcat: 웹 컨테이너로서 JSP와 서블릿을 지원합니다.
  • JSP를 사용하는 이유
    • Java 언어 기반, 플랫폼 독립적
    • 배우기 쉬운 스크립팅 언어
  • jsp는 실제로 Java 언어의 일부입니다.
    • Servlet이라는 클래스로 캐스팅되어 실행됩니다.
    • jsp를 사용하여 웹 서비스를 만들 때
      • 웹 서버는 Java 언어를 이해해야 합니다.
      • 클래스의 바이트코드를 이해하는 유일한 소프트웨어는 JVM입니다.
      • 대부분의 웹 서버는 Java 언어를 해석할 수 없습니다.
      • 서블릿 클래스를 해석하고 관련 개체를 관리하는 프로그램이 필요합니다.
        • => 웹 컨테이너
  • 웹 컨테이너의 역할
    • 서블릿 관리
      • 서블릿에 대한 요청을 수신하고 응답하는 중개자 역할입니다.
      • 클라이언트와 서블릿 간의 요청 및 응답 전달
      • HttpRequest 및 HttpResponse 객체를 만들고 서블릿의 doPost() 및 doGet() 메서드를 호출합니다.
    • 수명 주기 관리
      • 서블릿 클래스를 로드하여 인스턴스화
      • 초기화 메서드 호출
      • 요청이 수신되면 적절한 서블릿 메소드 호출

4. 스크립트 방식 및 실행 코드 방식

잡다

  • 스크립트 방식
    • 번역은 요청 시 1회 수행됩니다.
    • 그런 다음 페이지가 요청되면 번역된 코드가 실행됩니다.
    • asp, jsp 등과 같은 웹 응용 프로그램 서버 방식
    • 전반적인 성능은 CGI 유형의 실행 가능한 코드 동의어를 사용하는 것보다 낫습니다.
    • 클라이언트 측 스크립트
      • 클라이언트 측에서 처리
      • 자바스크립트, VB스크립트
    • 서버 측 스크립트
      • 서버에서 처리
      • ASP, JSP, PHP
  • 실행 코드 방식
    • CGI 방식, 서블릿

5. 있었다

  • 애플리케이션 서버
    • 클라이언트/서버 시스템 구조에서 서버 측 응용 프로그램의 생성, 실행 및 파괴를 관리하는 프로그램입니다.
  • 웹 애플리케이션 서버
    • 서블릿 및 서블릿 컨테이너와 같은 웹 기술을 기반으로 하는 애플리케이션 서버
    • 자바에서 무엇
      • Java EE 기술 사양에 따라 구축된 서버
      • JEUS, 웹로직, JBoss 등
    • 서블릿 컨테이너(웹 컨테이너)
      • Java EE 기술 하에서 서블릿, JSP 등 웹 관련 부분만을 구현한 서버
      • 숙취, 수지, 방파제 등