JSP페이지란?
Java Server Page:서버(WAS)에서 동작하는 class
HTML문서안 사이사이에 JSP문법의 코드가 삽입되는 형태 작성
HTML코드는 그래도 클라이언트(웹브라우져)전송되지만, <%%>서버태그는 웹 컨테이너쪽에서 실행되고
결과만 웹 브라우저로 전송된다.
처리 과정 :
웹컨테이너는 JSP페이지 전체를 서블릿 클래스의 소스코드로 변환한다.
그 소스코드를 컴파일해서 그 결과를 가지고 서블릿 객체를 만들고
그 서블릿 객체를 초기화해서 서블릿을 만든다.
즉, 웹브라우저로 부터 URL이 왔을때 실행되는것은 서블릿이다.
JSP문법
첫번째,
기본사용법
<%시작%>닫으면서 마감 : 스크립트릿 형태
웹서버쪽에서 로직을 수행하고, 그 결과만 웹 브라우저로 전송하여 결과를 출력해준다.
즉 페이지 소스보기를 하면 로직은 보이지 않는다.
ex)
<%=total%> (total 변수안의 있는 값을 출력하라)
<%=total+101%> (total 변수에 101을 더한 값을 출력하라)
<%=Math.sqrt(num)%>
선언부
<%! 변수의 선언문이나 메소드의 선언문을 쓴다.%>
<%!final static int MAX=1000;%>
<%!
private int add(int num1,int num2){
int sum=num1+num2;
return sum;
}
%>
<%=add(3,5)%>
지시자(directive)
<%@시작>닫으면서 마감
JSP다른 문법들과는 다른 목적으로 사용한다.
웹브라우저로부터 요청이 처리하는 것이 아니라,
웹 컨테이너가 JSP페이지를 서블릿으로 변환할때 필요한 정보들을 기술하는 용도로 사용한다.
지시자의 종류는 3가지
1.page 지시자 : JSP페이지 전테에 적용될 정보를 기술하기 위해 사용
-contentType : jsp페이지가 생성하는 문서의 종류와 그 문서를 웹트라우저로 전송할때 사용되는 인코딩 타입
-import : 스크립트 요소안에서 사용할 자바 클래스와 인터페이스를 임포트할때 사용
-buffer : 출력 버퍼의 사이즈
-autoFlush : 출력 버터가 꽉 찼을때 비워내는 동작(true,false)
-session : jsp페이지의 세션참여 여부를 셋팅(true,false)
-language : 어떤 언어를 사용할지 선택 (여기서는 java를 쓴다)
ex) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" buffer="4kb"%>
2.include 지시자 : 다른 jsp페이지 또는 html페이지를 불러다가 현재 페이지의 일부로 만들기 위해서 사용
ex) <%@ include file="test.2.jsp"%>
3.taglib 지시자 : jsp문법중에서 액션(action)을 사용할때 필요하다.
ex) <%@ taglib prefix="c" uri=http://java.sun.com//jsp/jstl/core%>
-c라는 액션은 uri에서 제공하는 core.class의 기능을 사용하도록 객체 생성
자세한 설명은 차후
두번째,
${로 시작하서 끝나는} 형태
자바코드를 대신해서 사용하는 형태
${}:데이터의 이름이나 간단한 식을 표현할 수 있게 제공하는 방식
3.<jsp:forward><C:if>xml형태
액션태그 if절이나, for문, switch문같은 로직을 수행할 수 있도록 제공
WAS내부에 존재하는 내장객체
JSP 페이지의 내장변수(implicit Variable):
선언하지 않고 사용가능한 객체.
WAS가 시작되었을때 기본적인 lib 폴더안의 모든 클래스들을 WAS의 메모리(컨테이너)안으로 적재하여 보관하고 있다.
<%= %> --> out.prin("<html></html>")
out객체 : PrintWriter out = response.getWriter();
결론 :
JSP페이지 안에서는 내장변수를 사용가능 한 이유는 웹 컨테이너가 JSP페이지를 서블릿 클래스로 변환할때 자동적으로 내장변수를 선언해주기 때문이다.
웹 컨테이너에서 제공하는 변수:
-request (요청) : javax.servlet.http.HttpServletRequest
-response(응답) :javax.servlet.http.HttpServletResponse
-out(출력) : javax.servlet.http.jspWriter
-application : jsp페이지가 속하는 웹 어플리케이션에 관련된 기능
javax.servlet.ServletContext
-config : jsp페이지의 구성정보를 가져오는 기능
javax.servlet.ServletConfig
-pageContext : jsp페이지 범위 내에서 사용할 수 있는 데이터 저장 기능
javax.servlet.jsp.PageContext
-page : jsp페이지로부터 생성돈 서블릿
Java.lang.Object
-session : 세션
javax.servlet.http.HttpSession
JVM
-exception : 예외처리
java.lang.Throwable
파일입출력
다른 JSP페이지 호출
'개발 > HTML5' 카테고리의 다른 글
JSP에서의 페이지 이동 방법 (0) | 2014.12.22 |
---|---|
웹 관련 정리 내용 (0) | 2014.12.19 |
03.HTML - form요소과 form내부의 input요소 (2) | 2014.12.02 |
02.HTML - Table 태그의 종류 및 사용법 (0) | 2014.12.02 |
01.HTML - 기본 태그 설명 및 예제 (0) | 2014.12.02 |
댓글