[JSP] JSP란 무엇인가(feat.Servlet과 차이점?)

2023. 6. 14. 13:57프로그래밍/Java

1. JSP(Java Server Page)란 무엇인가?

JSP는 HTML언어를(HTML, CSS, JavaScript) java코드를 기반으로 작성하게끔 도와주는 프로그램 언어이다.

언어라고해도 크게 다를 건 없고 기존의 HTML언어와 java언어를 사용하되 몇가지 표현법(expression)을 이용하는 것이다.

즉 JSP는 간단하게 말하면 파일의 확장자는 .jsp를 기반으로 한 파일위에 java code를 얹을 수 있게 해주는 언어인 것이다.

 

2. JSP 태그종류와 사용방법

https://www3.ntu.edu.sg/home/ehchua/programming/java/JavaServerPages.html 에서 퍼온 JSP 참고 코드

JSP 태그를 어떻게 사용하는지 잘 보여주는 Reference Code이다. 

<% %> 태그에는 일반적인 java태그를 작성하는데 여기에서 작성된 java code는 홈페이지 상으로 노출되지 않는다.

홈페이지에 값 혹은 문자열같이 변수를 나타내기 위해서는 <%= %> 태그를 사용해야 한다. 그렇게 되면 결과값으로 자료형을

갖게되는 변수가 HTML의 text와 함께 나타날 수 있다.

 

 

3. 실습예제

<%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>



<h1> 안녕하세요! JSP 태그 테스트입니다.</h1>

<%
        int num = 100;

        %>
<%= num %> <-- 이 숫자는 100의 값을 가지고 있습니다.

<%

        for(; num>=0; num--){

        out.println(num+"<br>");

        }
        %>
</body>
</html>

 

위와 같이 작성된 test.jsp 파일이 있다고 했을 때 jsp태그와 태그내에서의 html 문법이 어떻게 사용될 수 있는지를 보여주는 예제이다. 

System.out.println()이 아닌 out.println()을 이용하게 되면 콘솔창이 아니라 실행되고 있는 html에 출력하게 된다. 

따라서 html에서 띄어쓰기 기능을 가지고 있는 <br>태그를 num + "<br>"과 같이 작성시 개행된 문장이 서버 페이지에 작성되는 것이다.

 

4. Servlet과의 차이점은?

현재 배우지는 않았지만 Servlet(서블릿)도 웹 페이지를 구현하는데 있어서 필요한 대표적인 언어로 알려져있다. 

Servlet은 과거에 많이 사용됐으며 JSP와 거의 동일한 역할을 수행하지만 세부적인 부분에서 차이가 있다고 한다.

간단하게 정리해봤을 때 차이점은 다음과 같다.

1. JSP는 html 코드 위에 java 코드를 얹은 것. 즉 jsp파일 위에 java코드를 작성

2. Servlet은 java 코드 위에 html 코드를 얹은 것. 즉 java파일 위에 html 코드를 작성

3. Servlet과 JSP는 비슷한 특징을 가졌음에도 각각의 장단점이 다르기 때문에 나중에 배우게 될 MVC 패턴에서 각기 다른 부분에서 다른 역할을 수행한다는 점.

 

현재로서는 이 정도의 차이만 알고 있으면 될 듯하다.

 

 

 

 

 

 

Servlet과 JSP의 차이점 - 출처 : https://m.blog.naver.com/acornedu/221128616501