ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ Web ] Tomcat, html, JSP
    PROGRAMMING/Web 2022. 5. 25. 22:57

    하루입니다.

     

     


     

     

    톰캣

    Tomcat은 Web Application Server(WAS), 즉 Web Application Program을 실행시켜주는 서버이다. Servlet/JSP 컨테이너의 역할을 수행한다.

     

    ??? 컨테이너가 뭔데요

     

     

    컨테이너

    • 객체의 생명주기(Life cycle)를 관리한다.
              생명주기 관리: 객체 생성, 객체의 초기화, 생성된 객체 유지/관리, 객체 폐기 
    • 객체의 저장소
    • 아래의 것들을 실행한다

     

     

    Tomcat이 JSP를 실행하는 프로세스

    1. http://localhost/web/home.jsp url을 tomcat에 전송
    2. Tomcat의 작업
    3. 웹브라우저에 웹페이지가 표시됨

    4. http://localhost/web/home.jsp url을 tomcat에 전송
    5. Tomcat의 작업
    - 객체의 _jspService() 메소드를 실행해서 클라이언트의 요청을 처리하고
      응답컨텐츠를 제공
    6. 웹브라우저에 웹페이지가 표시됨

    7. home.jsp 코드 수정
    8. Tomcat의 작업
    - 객체의 _jspDestroy() 메소드를 실행하고, 객체 폐기

    9. http://localhost/web/home.jsp url을 tomcat에 전송
    10. Tomcat의 작업

    11. 웹브라우저에 웹페이지가 표시됨

     

    흠 그러니까 말이죠. 톰캣은 우리가 만든 파일을 컴파일해서 컴터가 읽을 수 있게 하고, 초기화하고, _jspService() 메소드를 실행해서 클라이언트의 요청에 응답해 웹페이지가 뜨게 만듭니다. 다시 같은 페이지를 요청하면 또 다시 _jspService() 메소드를 실행해서 웹페이지를 뜨게 합니다. 엥 그런데 코드를 수정했다고요? 그럼 원래 잇던 페이지 소스는 사용하지 못하니까 객체 폐기_jspDestroy()  후 처음의 과정을 반복합니다. 그리고 _jspService() 메소드를 실행해서 다시 웹페이지가 뜹니다. 

     

     

     

    웹페이지와 웹어플리케이션의 차이

    • 웹페이지 : 정적 자원을 제공한다. 
    • 웹 애플리케이션 : 동적 자원이 제공된다.
    • 정적 자원은 기업 소개페이지 이런 거고, 동적 자원은 로그인 후 사람마다 다르게 보이는 화면 이런 거라고 한다.

     

     

     

    HTTP

    • HTTP는 웹브라우져와 웹서버 간의 메세지 교환시 사용되는 규칙을 정의한다. 클라이언트는 요청하고, 서버는 응답한다.
    • 링크를 클릭할 떄, 주소를 입력할 때 등의 것들이 모두 요청이다.
    • 웹서버는 이를 분석해서 응답한다. -> 웹페이지가 표현된다. 

     

     

     

    HTTP 메세지

    • 요청 메세지 = Request Header + 빈줄 + Request Body
    • Request Line은 안에 프로토콜 버전, 요청 방식, 요청 url 등이 들어있는 가장 중요한 부분이다.
    • Request Headers에는 사용 언어, 압축 가능 방식, 컨텐츠 길이 등이 들어있다.

     

     

     

    • 응답 메세지 = Response Header + 빈줄 + Response Body
    • Status Line의 대역 중요. 100은 안 씀, 200은 정상, 300은 리다이렉션, 400은 클라이언트 오류, 500은 서버 오류. 
    • Response Header의 컨텐츠 타입을 먼저 보고 그에 따라 다르게 실행시킴. 엑셀이면 엑셀을 실행시키거나, jpg면 그림을 로딩한다거나. 
    • 대역과 컨텐츠 타입은 가끔 우리가 조작할 때도 있다.

     

     

    JSP

    • JavaServer Pages
    • 자바 서버 페이지는 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 서버 사이드 스크립트 언어이다. Java EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다. (출처: 위키백과)
    • JSP는 HTML 태그로 구성된 문서내에서 자바코딩이 가능한 파일이다.
    • JSP를 사용해서 개발된 웹 애플리케이션을 실행하기 위해서는 웹 애플리케이션 서버가 필요하다.

     

    Dynamic Web Project 구성

     

    JSP의 구성요소 (중요해요)

    디렉티브(지시어)

    <%@ jsp 페이지 설정 정보%>

    JSP 페이지에 대한 설정정보를 정의하는 JSP의 구성요소다.

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    
            language="java" 
                JSP 페이지에서 사용하는 프로그래밍 언어는 자바다.
            contentType="text/html; charset=UTF-8" 
                JSP 페이지가 응답으로 제공하는 컨텐츠는 HTML 컨텐츠다. 한글을 지원하기 위해서 캐릭터셋은 utf-8이다.
            pageEncoding="UTF-8"
                JSP 파일을 저장할 때 utf-8방식으로 저장해라
                
    <%@ include %>
    	include 지시어 : JSP 페이지에 포함시킬 다른 JSP 페이지를 정의한다.
    
    <%@ taglib %>
    	태그라이브러리 지시어 : JSP 페이지에서 사용할 태그라이브러리를 정의한다.

     

    스크립틀릿

    <% 자바 코드 %>

    JSP 페이지에서 java 코딩영역을 생성하는 JSP의 구성요소다.

     

    표현식

    <%=변수명 혹은 반환값이 있는 메소드%>

    변수의 값을 출력에 포함시킬 때 사용하는 JSP의 구성요소다.

     

    선언식

    <%! 변수 선언 혹은 메소드 정의 %>

    스크립틀릿이나 표현식에서 사용가능한 메소드를 작성할 때 사용하는 JSP의 구성요소다.

     

    주석

    <%-- 주석문--%>

    JSP 페이지의 코드를 주석처리할 때 사용하는 JSP의 구성요소다.

     

     

     

    예시

    오른쪽이 우리가 JSP에 적은 코드. 자바와 똑같이 적으나 스크립틀릿으로 코드를 작성했다. 필드. 

    왼쪽과 같이 변환된다. int kor = 100; 이런 식으로.

     

     

    이번엔 표현식으로 적었다. 

    왼쪽은 표현식으로 작성한 코드가 out.print/write로 변환된 모습. 뒤에 ;이 알아서 붙기에 표현식 안에서 ;를 붙일 필요가 없다.

     

     

     

     

    끝!

     

     


     

     

    잘못된 정보에 대한 지적은 언제나 환영입니다. 

     

    복습 끝!

     

     

Designed by Tistory.