포스트

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 타입을 지정없음
pageEncodingcharset과 같이 인코딩을 지정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 라이센스를 따릅니다.