DirectiveScript
DirectiveScript
JSP 기본
Java Server Pages
- 동적 웹페이지를 개발하기 위한 웹 프로그래밍 기술
- Java 언어를 사용하여 Server 측에서 웹 페이지들을 생성해 웹 브라우저로 전송
기본 용어 소개
Server
- 웹에서 서비스를 제공하는 컴퓨터 시스템
Web Server
- 사용자로부터 HTTP를 통해 요청을 받거나, 웹 컨테이너가 전달해준 결과물을 정적인 페이지로 생성하여 사용자에게 응답해주는 소프트웨어
Web Container
- 웹 서버가 전송해준 요청을 기초로 동적인 페이지를 생성하여 웹 서버로 돌려줌
- 동적인 페이지라고 표현하는 이유는 사용자마다 다른 결과로 응답할 수 있기 때문
WAS(Web Application Server)
- 웹 애플리케이션이 실행될 수 있는 환경을 제공하는 소프트웨어
- 컴퓨터에서 운영체제와 비슷한 역할을 하는 소프트웨어
- 웹 서버와 웹 컨테이너를 포함한 개념(톰캣, 웹로직, 웹스피어 등)
HTTP(Hyper Text Transfer Protocol) / HTTPS(HTTP Secure)
- www(World Wide Web)에서 웹 서버와 사용자 사이의 통신을 위해 사용하는 통신 프로토콜
- 사용자가 요청하면 웹 서버가 응답하는 단순한 구조의 프로토콜
Protocol
- 네트워크를 통해 컴퓨터들이 정보를 주고받는 절차 혹은 통신 규약
- 서로 다른 컴퓨터들이 대화하는 데 필요한 공통 언어 역할
- HTTP, FTP, SMTP 등
Port
- 컴퓨터 사이에서 데이터를 주고받을 수 있는 통로
- HTTP는 80번 포트, HTTPS는 443번 포트 사용
동적 웹 페이지와 JSP
정적 웹 페이지와 동적 웹 페이지
정적 웹 페이지(static web page)
- 웹 서버에 저장되어 있는 파일을 그대로 웹 브라우저에 전송해 출력하는 가장 기본적 웹 페이지
- 클라이언트가 어떤 형태로 요청하더라도 같은 페이지는 항상 동일한 모습을 보임
- 웹브라우저(클라이언트) <—> 웹 서버 <—> 저장소(HTML, 이미지 등)
동적 웹 페이지(dynamic web page)
- 동일한 페이지라 할지라도 그때그때 내용이 달라질 수 있는 웹 페이지
- 서버가 클라이언트의 요청을 해석하여 가장 적절한 웹 페이지를 그때그때 생성해 보내주는 기술
- 클라이언트는 요청한 계정, 시간, 지역, 언어, 기타 입력값에 따라 다른 결과를 받음
- 전처리 과정을 거쳐 응답 페이지를 동적으로 생성
- 웹브라우저(클라이언트) <—> 웹 서버 <—> 전처리 <—> 저장소, DB
서블릿과 JSP 주요 차이
| 서블릿 | JSP |
|---|---|
| 자바 코드 안에서 전체 HTML 페이지를 생성 | HTML 코드 안에서 필요한 부분만 자바 코드를 스크립트 형태로 추가 |
| 변수 선언 및 초기화가 반드시 선행되어야 함 | 자주 쓰이는 기능을 내장 객체로 제공하여 즉시 사용 가능 |
| 컨트롤러(Controller)를 만들 때 사용 | 처리된 결과를 보여주는 뷰(View)를 만들 때 사용 |
JSP 파일 기본 구조
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%--지시어--%>
<%@page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--
스크립트 요소(선언부)--%>
<%!
String str1 = "JSP";
String str2 = "안녕하세요";
%>
<%
String str3 = request.getParameter("lang");
%>
<!
DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> HELLO JSP</title>
</head>
<body>
<%--
스크립트 요소(표현식)--%>
<h2> 처음 만들어보는 <%=str1 %></h2>
<p>
<%--
스크립트 요소(스크립틀릿)--%>
<%
out.
println(str2 +str1+"입니다.");
%>
<%=str3%>
</p>
</body>
</html>
지시어 Directive
<%@ 지시어 종류 속성1=”값1” 속성2=”값2” %>
page 지시어
- JSP 페이지에 대한 정보를 설정
| 속성 | 내용 | 기본값 |
|---|---|---|
| info | 페이지에 대한 설명을 입력 | 없음 |
| language | 페이지에서 사용할 스크립팅 언어 지정 | java |
| contentType | 페이지에서 생성할 MIME 타입을 지정 | 없음 |
| pageEncoding | charset과 같이 인코딩을 지정 | ISO-8859-1 |
| import | 페이지에서 사용할 자바 패키지와 클래스를 지정 | 없음 |
| session | 세션 사용 여부 지정 | true |
| buffer | 출력 버퍼가 모두 채워졌을 때 자동으로 비울 지를 결정, buffer 속성이 none일 때 false로 지정하면 에러 발생 | true |
| autoFlush | 출력 버퍼가 모두 채워졌을 때 자동으로 비울 지 결정, buffer 속성이 none일 때 false로 지정하면 에러 발생 | true |
| trimeDirective Whitespaces | 지시어 선언으로 인한 공백을 제거할지 여부를 지정 | false |
| errorPage | 해당 페이지에서 에러가 발생했을 때 에러 발생 여부를 보여줄 페이지를 지정 | 없음 |
| isErrorPage | 해당 페이지가 에러를 처리할지 여부를 지정 | false |
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.