-
JSP 필요성과 기본 태그back-end&DB/Java 2023. 6. 15. 10:56728x90
1. JSP의 필요성
- 기존 Servlet 구성의 단점
- servlet은 수정이 어렵다.
- 프로그램이 복잡해지면 Servlet을 통해 출력되는 HTML페이지를 상상하기 어렵다.
2. JSP와 Servlet의 장단점
장점 단점 형식 서블릿 복잡한 로직 구현에 적합함 JAVA코드 중심
화면작성 작업과
수정이 어려움JAVA 코드 - HTML
코드JSP HTML코드 중심
화면작성 작업과
수정에 용이함소스보기로
소스가 공개되어
중요정보에 부적합HTML 코드 - JAVA
코드- 로직 구현은 Servlet 클래스에, HTML 중심의 코드는 JSP에
2. JSP(Java Server Page)
HTML내에 JAVA 코드를 작성하고 웹 서버에서 웹 페이지를 생성하여,
Web browserd에 돌려주는 Java를 기반으로 한 스크립트 언어
- .JSP확장자
- 동적으로 작동하여 응답은 html을 이용함
- 동적 웹 애플리케이션 컴포넌트
- jsp > 서블릿 > 클래스 > html으로 변환되어 실행됨
- JSP의 기본태그
종류 사용용도 형식 스크립트릿
(scriptlet)자바 코드를 기술함 <% %> 선언
(declaration)변수와 메소드를 선언함 <%! %> 표현식
(expression)계산식이나 함수를 호출한 결과를 문자열 형태로 출력함 <%= %> 주석
(Comment)JSP 페이지에 설명을 넣음 <%-- --%> 지시자
(Dorective)JSP 페이지의 속성을 지정함 <%@ %> - scriptlet 스크립트릿<% %>
- JSP문서 안에 JAVA코드를 넣기 위해 사용함
- JSP는 모든 것을 태그화 하여 쓰는 것이 목적 이므로 줄여가도록 함.
<body> <% int num1 = 20; int num2 = 10; int sum = num1 + num2; out.print(num1 + " + " + num2 + " = " + sum); %> </body>
- declaration 선언문 <%! %>
- 선언부에는 static 변수 선언이나, 메서드를 선언하여 사용
- 이 변수와 메서드는 JSP 페이지로부터 변환된 서블릿 클래스의 멤버로 변환
<% //변수 선언 final static int max=10000; %>
<%! // 메소드 선언 public int addNumber(int num1, int num2){ return num1 + num2; } %>
- expression 표현식 <%= %>
- Web browser에 결과값을 출력하기 위해 사용
- ;(세미콜론) 사용하지 않음
<%= sum %> 상수나 변수 <%= sum+100 %> 연산자 <%= math.sqrt(sum) %> 메소드 호출
- Dorective 지시자 <%@ %>
- Web Container가 jsp page를 servlet class로 변환될 때 필요한 정보를 기술하기 위해 사용
- page 지시자
- JSP 페이지가 생성하는 문서의 종류와 인코딩 방식을 지정하기 위해 사용
- JSP페이지가 서블릿 클래스로 변활될 때 contentType Attribute의 값은
setContentType 메서드 호출문의 파라미터가 됨
- ErrorPage : 페이지에 오류가 났을때 대신 보여줄 페이지 지정
<%@page errorPage="./ex06_page.html" %>
- import : 객체 호출 시
<%@page import="java.util.Random"%> <%@page import="java.util.ArrayList"%>
- include 지시자- 현재 페이지에 다른 파일의 내용을 삽일 할 때
- 웹 사이트에서 모든 페이지에서 공통적으로 보여주는 부분에서 활용
<%@ include file="URL" %> <%@ include file="footer.jsp" %>
- Taglib 지시자
- 태그 라이브러리에서 태그를 가져와 사용할 수 있는 기능 제공
- 주석
- 프로그램 설명, 테스트 목적으로 사용되는 태그
728x90'back-end&DB > Java' 카테고리의 다른 글
Jsp MVC Model1과 Model2 (0) 2023.06.25 JSP JSTL (0) 2023.06.25 Servlet HTTP와 GET과 POST (0) 2023.06.14 Servlet URL (0) 2023.06.13 servlet 인코딩 방식 (0) 2023.06.13