JSP

2020. 11. 17. 18:42BACK END/JSP

2020/11/17 진도 시작

 

JSP (JavaServer Pages)

JSP : JavaServer Pages의 약자

HTML 코드에 Java코드를 넣어 동적인 웹페이지를 생성하는 웹 어플리케이션 도구

JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며

웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고,

그렇게 생성된 데이터를 웹 페이지와 함께 클라이언트로 응답함

 

 

웹 (web)

웹(web) : 인터넷 기반의 정보기술

World Wide Web의 줄임말로 WWW라고도 함

전세계 거대한 네트워크 망을 통해 정보를 공유하며 정보의 흐름은 양방향성을 가짐

 

 

웹 어플리케이션(Web Application)

웹 어플리케이션 : 웹에서 실행되는 응용프로그램

인터넷에서 하는 여러 서비스를 총칭함(인터넷을 통한 은행 업무, 인터넷쇼핑 등)

사용자가 필요한 요청(Request) > 서버는 이에 해당하는 요청을 수행 > 요청한 데이터를 응답(Response)

 

 

웹 어플리케이션 동작을 위한 구성 요소

- 웹 브라우저 : 클라이언트에서 요청하고 전달받은 페이지를 볼 수 있는 환경(크롬, 사파리, IE, Firefox)

- 웹 서버 : 클라이언트로부터 요청받아 서버에 저장된 리소스를 클라이언트에게 전달(주로 정적컨텐츠 담당)

- 웹 어플리케이션 서버 : 줄여서 WAS라고 부르며 서버단에서 필요한 기능을 수행하고 그 결과를 웹서버에 전달

- 데이터베이스 : 서비스에 필요한 데이터를 보관 및 갱신 등 관리 함

 

 

자바 서블릿(Java Servlet)

서블릿 : 웹페이지를 동적으로 생성하기 위한 서버측 프로그램을 말함

자바 언어를 기반으로 만들어지며, 웹어플리케이션서버(WAS)위에서 컴파일되고 동작함

 

 

JSP와 Servlet

JSP와 서블릿은 결과적으로 하는 일은 동일하지만,

JSP : HTML 내부에 Java소스코드가 들어감으로 인해 HTML코드를 작성하기 간편하단 것이 장점

서블릿 : Java코드 내에 HTML코드가 있어서 읽고 쓰기가 불편하기 때문에 작업 효율성이 떨어짐

그럼에도 웹을 공부할 때 JSP와 서블릿을 함께 배우는 이유는,

JSP로 작성된 프로그램은 서버로 요청 시 서블릿파일로 변환 > JSP태그 분해 및 추출 > 다시 순수한 HTML을 변환

 

 


JSP 구성요소

* pdf 수업자료 p.66~

 

• 정적인 데이터(값이 변동되지 않는)

• HTML, JavaScript, CSS ☞ jQuery, BootStrap.js, Angular.js, Node.js

• XML(eXtensible Markup Language)

• JSON(JavaScript Object Notation)

• 스크립트 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)

• 지시어(Directive)

• 기본 내장 객체(Implicit Object)

• 표준 액션 태그(JavaBean, forward, include 액션 태그)

• 표현 언어 (Expression Language)

• 커스텀 태그(Custom Tag)와 표준 태그 라이브러리 JST

 

 

JSP의 구성요소 크게 6가지

1. 스크립트 요소

1) 스크립트 릿 <% ... %>

JSP페이지 내부에 자바 문장 사용

변수, 제어문, 프로그램 코드 구현 (자바에서는 지역변수)

<% 
	String name = "김철수";
	int age = 30;
%>

 

2) 표현식 <%= ... %>

출력결과에(HTML요소 내) 값(Value)를 넣기 위해 사용함

변수의 결과값, 메소드의 리턴값 등

 

3) 선언문 <%! ... %>

JSP페이지 내부에 자바 메소드를 선언함

전역 변수 및 메소드 선언 (자바에서는 인스턴스 변수, 인스턴스 메소드)

 

4) 지시어 <%@ ... %>

JSP페이지의 설정 정보에 대한 설정/셋팅

<body>
	<h1>애국가 1절</h1>
	<%@include file="a.jsp" %>
    
    <h3>이름 : <%=name %></h3>
</body>

 

 

2. 지시어(directive)

JSP에 대한 설정 정보 또는 JSP페이지에 다른 문서를 포함(include)시킬 때 사용함

 

