<한줄요약>
Servlet : java에 html을 포함시켜서 동적으로 page 생성, 전달
JSP : html에 java를 포함시켜서 동적으로 page 생성, 전달
1. Servlet이란?
- JAVA + HTML
- JAVA를 사용해서 웹 페이지를 동적으로 생성한다.
- Client가 Server에 request를 보내면, WAS는 DB를 조회, 결과 data를 이용해 페이지를 구성한다
- 이 page를 Client에 전송
- JAVA 내부의 HTML코드는 문자열로서 표현한다
- 주요 method
- service() : 요청 내용에 따라 doGet() / doPost()를 호출한다
- doGet() : get일때의 요청 처리
- doPost() : post일때의 요청 처리
2. JSP란?
- Java Server Page
- HTML + JAVA
- 서버에서 동적으로 웹 페이지를 생성한다
- 서블릿과 기능적으로 유사하지만, JAVA가 아닌 HTML 기반
- 내부적으론 JSP를 servlet으로 변환해서 사용한다
- HTML내부에서 자바 코드를 사용하기 위해 스크립팅 영역을 제공한다
- 선언 <%! %>
- 변수 / 메소드를 선언한다
<%!
String var;
public void func(){
var="value";
}
%>
- 스크립트릿 (Scriptlet) <% %>
- 내부의 java 코드를 실행한다
<%
for(int i=0; i<10; i++) {
out.println("<div>"+i+"</div>");
}
%>
- 표현식 <%= %>
- 데이터를 웹 페이지에 출력한다
<%!
String var="world";
%>
//Hello world!!
Hello <%= var =>!!
- 주석 <%-- --%>
3. JSP 지시자
Page 지시자
- 현재 JSP page에 대한 정보를 컨테이너에 알린다
<%@ page language="java", contentType="text/html;charset=ISO-8859-1", .... %>
속성 | 설명 |
language | 사용할 언어 지정, 기본 java |
info | 페이지 설명 |
contentType | 내용의 형식, 인코딩 지정 기본 text/html;charset=ISO-8859-1 |
pageEncoding | 인코딩 지정 ISO-8859-1 |
import | 사용할 JAVA 패키지 등 import |
session | 세션 사용 여부 기본 true |
errorPage | 현재 page에서 에러 발생시 처리할 JSP 지정 |
isErrorPage | 이 JSP가 에러 처리를 위한 page인지 여부 기본 false |
include 지시자
- 특정 JSP 파일을 페이지의 특정 부분에 포함시킨다
- ex) 반복 사용되는 상단 Navi부분을 별도 JSP파일로 분리 한 후, 다른 page에서 호출해 사용
<%@ include file="파일경로" %>
taglib 지시자
- JSTL 등 태그 library 이용시 사용한다
4. JSP의 기본 객체
객체 명 | 설명 |
request | 사용자 입력 정보가 전달 |
response | 사용자 요청에 대한 응답 처리 |
pageContext | JSP page와 1대1 대응 내부 객체를 얻거나 forward시 사용 |
session | 세션에 대한 정보 처리 |
application | 어플리케이션 전반 처리 |
out | 사용자에게 출력 |
config | JSP 초기화 설정 |
page | 현재 JSP page this와 비슷 |
exception | isErrorPage가 true인 page에만 존재 전달된 error 정보 저장 |
기본 객체의 Scope (영역, 유효 범위)
pageContext | 하나의 JSP 페이지 |
request | 하나의 사용자 요청 |
session | 하나의 웹 브라우저 (동일 브라우저에서 같은 페이지 처리시, session 공유) |
application | 하나의 웹 어플리케이션 |
- setAttribute, getAttribute, removeAttribute 등으로 JSP 페이지 간에 data전달/공유가 가능하다
5. 웹 페이지 이동
forward(request,response) 방법 | sendRedirect 방법 | |
호출 방법 | request.getRequestDispatcher(url).forward(request, response) | response.sendRedirect(url) |
이동 범위 | 동일 서버 내 | 아무곳이나 |
데이터 유지 | 기존 request/response가 전달되므로, 유지 | 소멸 |
속도 | 빠름 | 느림 |
'WEB 공부' 카테고리의 다른 글
[WEB] Spring - DI (0) | 2021.05.18 |
---|---|
[WEB] Cookie & Session (0) | 2021.05.16 |
[WEB] Backend - EL, JSTL (0) | 2021.05.16 |
[JAVA] JDBC (0) | 2021.05.16 |
[WEB] Frontend - Bootstrap (0) | 2021.05.15 |
[WEB] Frontend - AJAX (0) | 2021.05.15 |
[WEB] Frontend - JQuery (0) | 2021.05.09 |