본문 바로가기

JSP

JSP

*JSP

-Java Server Page

-HTML 태그에 자바로 프로그래밍하여 브라우저에 보여주는 특별한 페이지

-톰캣 서버가 번역하여 화면에 html 형태로 출력 cf) html은 웹 브라우저내의 번역기가 알아서 번역

-과정

 사용자가 브라우저 주소 입력란에 웹 서버에게 jsp 페이지 요청 -> 웹 서버는 jsp 페이지를 찾아 html 형태로 사용자에게 전송

-<%@ page 환경 설정 구현 %> : 이 파일이 jsp 파일임을 알리는 지시자임 (필수)

-<% %> : 스크립트릿, 자바 코드가 담긴 파일, html 코드 안에 들어가도 상관 X,

 서블릿 컨테이너는 이 부분을 알아서 자바 코드로 인식함

-<%= > : 표현식

 

*Servlet 대신 JSP를 사용하는 이유

-Servlet은 자바 코드 안에 html 코드가 들어가는 구조 -> 원래는 이렇게 개발했었음

-JSP는 html 안에 자바 코드가 들어가는 구조 -> 디자이너들에게 유리하게 발전

-하지만, 서블릿 컨테이너는 jsp를 있는 그대로 받아들이지 못하고 이를 jsp->서블릿 코드로 변환 후

 동작하기 때문에 서블릿 내부 과정은 꼭 알아둬야함

 

*JSP가 서블릿 컨테이너에 동작하는 순서

1) 브라우저에서 jsp 페이지를 웹 서버에 요청

2) 웹 서버는 jsp에 대한 요청을 서블릿 컨테이너에 전달

3) 서블릿 컨테이너가 해당 jsp를 찾아서 서블릿 파일(.java) 생성

4) 서블릿 파일은 컴파일되어 서블릿 클래스 파일(.class) 생성

5) 서블릿 클래스 파일을 웹 서버로 보냄

6) 웹 서버는 html 형태로 응답 결과를 브라우저로 내보내줌

 

*컨택스트 패스

-보통 프로젝트명과 일치하지만 패스명을 바꿔줄 수 있음

-어떻게? 프로젝트 생성 시에, Context root 칸에서 변경 가능

-후에, server.xml의 <context path=” ”> 속성에서 확인 가능

-소스가 있는 경로라고 할 수 있음

-왜 쓰는가? 웹 어플리케이션을 구분하기 위한 패스 (프로젝트가 여러 개일 경우)

 

*내장객체

-객체가 이미 생성된 상태로 제공되어 객체 생성 없이 바로 사용 가능한 객체

-out 내장객체

 서블릿의 response.getWriter() 메서드로 얻어낸 out 객체와 동일

 서블릿에서는 객체 생성 후 사용되지만 jsp에서는 내장 객체로 제공됨

-jsp에서는 출력할 때 out.print(“출력합니다"); 이와 같이 출력

 

*JSP 스크립트 요소 : 스크립트릿 <% %>

-웹 서버에서 실행되는 자바 코드 기술

-기술된 코드는 서블릿의 _jspService() 메서드 안으로 들어감

-일반 변수나 for문 if문과 같은 것이 기술

-html 태그 사용 가능(서블릿처럼 “<h3></h3>” “<br>” 이런식으로 기술해야함)

-이 안에 기술되는 변수는 서블릿으로 변환 시, 서블릿의 메서드로 들어가지기 때문에 지역변수 

 

*JSP 스크립트 요소 : 선언문 <%! %>

-변수 선언, 메서드 선언

-<% %>랑 다른 점은?

 스크립트릿은 서블릿에서 메서드 안으로 들어가는데 만약에, 새로운 메서드 정의나 static 변수가 필요할

 경우에 메서드나 static 변수는 클래스 영역에 선언해야하므로 이럴 때 이 태그를 사용

-이 안에 기술되는 변수는 서블릿으로 변환 시, 서블릿 클래스에 선언되는 필드

 

*JSP 스크립트 요소 : 표현식 <%= %>

-서블릿 컨테이너는 이 태그를 만나면 out.print()로 변환

 ex) <%= a %> → out.print(a);

 

*JSP 스크립트 요소 : 주석문

// or /* ….. */ or <%--  --%>

cf) html 주석 <!-- 여기에 입력 -->

 

*JSP 스크립트 요소 : 지시자 <%@  %>

-페이지에 대한 전체 속성

-에러가 발생하였을 때 보여줄 에러 페이지 

 <%@ page errorPage=”error.jsp” %>

-현재 페이지에 다른 html, jsp 페이지의 내용을 삽입할 때 (공통적인 부분)

 <%@ include file=”footer.jsp” %>

'JSP' 카테고리의 다른 글

자바 빈  (0) 2020.08.22
쿠키와 세션  (0) 2020.08.21
JSP 내장객체 / 액션태그 / 리다이렉트 / 포워드  (0) 2020.08.17
서블릿  (0) 2020.08.15
웹 서버  (0) 2020.08.15