웹서버 프로그래밍을 구현할때 JSP와 Servlet을 이용했었습니다.
이번에는 JSP를 이용해서 웹프로그래밍을 구현해보려고합니다.
JSP는 HTML언어에 Java언어를 추가해서 만들기 때문에 자바 언어를 HTML에 삽입을 할 때의 표현식을 알아보겠습니다.
물론 HTML이나 CSS는 언어로 취급안해주는 경우도 있지만 일단 언어라고 가정해보겠습니다!
1. JSP와 Servlet의 차이점
우선 Servlet은 순수 자바 코드로만 이루어져 있습니다.
그렇기 때문에 자바파일을 만들고 코딩을 하게 되는데 Http클래스를 상속받아서 만들게 됩니다.
이 자바 파일을 컴파일 하게되면 class파일로 만들어주게 되죠.
반면에 JSP는 HTML코드와 Java를 합쳐서 JSP를 만들수 있습니다.
또한 JSP를 개발자가 만들어 놓게 되면 JSP도 자바 계열이기 때문에 java 파일로 변환이 되고 그 자바파일을 class파일로 변환시켜주게 되죠.
결국에는 자바로 만들어야 한다는 것입니다.
2. JSP 주요 스크립트
JSP페이지에서 Java의 멤버변수 또는 메서드를 선언하는 방법이 있습니다.
바로 선언태그를 사용하는 방법인데요!
<%!
int num = 10;
String str = "jsp";
ArrayList<String> list = new ArrayList<String>();
public void jspMethod() {
System.out.println(" -- jspMehtod() -- ");
}
%>
JSP파일안에서도 <%! %>안에 자바 코드를 작성하면 바로 JSP페이지에서 Java의 변수나 메서드를 선언할수 있습니다.
객체(레퍼런스 변수) 또한 선인이 되는것을 볼수있습니다.
하지만 주석이 조금 독특합니다.
<!-- HTML 주석입니다 -->
<%-- JSP 주석입니다 --%>
HTML 코드의 경우 <!-- -->로 주석처리를 할수 있지만 JSP에서는 <%-- --%>로 주석처리할수 있습니다.
그리고 컴파일 될때 <!-- -->로 주석처리된 부분은 컴파일 할것 없이 자체가 HTML코드이기 떄문에 실제로 컴파일이 되었을때 보여지는 HTML에는 코드가 살아있습니다.
하지만 <%-- --%>로 주석처리가 되면 컴파일 되어 HTML코드에서 제거가 됩니다.
여기서 스크립트릿이라는 개념이 존재합니다.
<%! %> 안에는 변수의 선언이나 메서드를 선언할수 있었다면 스크립트릿 태그안에는 Java 코드자체를 넣을수가 있습니다.
<%
if(num > 0) {
%>
<p> num > 0 </p>
<%
} else {
%>
<p> num <= 0 </p>
<%
}
%>
위에서 변수의 선언이나 메서드를 선언했던 <%! %>와는 느낌표가 붙고 안붙고의 차이입니다.
JSP에서 가장 많이 쓰이는 문법이라고 보실수 있습니다!
또 한가지 태그를 알아보자면 표현식 태그가 있습니다.
표현식 태그는 Java의 변수 및 메서드의 반환값을 출력하는 태그입니다.
num is <%=num%>
이런 HTML 코드가 있다고 치면 num의 값에 따라서 HTML에 보여지는 값이 달라지겠죠??
마지막으로 지시어에 대해서 알아보겠습니다.
지시어는 서버에서 JSP페이지를 처리하는 방법에 대한 정의입니다.
기본적으로 <%@ %>형식을 사용합니다.
1) page: 페이지 기본설정 -> <%@ page 속성="속성 값"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
이 페이지에서 사용하는 언어는 자바 언어이고 컨텐트타입은 text/html; charset=UTF-8이고 페이지인코딩은 UTF-8이다 라는 의미이죠.
아마 현존하는 언어중에 JSP를 구현할수 있는언어는 자바가 유일할 것입니다.
그래서 위의 페이지 기본 설정은 대부분 동일할것입니다!
2) page import: 임포트하여 사용할 클래스 설정 -> <%@page import="클래스 경로" %>
<%@page import="java.util.ArrayList" %>
ArrayList를 사용할 경우 해당 클래스를 임포트해서 사용해야 되기 때문에 사용합니다!
3) include: include file 설정 -> <%@ include file="파일명"%>
<%@ include file="header.jsp"%>
JSP파일에서 헤더나 푸터 같은경우 모든 페이지에서 공통으로 사용될 가능성이 있습니다.
그럴경우 헤더나 푸터에 대한 파일만 따로 만들어놓고 이렇게 include 를 사용하는 방법이 있는데요!
꼭 헤더나 푸터 이외에도 css를 적용한다거나 할때도 사용할수 있습니다.
4) taglib: 외부라이브러리 태그 설정 -> <%@taglib uri="uri" prefix="네임스페이스명">
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
외부 라이브러리를 사용할때 taglib을 사용하는데요.
대표적으로 jstl을 사용할때 taglib을 사용합니다!
이 글은 실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌를 수강하며 공부한 내용을 정리한 글입니다.
'Java 관련 > JSP & Servlet' 카테고리의 다른 글
[JSP & Servlet] JSP 내장객체(config, application, out) (0) | 2022.08.17 |
---|---|
[JSP & Servlet] request객체, response객체 (0) | 2022.08.16 |
[JSP & Servlet] form 데이터 처리 (0) | 2022.08.13 |
[JSP & Servlet] Servlet Life-Cycle과 메서드 (0) | 2022.08.12 |
[JSP & Servlet] request(요청), response(응답) (0) | 2022.08.11 |