1) <%@ page %>

JSP페이지 내부에 자바 소스코드를 삽입함

 

2) <%@ include%>

번역 단계에서 다른 문서를 포함시킴

 

3) <%@ tablib%>

태그 라이브러리를 선언함 

 

 

3. 내장객체(Implicit Object)

사전정의된 객체.

JSP컨테이너에 의해 개발자들이 명시적으로 선언하지 않고 바로 사용할 수 있는 자바객체

 

1) request : 클라이언트 > 서버로 보내지는 요청과 관련된 객체

 

2) response : 서버 > 클라이언트로 보내지는 응답과 관련된 객체

 

3) out : 출력을 클라이언트로 보내는 객체

 

4) session : 서버 측 웹컨테이너에 사용자의 상태를 관리하는 객체

 

5) application : 어플리케이션 전반에 걸친 정보를 관리하는 객체

 

6) config : 페이지와 관련된 설정(Servlet config) 객체

 

7) pageContext : 현재 페이지의 내용을 저장하고 있는 객체

 

8) page : 페이지에 대한 실제 인스턴스(자바클래스)를 저장하고 있는 객체

 

9) Exception : 이전 페이지의 에러를 저장하고 있는 객체

 

 

4. 액션태그(Action Tag)

액션태그는 xml 문법을 서블릿엔진을 제어함

 

1) jsp:include : 페이지가 요청될 때 해당 태그가 위치한 곳에 파일을 포함시킴

 

2) jsp:useBean : javaBean을 찾고 인스턴스화함

 

3) jsp:setProperty : javaBean의 프로퍼티를 설정함

 

4) jsp:getProperty : javaBean의 프로퍼티를 가져옴

 

5) jsp:forward : 하나의 JSP페이지에서 다른 JSP페이지로 강제이동

 

6) jsp:plugin : javaBean또는Applet을 현재 JSP페이지에 포함시킬 때 사용함

 

7) jsp:element : xml태그를 동적으로 정의함

 

8) jsp:attribute : 동적으로 정의된 xml태그의 속성을 정의함

 

9) jsp:body : 동적으로 정의된 xml태그의 본문을 정의함

 

10) jsp:text : JSP페이지와 문서에 텍스트를 쓰는데 사용함

 

 

5. 표현언어(Expression Language)

기본문법 : ${expr}

스크립트 요소의 사용없이 JSP페이지에 값을 표현할 수 있는 태그 기반의 새로운 언어

표현언어의 표현식에는 정수, 부동 소수점 수, 문자열, 부울값에 대한 참거짓, 내장null 등 사용가능함

 

 

6. 사용자 정의 태그, JSTL (=표준 태그 라이브러리, JSP Standard Tag Library)

JSP가 제공해주는 태그 외에 사용자가 별도로 정의해 사용할 수 있는 태그

JSTL 또한 사용자 정의 태그에 속함

자바언어의 조건문이나 반복문 같은 프로그래밍 요소를 태그로 구현할 수 있게 해줌

JSTL의 코어태그(Core Tag)는 아래와 같음

 

1) <c:out> : <%= ... %>와 유사하며 표현식에 사용됨

 

2) <c:set> : JSP에 사용될 변수를 지정하며 범위를 설정할 수 있음

 

3) <c:remove> : 변수 제거 (범위를 설정한 경우 해당 범위내의 변수를 제거)

 

4) <c:catch> : 에러(Exception) 캐치 및 처리

 

5) <c:if> : 조건이 참일 경우 본문 포함됨

 

6) <c:choose> : 조건태그, 배타적인 조건부 연산에 사용됨

 

7) <c:when> : choose 태그가 사실일경우 본문에 포함됨

 

8) <c:otherwise> : choose 태그가 거짓일경우 본문에 포함됨

 

9) <c:import> : 설정된 url 의 자원을 삽입함

 

10) <c:forEach> : 컬렉션 또는 Map 과 같은 유형을 허용하고 이를 반복처리함

 

11) <c:forTokens> : 설정한 구분자로 분리된 토큰을 반복함

 

12) <c:param> : import 태그에 설정된 url 에 파라미터를 추가함

 

13) <c:redirect> : 새로운 url 로 리다이렉트 시킴

 

14) <c:url> : URL 를 재생성함




* 출처

사이트 : www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm

수업자료 : 첨부파일

 

 

JSP 교안.pdf
7.24MB
jsp_lib_file.zip
1.99MB