목차
JSP
jsp란 Java Server Pages의 약자로, Java 언어를 기반으로 하는 Server Side 스크립트 언어이다. HTML 코드에 Java코드를 넣어 동적인 웹 페이지를 생성하는 웹 프로그래밍이다.
여기서 Server Side 란, 네트워크의 한 방식으로 클라이언트-서버 구조에서 서버 쪽에서 행해지는 처리를 말한다.
JSP에서는 정적인 HTML 과 동적 컨텐츠를 혼합하여 사용할 수 있다. 동적 컨텐츠는 누가, 언제, 어떻게 서버에 요청했는지에 따라 결과값을 다르게 보여주는 형식이다. 정적 컨텐츠만 사용한다면 어느 사용자에게든지 동일하게 결과값을 보여주게 되지만, 동적 컨텐츠를 사용하면 사용자마다 다른 정보를 보여줄 수 있다. 개인마다 마이페이지의 정보가 다르게 보이는 것이 그 예이다.
특징
- Java의 기능을 그대로 사용할 수 있다.
- 플랫폼에 독립적이다.
- OOP의 캡슐화로 중요한 정보를 은닉할 수 있고 코드를 숨길 수 있어 보안이 우수하다.
- 사용자 정의 태그(JSTL) 을 사용하여 보다 효율적으로 웹 사이트를 구성할 수 있다.
- 수정된 경우 재배포할 필요 없이 Tomcat(WAS)이 처리해준다.
동작 과정
- 웹 클라이언트에서 JSP 파일을 요청한다.
- 웹 서버는 사용자의 요청을 JSP 컨테이너로 넘긴다.
- JSP 파일에 대해 Servlet객체가 메모리에 존재하지 않으면 JSP 파일을 파싱하고 JSP파일을 자바파일(.java) 로 변경, 자바 코드를 서블릿 클래스로 컴파일한다.
- 컴파일된 서블릿 파일을 클라이언트에 응답한다.
내장 객체
JSP Implicit Objects 는 개발자가 선언하지 않아도 사용할 수 있는 JSP Container 에서 제공하는 Java 객체들을 말한다.
- out : JSP페이지의 출력할 내용을 가지고 있는 출력 스트림.
- request : 웹 브라우저의 요청 정보 저장
- response : 웹 브라우저의 응답 정보 저장
- config : JSP페이지 설정 정보 저장
- application : 웹 어플리케이션 Context의 정보 저장
- session : 웹 브라우저 내에서 정보를 유지하기 위해 세선 정보 저장
- pageContext : JSP페이지에 대한 정보 저장
- exception : JSP페이지에서 예외가 발생한 경우 사용
자세한 것은 이 블로그에서 확인할 수 있다.
[JSP] 내장객체(Implicit Object)와 영역(Scope)
JSP 내장객체 (Implicit Object)란? 웹 컨테이너가 객체 생성 없이 바로 사용할 수 있게 제공하는 객체 1. request 객체 - javax.servlet.http.HttpServletRequest - 웹 브라우저의 요청 정보를 저장하고 있는..
prinha.tistory.com
문법
JSP 는 HTML문서 사이에 JSP문법코드가 삽입된 형태로, 스크립트릿(Scriptlet), 선언문(Declaration), 표현식(Expression) 의 3가지 스크립트 요소를 제공한다.
1. 스크립트릿(Scriptlet)
<% %>
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>
<%
int sum = 0;
for(int i=0; i<5; i++){
sum += i;
}
%>
1부터 5까지의 합 = <%=sum%>
</body>
</html>
2. 선언문(Declarations)
<%! %>
필요한 멤버변수나 메서드 등을 선언할때 사용한다.
<%@ 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>
제 이름은 <%=getName()%> 입니다.
<%!
String name = "홍길동";
public String getName(){
return name;
}
%>
</body>
</html>
3. 표현식(Expression)
<%= %>
웹 브라우저에 출력하기 위해 사용한다.
<%@ 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>
현재 시간은 <%=now%> 입니다.
<%
Date now = new Date();
%>
</body>
</html>
JSP 액션 태그
JSP 문서 내에서 특정 동작을 하도록 지시하는 태그이다.
- <jsp:include> : 다른 페이지를 현재 페이지에 포함시킬 때 사용
- <jsp:setProperty> : 자바 빈 데이터를 입력하기 위해 사용
- <jsp:getProperty> : 자바 빈 데이터를 가져오기 위해 사용
- <jsp:forward> : 현재 페이지에서 다른 페이지로 넘어가기 위해 사용
- <jsp:element>, <jsp:attribute> : 동적으로 XML요소 정의
예시
다음과 같이 사용할 수 있다.
<jsp:forward page="home.jsp"/>