관련용어
- 서버사이드: 클라이언트-서버 관계에서 서버 측에서 이루어지는 작업
- 정적 웹페이지
- 서버에 이미 저장된 HTML문서를 출력.
- 문서가 변경되지 않는 한, 고정된 웹페이지에 접속하게 됨
- 모든 사용자는 같은 결과의 웹페이지에 액세스함
- 동적 웹페이지
- 사용자의 상황, 요청에 따라 웹페이지가 달라짐
- 보편적으로 이용하는 방법
- 서블릿(servelet): 클라이언트 요청을 처리/응답하는 자바 프로그램
- 서블릿컨테이너: 서블릿을 관리해주는 프로그램. 서블릿과 웹서버가 통신 할 수 있도록 함
- 클라이언트의 요청을 받고 응답할 수 있도록 웹서버와 소켓을 만들어 통신
- tomcat: 아파치에서 개발한 java기반의 서블릿 컨테이너
JSP
- Java Server Pages
- 서블릿을 기반으로 하는 서버사이드 스크립트 언어
- HTML에 자바 코드를 넣어 동적 웹페이지를 생성하는 도구
JSP-서블릿 비교
JSP | 서블릿 |
---|
HTML코드 내 java코드 | java코드 내 HTML 코드 |
java코드를 <% %>태그로 처리 | HTML코드를 문자열로 처리 |
// JSP
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<h1>홍길동: <%= Score.getKorScore() %></h1>
</BODY>
</HTML>
// 서블릿
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<h1>홍길동:"+Score.getKorScore()+"</h1>")
out.println("</body>");
out.println("</html>");
JSP태그
지시어(directive)
<%@ 지시어 속성="값"%>
page
<%@% page 속성="값">
속성 | 설명 |
---|
language | 스크립트 언어의 유형 정의 |
contentType | 응답컨텐츠의 타입과 인코딩방식을 설정 |
pageEncoding | 파일 저장 시 사용할 인코딩 방식 설정 |
import | 다른 문서를 import함 |
errorPage | 에러 발생 시 표시할 페이지 설정 |
isErrorPage | 에러 발생 시 jsp페이지 사용여부 설정(true,false) |
trimDirectiveWhiteSpace | 지시어 정의시 생기는 공백 삭제여부(true,false) |
include
- 다른 jps페이지를 포함시킴
- 주요 속성
- file: 현재 페이지에 포함시킬 jsp파일의 경로 지정
<%@ include file="sample/example.jsp.jsp"%>
taglib
<%@ taglib 속성 ="값"%>
- 커스텀 태그 라이브러리를 JSP 파일에서 사용할 수 있게 함
- 주요속성
- uri: 커스텀 태그 TLD 파일 위치 지정
- prefix: 태그 라이브러리의 별칭 지정
<%@ taglib uri="/META-INF/mytag.tld" prefix="mytag" %>
스크릿트립(Scriptlet)
<% 자바코드 %>
표현식
<%= 변수or메서드 %>
선언
<%! 객체생성코드 %>
- JSP페이지에서 필드나 메서드 정의 시 사용
- 자주 사용하지 않음
내장객체
- JSP가 기본적으로 내장하고 있어서 별도로 생성하지 않아도 바로 사용할 수 있는 객체
- JSP를 서블릿으로 변환 시 자동으로 객체 생성
HttpServletRequest
- request 변수에 저장됨
- 클라이언트가 서버로 보낸 요청 메세지를 저장하고 있음
HttpServletResponse
- response 변수에 저장됨
- 서버가 클라이언트에게 보낼 응답 메세지 관리
HttpSession
- session 변수에 저장됨
- 클라이언트 별로 고유하게 사용되는 객체