JSP(Java Server Page)
JSP
- HTML 내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어.
- 웹 어플리케이션 서버(WAS)에서 동작.
- code를 작성할 땐 script 기반이지만 실행을 하면 compile 기반으로 바뀜.(java → class 파일로 변환)
- 자바 서버 페이지는 실행 시에 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하지만 HTML 표준에 따라 작성되므로 웹 디자인하기 편리.
- JSP 태그 라이브러리를 사용하는 경우에는 자바 코딩없이 태그만으로 간략히 기술이 가능.
jsp 동작 흐름
JSP 동작 화면
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Hello JSP !!!
안녕 제이에스피 !
</body>
</html>
- 별도의 셋팅 없이도 한글이 깨지지 않음.
- 그냥 html 쓰듯이 쓰고 그 내용이 출력.
JSP Scriptlet
JSP 스크립팅 요소(Scripting Element)
-
선언(Declaration)
- 멤버 변수 선언이나 메소드를 선언하는 영역.
- <%! 멤버변수와 메소드 작성 %>
-
스크립트릿(Scriptlet)
- Client 요청 시마다 매번 호출되는 영역으로, Servlet으로 변환 시 service() method에 해당하는 영역.
- request, respons에 관련된 코드 구현
- <% java code %>
-
표현식 (Expression)
- 데이터를 브라우저에 출력할 때 사용.
- <%= 문자열 %>
- 문자열 뒤에 세미콜론( ; )은 작성하면 안됨.
-
주석 (Comment)
- 코드 상에서 부가 설명을 작성.
- <%— 주석 —%>
- html 주석과 jsp 주석의 차이점
-
html 주석은 자바 코드에 남지만 jsp 주석은 남지 않음
-
html 주석으로 자바 코드를 주석 처리할 수 없지만 jsp 주석은 가능.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String name = null; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Hello JSP !!!
안녕 제이에스피 !
<!-- <%= name.length() %> -->
<%-- <%= name.length() %> --%>
</body>
</html>
JSP Directive
JSP 지시자
-
page Directive
- 컨테이너에게 현재 JSP 페이지를 어떻게 처리할 것인가에 대한 정보를 제공.
- 페이지에 적용할 속성을 작성.
- <%@ page attr1=”val1” attr2=”val2” … %>
- import=”java.util.*” 이런 식으로 항상 attr=”val” 식으로 해야 함.
-
include Directive
- 특정 jsp file을 페이지에 포함.
- 여러 jsp페이지에서 반복적으로 사용되는 부분을 jsp file로 만든 후 반복 영역에 include 시켜 반복되는 코드를 줄일 수 있음.
- <%@ include file=”/templet/header.jsp %>
-
taglib Directive
JSP 기본 객체
JSP 기본 객체
- pageContext가 프로젝트 안에서 내가 보고 있는 페이지, 가장 작은 범위.
- session : pageContext와 application 중간 범위.
- application : 프로젝트 전체, 가장 넓은 범위.
- 범위 : pageContext < request < session < application
- out 대신 출력 태그(<%= %>) 써도 됨
JSP 기본객체의 영역(scope)
JSP 기본객체의 영역(scope) - 공통 method
- servlet과 jsp 페이지 간에 특저 정보를 주고 받거나 공유하기 위한 메소드를 지원.
- 자바이기 때문에 속성의 값으로 Object형 데이터를 저장할 수 있음.
WEB Page 이동
- sendRedirect는 request와 response에 있던 것을 버리고 이동.
- forward는 request와 response를 가지고 이동.