본문 바로가기
개발/HTML5

JSP기본 정의

by pastry 2014. 12. 16.

 


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페이지 호출

 

 

댓글