NEW > Dynamic Web Project > Project name: webJSP > Finish -> webJSP 프로젝트 생성! > webapp에 index.jsp 생성!
웹 애플리케이션의 기본 디렉터리 구조
C:\Program Files\Apache Software Foundation\Tomcat 9.0\webapps\webJSP 경로 안에 WEB-INF 폴더가 있음
webapps
웹 애플리케이션의 루트 디렉터리, 다른 웹 애플리케이션 이름과 중복을 허용하지 않고, 여기에는 JSP HTML 파일이 저장된다.
WEB-INF
웹 애플리케이션에 관한 정보가 저장되는 곳으로 이 디렉터리는 외부에서 접근할 수 없다.
classes
웹 애플리케이션이 수행하는 서블릿과 다른 일반 클래스들이 위치하는 곳
Lib
웹 애플리케이션에서 사용되는 여러 라이브러리 압축 파일(jar 파일)이 저장되는 곳
DB연동 드라이버나 프레임워크 기능 관련 jar 파일이 여기에 저장된다.
web.xml
웹 애플리케이션에 대한 여러 가지 설정을 할 때 사용된다.
이클립스의 Project Explorer에 나오는 webJSP프로젝트에서의 구조와 동일하다.
JSP(Java Server Pages)
Java 언어를 기반으로 하는 Server Side 스크립트 언어로 HTML 코드에 Java코드를 넣어 동적인 웹 페이지를 생성하는 웹 애플리케이션 도구
JSP를 통해 정적인 HTML과 동적으로 생성된 contents(HTTP 요청 파라미터)를 혼합해 사용할 수 있다.(즉, 사용자가 입력한 contents에 맞게 동적인 웹 페이지를 생성한다.
<% 자바코드 %>로 둘러싸인 스크립트 영역이 있고, 실행 시에 javax.servlet.http.HttpServlet 클래스를 상속받은 Java 소스코드로 변환한 다음 컴파일되어 실행된다.!!!(JSP 파일을 Servelt 클래스로 변환하고 실행시켜주는 역할을 하는 프로그램을 서블릿 컨테이너라고 한다.)
JSP는 실행시에는 자바 서블릿으로 변환된 후 실행되기 때문에 서블릿과 거의 유사하다고 할 수 있다. 하지만 서블릿과 달리 HTML 표준에 따라 작성되기 때문에 웹 디자인하기에 편리하다.
JSP의 특징
Tomcat(WAS)이 이미 만들어놓은 객체(predefined values)를 사용한다. (내장 객체 request, response, session, out, application..)
Predefined Values(또는 Implicit Object) : 미리 정의된 객체(내장 객체)로, WAS가 제공하는 객체를 의미
request
the HttpServletRequest Object(입출력 객체)
response
the HttpServletResponse Object(입출력 객체)
session
the HttpSession Object
out
the PrintWriter Object(입출력 객체)
application
the ServletContext Object
내장객체는 JSP 컨테이너에 의해 Servlet으로 변화될 때 자동으로 객체가 생성된다.
HTML 코드 안에 Java 코드가 있기 때문에 HTML 코드를 작성하기 쉽다.
Servlet과 다르게 JSP는 수정되는 경우 재배포할 필요 없이 Tomcat(WAS)이 알아서 처리해준다.
하나의 JSP 페이지가 하나의 Java 클래스이기 때문에 모든 Java 라이브러리를 끌어다 쓸 수 있다.
JSP 동작 원리
1. 클라이언트가 웹 브라우저로 요청(웹 브라우저 요청) http://localhost:9090/webJSP/index.jsp 2. JSP >> Servlet JSP는 웹 어플리케이션 서버(WAS)의 서블릿 컨테이너에서 서블릿 원시 코드로 변환된다. (index.jsp >> index_jsp.java) 3. Servlet >> class 변환된 서블릿 원시코드는 바로 컴파일된 후에 (index_jsp.java >> index_jsp.class) 4. 실행되어 결과를 HTML 형태로 클라이언트에 돌려준다. (웹브라우저 응답)
Servlet(Server Application Let)
Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술
즉, 자바 웹 서버로 웹 페이지를 제공할 때, 동적인 데이터를 제공하는 것을 도와준다.
JSP
Servlet
HTML 코드에 Java언어를 삽입해 동적 문서를 만들 수 있다.
Java언어를 이용해 문서를 작성하고 출력객체를 통해 HTML 코드를 삽입한다.
기본 문법
<%@ 지시부 %>
JSP 페이지의 전체적인 속성을 지정할 때 사용, import 구문
.jsp 파일의 제일 상단
page 지시자: 페이지의 전체적인 속성을 지정할 때 사용. 사용되는 언어와 import문을 많이 사용한다.
include 지시자: 별도의 페이지를 현재 페이지에 삽입할 때 사용하고, file 속성을 이용