티스토리 뷰
- jsp와 servlet 의 차이점
하지만 결국 둘 다 java 파일 -> class 파일로 컴파일 되기 때문에 jsp도 일종의 serlvet으로 볼 수 있다.
jsp 스크립트는 만들어진 jsp 파일 내에 (html로 되어있음) 자바 소스를 삽입하고, 다른 jsp 파일을 삽입하는데 쓰인다.
그러면 jsp 주요 스크립트들을 하나씩 살펴보자.
먼저 jsp 파일을 을 생성해주면 이런 기본 화면이 나온다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
1. 지시어 <%@ %> 로 묶어준다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!-- 서버에서 jsp페이지를 처리하는 방법에 대한 정의 속성키워드="속성값" -->
page language는 속성키워드이고, 속성값은 java이다. 위의 지시어를 해석하자면
"이 페이지는 자바 언어를 쓰고 contentType은 text/html이며, 캐릭터 타입은 EUC-KR (UTF-8도 상관없음)을 쓰고, 페이지 인코딩은 EUC_KR을 쓴다. 라고 해석이 되고, 이러한 지시어는 서버에다가 이 페이지가 어떻게 흘러가는지 기본 설정을 알려주는 역할을 한다.
<%@page import = "java.util.ArrayList" %>
jsp 파일 내에서 자바 소스를 써야하기 때문에, 위의 지시어에서 속성키워드를 import로 바꾸고, 자바 패키지를 속성값에 적으면, 해당 패키지를 쓸 수 있다.
그리고, 다른 jsp 파일을 삽입 할 수 도 있다.
<%@include file="header.jsp" %>
이렇게하면 서버를 실행했을 때, include한 jsp 파일의 내용 (html)이 그대로 현재 jsp 파일에 보이게 된다.
2. 선언 태그 : jsp 페이지에 Java의 멤버변수 또는 메서드를 선언하는데 사용되며, <%! %> 로 묶인다.
<%!
int num = 10;
String str ="abc";
ArrayList<String>list = new ArrayList<String>();
public void jspMethod(){
System.out.println("---jspMethod");
}
%>
이렇게 멤버 변수와 메서드를 선언할 수 있다.
3. 스크립트릿 태그 : jsp 페이지에서 java 코드를 넣기 위한 태그이다.<% %> 로 묶인다.
<%
if(num >0 ){
%>
<p> num > 0</p>
<%
} else{
%>
<p> num <=0 </p>
<%
}
%>
이런식으로 사용되는데 반드시 괄호를 닫아주어야 하고, 괄호를 닫을 때에도 <% %>를 써야 한다.
4. 표현식 태그 : java의 변수 및 메서드의 반환 값을 출력하는 태그이이다. <%= %>로 묶인다.
str is <%= str %>
이렇게 하고 jsp 페이지를 실행하면
이렇게 페이지가 나타나게 되고, 페이지 소스를 보면
스크립트들 (지시어, 스스크립트릿 태그, 표현식 태그, 등등 ) 은 모두 표현되지 않고 오로지 html 형식으로만 표현되어 있음을 알 수 있다!
만약 jsp 주석과 html주석을 모두 쓴다해도 페이지 소스보기에서는 html주석만 보이게 된다.
'web : back-end > JSP, Servlet' 카테고리의 다른 글
DAO, DTO 객체이용하여 데이터베이스 연동하기 (0) | 2020.05.18 |
---|---|
Servlet Life-Cycle 서블릿의 생명주기 메서드 (0) | 2020.05.12 |
Servlet 이란 무엇인가? Servlet API의 계층과 구조 (0) | 2020.05.12 |
[JSP 기초] Cookie 에 대해 알아보자 ! (0) | 2020.04.13 |
[Servlet 기초] mapping 하기 (0) | 2020.04.04 |