티스토리 뷰
JSP
- 초기 웹 프로그램은 자바 서블릿을 이용하여 구현했다.
- 화면의 기능이나 구성이 복잡해짐에 따라 사용자를 고려하는 화면 요구 사항이 늘어났다.
- 서블릿의 기능 중 별도로 화면 기능을 디자이너가 작업하기 쉽게 하기 위해 JSP가 등장했다.
- JSP는 디자이너 입장에서 화면의 수월한 기능 구현과 개발 후 화면의 편리한 유지관리를 목적으로 도입되었다.
- 기존 서블릿에서는 자바 코드를 기반으로 문자열을 사용해 HTML과 자바스크립트로 화면을 구현했으나, JSP는 이와
반대로 HTML, CSS와 자바스크립트를 기반으로 JSP 요소들을 사용해 화면을 구현한다.
문제점
- 서블릿의 자바 기반으로 화면 기능 구현 시 어려움이 발생
- 화면 구현 시 자바 코드로 인해 작업이 어려움
- 서블릿에 비즈니스 로직과 화면 기능이 같이 있어 개발 후 유지관리가 어려움
해결책
- 서블릿의 비즈니스 로직과 결과를 보여주는 화면 기능을 분리
- 개발 후 재사용성과 유지관리 수월
JSP의 구성 요소
- HTML 태그, CSS, JS
- JSP 기본 태그
- JSP 액션 태그
- 커스텀 태그
JSP의 변환 과정
- JSP는 HTML, CSS, JS는 물론이고 JSP에서 제공하는 여러 가지 구성 요소가 화면을 구현하는 데 사용된다.
- JSP 파일 자체를 브라우저로 전송하면 브라우저는 JSP 요소들을 인식하지 못한다.
- 따라서 JSP는 톰캣 컨테이너에 의해 브라우저로 전송되기 전에 실행 단계를 거쳐야 한다.
- 변환단계 : 컨테이너는 JSP 파일을 자바 파일로 변환한다.
- 컴파일 단계 : 컨테이너는 변환된 자바 파일을 클래스 파일로 컴파일한다.
- 실행 단계 : 컨테이너는 클래스 파일을 실행하여 그 결과(HTML, CSS, JS 등)를 브라우저로 전송해 출력
JSP 파일 작성
- JSP 파일은 웹 프로젝트 내 WebContent 디렉터리 아래에 생성한다.
* WebContent/hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>hello JSP.</h1>
<h1>JSP 페이지입니다.</h1>
</body>
</html>
- 코드 작성 후 톰캣을 시작한 후 브라우저에 localhost:[port]/[project_name]/hello.jsp 를 입력해 페이지를 확인한다.
- 서블릿에서는 개발자가 일일이 HTML 태그를 만들어서 print() 메서드로 전송해 주었으나 JSP는 요청 시
컨테이너에서 자동으로 JSP 파일에 있는 HTML 태그와 JS를 브라우저로 전송해 준다.
'JSP' 카테고리의 다른 글
[JSP]예외 처리 (0) | 2024.08.14 |
---|---|
[JSP]내장 객체 (0) | 2024.08.14 |
[JSP]스크립트 요소 사용 예 (0) | 2024.08.14 |
[JSP]스크립트 요소(선언문, 스크립틀릿, 표현식, 주석문) (0) | 2024.08.13 |
JSP의 구성 요소 (0) | 2024.08.13 |
- Total
- Today
- Yesterday
- HTML
- Spring
- a 태그
- Network
- Java Server Page
- httpServletRequest
- Servlet
- 제이쿼리
- el
- 스프링 시큐리티
- 세션
- Spring Security
- Redux
- 미들웨어
- script element
- nodejs
- 서브넷팅
- react
- 네트워크
- 내장객체
- Binding
- CSS 속성
- javaserverpage
- Session
- 리액트
- CSS
- JSP
- html css
- 서블릿
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |