서버
웹에서 서비스를 제공하는 컴퓨터 시스템.
서비스를 제공하는 웹 애플리케이션은 서버 컴퓨터에 파일의 형태로 저장되어 있습니다.
웹서버
사용자로부터 HTTP를 통해 요청을 받거나,
웹 컨테이너가 전달해준 결과물을 정적인 페이지로 생성하여 사용자에게 응답해주는 소프트웨어.
웹 컨테이너
웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려줍니다.
WAS(Web Application Server)
웹 애플리케이션이 실행될 수 있는 환경을 제공하는 소프트웨어.
컴퓨터에서 운영체제와 비슷한 역할을 하는 소프트웨어라 할 수 있습니다.
웹 서버와 웹 컨테이너를 포함한 개념. ex) 톰캣, 웹로직, 웹스피어 등
HTTP(HyperText Transfer Protocol) / HTTPS(HTTP Secure)
World Wide Web(www)에서 웹 서버와 사용자 사이의 통신을 위해 사용하는 통신 프로토콜. HTTPS는 암호화된 HTTP
프로토콜
네트워크를 통해 컴퓨터들이 정보를 주고받는 절차 혹은 통신 규약을 말함.
HTTP도 프로토콜의 한 종류. 파일 전송을 위한 FTP, 메일 전송을 위한 SMTP 등이 있음
포트(Port)
컴퓨터 사이에서 데이터를 주고받을 수 있는 통로.
IP주소를 통해 서버 컴퓨터의 위치를 파악. HTTP는 80번 포트를, HTTPS는 443포트를 사용
서블릿(Servlet)
클라이언트의 요청을 받으면 서버에서 처리한 후, 응답으로는 결과값만 보내주는 구조
'전처리' 부분을 서블릿이 담당하는 구조. 서블릿은 자바 파일(.java)을 컴파일한 클래스 파일(.class)형태.
이를 실행하고 관리해주는 런타임을 서블릿 컨테이너. 대표적인 서블릿 컨테이너로는 아파치 톰캣이 있습니다.
JSP
서블릿은 기본적으로 자바 코드인데, 결과로 보여줄 HTML코드를 일일이 자바로 생성, 조합하면 많은 코드가 필요.
따라서 기본을 HTML로 하고 필요한 부분만 자바 코드를 삽입하는 형태인 JSP 탄생.
JSP는 웹브라우저에 띄울 HTML을 파일을 생성하는 것입니다.
JSP 파일을 서블릿으로 변환하여 서블릿을 실행하는 방식. 한 번 서블릿으로 컴파일된 JSP파일은 캐시되므로 실질적인 성능 저하 없이 개발 생산성과 유지보수 편의성을 모두 얻는 방식.
JSP는 클라이언트에 보여주는 결과 페이지를 생성할 때 주로 쓰이며, 서블릿은 UI요소가 없는 제어나 기타 처리 용도로 쓰입니다.
오늘날의 웹 사이트
동적 웹이 반드시 좋은 것만은 아님. 정젖 웹 페이지가 만들기 쉽고 속도도 빠르고, 운영 비용도 저렴.
따라서 내용이 변하지 않는 콘텐츠라면 정적 웹으로 구성하는 것이 좋음.
JSP 지시어
지시어는 JSP 페이지를 자바(서블릿)코드로 변환하는데 필요한 정보를 JSP엔진에 알려줍니다.
<%@ 지시어종류 속성1="값1" 속성2="값2" ... %>
사용할 수 있는 속성은 지시어마다 다르며, 지시어의 종류는 3가지가 있습니다.
- page 지시어 : JSP 페이지에 대한 정보를 설정 (문서의 타입, 에러 페이지, MIME 타입 등)
- include 지시어 : 외부 파일을 현재 JSP 페이지에 포함
- taglib 지시어 : 표현 언어에서 사용할 자바 클래스나 JSTL을 선언
page 지시어의 buffer 속성을 통해 버퍼의 크기를 설정할 수 있습니다. (기본값은 8kb)
buffer 속성을 통해 버퍼의 크기나 사용 여부를 지정할 수 있지만 크기를 줄이면 JSP기능을 온전히 사용하지 못합니다.
<%@ page buffer="1kb"%>
include 지시어의 형식은 다음과 같습니다.
<%@ include file="포함할 파일의 경로"%>
include 지시어를 이용하면 포함한 파일의 소스 자체가 이 문서에 포함됩니다. 따라서 선언한 변수도 사용할 수 있게 됩니다.
taglib 지시어는 EL(표현언어)에서 자바 클래스의 메서드를 호출하거나,
JSTL(JSP 표준 태그 라이브러리)을 사용하기 위한 지시어입니다.
스크립트 요소
스크립트 요소는 JSP에서 자바 코드를 직접 작성할수 있게 해줍니다. 용도에 따라 선언부, 스크립틀릿, 표현식이 있습니다.
JSP는 클라이언트의 요청을 받아 실행될 때 서블릿(자바 코드)으로 변환되고, 클래스로 컴파일된 후 응답하게 됩니다.
이 변환 과정에서 _jspService() 메서드가 생성되는데, 변환된 코드의 위치는 스크립트 요소에 따라 _jspService() 메서드 내부 혹은 외부에 놓일 수 있습니다.
선언부(Declaration)
선언부는 스크립틀릿이나 표현식에서 사용할 변수나 메서드를 선언합니다.
서블릿으로 변환 시 _jspService()메서드 '외부'에 선언됩니다.
<%! 메서드 선언 %>
스크립틀릿(Scriptlet)
JSP 페이지 가요청을 받을 때 실행돼야 할 자바 코드를 작성하는 영역입니다.
_jspService() 메서드 '내부'에 그대로 기술됩니다.
<% 자바 코드 %>
표현식(Expression)
실제 결과로 하나의 값이 남는 문장, 즉 상수, 변수, 연산자를 사용한 식, '변환값이 있는' 메서드 호출 등이 모두 표현식에 속합니다.
주로 변수의 값을 웹 브라우저 화면에 출력할 때 사용합니다.
<%= 자바 표현식 %>
'Web' 카테고리의 다른 글
Mac m1에서 자바 버전 변경하기(brew 사용) (2) | 2023.10.17 |
---|---|
세션(Session) with JSP (0) | 2023.08.18 |
쿠키(Cookie) with JSP (0) | 2023.06.21 |
JSP 내장 객체(Implicit Object) (0) | 2023.06.20 |