Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 회고록
- jvm
- 항해99단점
- process
- bean
- 인스턴스화
- DI
- 쓰레드
- 인스턴스
- 항해99장점
- class
- 항해99솔직후기
- 부트캠프추천
- inversion of control
- 오브젝트
- 스레드
- 객체지향 프로그래밍
- object
- 객체
- 소셜
- IoC
- jwt
- 소셜로그인
- Dependency Injection
- 클래스
- social login
- 프로세스
- Thread
- Instance
- API
Archives
- Today
- Total
로운's 기술노트
Servlet과 JSP 차이 본문
■ 개념
ㅇ Servlet
: 서블릿(servlet)은 서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램이다. Java코드 안에 HTML태그가 삽입되며 자바언어로 되어있다는 특징이 있다('.java'가 확장자이다). 자바언어를 웹어플리케이션에 조금 더 개발하기 쉽게 하기 위해 만든 API(라이브러리, 클래스 들)이며 이 규약에 맞는 라이브러리나 클래스들을 상속 및 구현하여 만든 클래스를 '서블릿'이라고 한다.
- Java 코드 안에 HTML 코드 (하나의 클래스)
- data processing(Controller)에 좋다.
즉 DB와의 통신, Business Logic 호출, 데이터를 읽고 확인하는 작업 등에 유용하다. - Servlet이 수정된 경우 Java 코드를 컴파일(.class 파일 생성)한 후 동적인 페이지를 처리하기 때문에 전체 코드를 업데이트하고 다시 컴파일한 후 재배포하는 작업이 필요하다. (개발 생산성 저하)
ㅇ JSP
: HTML 내부에 Java코드를 삽입하는 형식으로 서블릿의 단점을 보완하고자 만든 서블릿 기반의 스크립트 기술이다. 서블릿을 이용하게 되면 웹프로그래밍을 할 수 있지만 자바에 대한 지식이 필요하며 화면 인터페이스 구현에 너무 많은 코드를 필요로 하는 등 비효율적인 측면들이 있다. 때문에 서블릿을 작성하지 않고도 간편하게 웹프로그래밍을 구현하게 만든 기술이 JSP(Java Server Pages)이다.
- HTML 코드 안에 Java 코드
- presentation(View)에 좋다.
즉 요청 결과를 나타내는 HTML 작성하는데 유용하다. - JSP가 수정된 경우 재배포할 필요가 없이 WAS가 알아서 처리한다. (쉬운 배포)
■ 차이
: 결과적으로 Servlet과 JSP는 역할의 차이는 없고 만드는 방법의 차이만 있다.
Servlet | JSP |
~ 자바코드로 구현하고 컴파일하고 배포해야 한다. ~ HTML태그로 문자열("")스크림으로 처리해야 한다. ~ 코드가 수정되면 다시 컴파일하고 배포해야 한다. |
~ 키워드가 태그화 되어 서블릿에 비해 배우기 쉽다. ~ 자바코드를 <%%>태그 안에 처리해주어야 한다. ~ HTML처럼 태그를 사용하여 자바코드도 사용이 가능하다. |
ㅇ 예시
- Servlet
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public ThreeParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
printWriter out = response.getWriter();
String title = "Reading Three Request Parameters";
String docType = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
out.println(docType +
"<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE></HEAD>\n" +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" +
"<UL>\n" +
"<LI><B>param1</B>: " + request.getParameter("param1") + "\n" +
"<LI><B>param2</B>: " + request.getParameter("param2") + "\n" +
"<LI><B>param3</B>: " + request.getParameter("param3") + "\n" +
"</UL>\n" +
"</BODY></HTML>");
)
}
}
https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html
- JSP
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Reading Three Request Parameters</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<H1>Reading Three Request Parameters</H1>
<UL>
<LI><B>param1</B>: <%= request.getParameter("param1") %>
<LI><B>param2</B>: <%= request.getParameter("param2") %>
<LI><B>param3</B>: <%= request.getParameter("param3") %>
</UL>
</BODY>
</HTML>
https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html
[출처]
https://m.blog.naver.com/acornedu/221128616501
https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html
'항해99_'22.01~04 > 개념' 카테고리의 다른 글
Process, Thread가 뭘까? (0) | 2022.04.26 |
---|---|
클래스, 객체, 인스턴스를 알아보자 (0) | 2022.04.26 |
TDD vs BDD vs DDD vs ATDD (0) | 2022.02.09 |
Rest API의 put과 patch의 차이 (0) | 2022.01.25 |
JPA란? (0) | 2022.01.22 |
Comments