EL (Expression Language)

  • 값을 표현하는 데 사용되는 스크립트 언어 (JSP 기본 문법을 보완하는 역할)

Syntax: ${expression}

  • JSP 표현식(<%= %>)을 사용하지 않고도 Java의 변수를 간단하게 표현할 수 있음
  • 숫자, 문자열 Boolean 값 및 null 같은 상수 값들도 포함할 수 있음
  • 동적으로 값을 받도록 JSTL이나 커스텀 태그의 JSP 액션의 속성에 값을 지정할 때도 사용 가능

EL의 내장 객체(=EL 자체에서 가지고 있는 객체)

  • pageScope < requestScope < sessionScope < applicationScope
  • param, paramValues(배열) 등

표현 문법

  • ${param.id}, ${param["e-mail"]}
  • ${paramValues.hobby[0]}, ${paramValues["user-id"][1]}

 

JSTL (JSP Standard Tag Library)

  • JSP 개발을 단순화하기 위한 태그 library

Syntax

  • URL을 통해 라이브러리를 추가
    • <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
  • 사용 방법: <접두사:태그이름>
  • JSP 내에 if문, for문 등의 구문을 처리가 가능.

장점

  • 빠른 개발 -> JSP를 단순화하는 많은 태그를 제공
  • 코드 재사용성 -> 다양한 페이지에서 JSTL 태그 사용 가능
  • 스크립틀릿 태그(자바코드를 사용하기 위한 태그)를 사용할 필요가 없음

JSTL Tags

 


출처

https://velog.io/@ye050425/JSP-Expression-Language-EL-%EB%82%B4%EC%9A%A9-%EC%A0%95%EB%A6%AC

 

[JSP] Expression Language (EL) 내용 정리

Expression Language (EL) Java Bean component에 저장된 데이터 접근 가능성, request, application, session 같은 다른 객체를 간소화 한 것 implicit objects, operators and reserve words등 Syntax: Implicit Objects Implicit Object...

velog.io

https://velog.io/@ye050425/JSP-JSTL-%EC%A0%95%EB%A6%AC

 

[JSP] JSTL 정리

JSTL (JSP Standard Tag Library) JSP 개발을 단순화하기위한 태그 library 장점 빠른 개발 -> JSP를 단순화하는 많은 태그를 제공 코드 재사용성 -> 다양한 페이지에서 JSTL 태그 사용 가능 스크립틀릿 태그를

velog.io

 

'Backend > Web-Back' 카테고리의 다른 글

Servlet의 생명주기  (0) 2021.09.01
Servlet과 JSP  (0) 2021.09.01
웹 서버 vs. WAS  (0) 2021.09.01
프레임워크 vs. 라이브러리  (0) 2021.08.31

서블릿

  • HttpServlet: Servlet 인터페이스를 구현한 GenericServlet 추상 클래스를 상속받은 클래스
  • Servlet: HttpServlet 클래스를 상속받은 자바 클래스
  • doGet(), doPost() 메소드를 필수적으로 오버라이딩 해야함

doGet() 메소드

  • GET 방식으로 요청이 들어올 경우 처리할 로직 작성
  • GET 방식
    • URL값으로 정보가 전송되는 방식 (URL의 끝에 요청 파라미터(쿼리스트링)을 실어서 보냄)
    • URL값에 요청하는 정보가 노출되기 때문에 보안에 약함
    • 전송하는 내용의 길이 제한이 있음
    • 웹 브라우저의 주소창을 이용해 servlet을 요청한 경우

doPost() 메소드

  • POST 방식으로 요청이 들어올 경우 처리할 로직
  • POST 방식
    • 요청 데이터를 HTTP메시지의 Body에 담아 전송되는 방식
    • URL을 통해 노출되지 않아 상대적으로 보안에 강함( 툴을 사용해 볼 수는 있음)
    • 길이에 제한 없이 내용을 서버로 전송할 수 있음
    • HTML 코드의 Form 태그의 method 속성이 post일 경우

 

서블릿 생명주기

  • 서블릿은 처음 호출돼서 컴파일된 뒤 메모리에 상주하게 되면 그 이후부터 해당 객체를 계속 재활용합니다.
  • 따라서 객체가 생성되는 순간부터 자원이 해제되는 순간까지가 서블릿의 라이프사이클입니다.
    서블릿 생명주기
  • service() 메소드 실행 (자원 해제 전까지 요청이 올때마다 doGet() 또는 doPost() 메소드를 실행)

출처

https://codevang.tistory.com/193

 

서블릿(Servlet) 생성과 생명주기

[ 서블릿 ] HttpServlet : Servlet 인터페이스를 구현한 GenericServlet 추상 클래스를 상속받은 클래스 Servlet : HttpServlet 클래스를 상속받은 자바 클래스 doGet(), doPost() 메소드를 필수적으로 오버라이딩..

codevang.tistory.com

 

'Backend > Web-Back' 카테고리의 다른 글

EL과 JSTL  (0) 2021.09.06
Servlet과 JSP  (0) 2021.09.01
웹 서버 vs. WAS  (0) 2021.09.01
프레임워크 vs. 라이브러리  (0) 2021.08.31

Sevlet

  • 서버쪽에서 실행되며, 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스

Servlet의 특징

  • 클라이언트의 요청에 대하 동적으로 작동하는 웹 어플리케이션 컴포넌트
  • html을 사용하여 요청에 응답
  • java Thread를 이용하여 동작
  • MVC 패턴에서 Controller로 이용
  • Http 프로토콜 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속
  • HTML 변경 시 Servlet을 재컴파일 해야 하는 단점

 

Servlet Container

  • 서블릿을 관리해주는 컨테이너
  • 클라이언트의 요청을 받아주고 응답을 할 수 있게, 웹서버와 소캣으로 통신
    ex. 톰켓(Tomcat) - 웹서버와의 통신 지원

 

JSP(Java Server Pages)

  • HTML 코드에 JAVA 코드를 넣어 동적 웹 페이지를 생성하는 웹 어플리케이션 도구
  • JSP가 실행되면 WAS에 의해 자바 서블릿(Servlet)으로 변환
  • 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행
  • 생성된 데이터를 웹페이지와 함께 클라이언트로 응답

JSP 구성요소

  • 템플릿 데이터
    • 클라이언트로 출력되는 콘텐츠
    • HTML, 자바스크립트, 스타일 시트, JSON, XML, 일반 텍스트 등
  • JSP 전용 태그
    • 서블릿 생성 시 특정 자바 코드로 바뀌는 태그
    • Directives(<%@ 지시자 속성="값" 속성="값" ... %>): JSP 지시자는 지시자, 속성에 따라 자바 코드를 생성한다.
    • Scriptlet Elements(<% 자바 코드 %>): JSP에 자바 코드를 작성할 때 스크립트릿 태그 안에 작성한다.
    • Declarations(<%! %>): 서블릿 클래스의 멤버(변수, 메소드)를 선언할 때 사용한다.
    • Expressions(<%= %>): 문자열을 출력할 때 사용한다.
    • JSP Action(<jsp:...>): JSP에서 기본으로 제공하는 태그들의 집합을 'JSP Action'이라 한다.
  • JSP 전용 객체
    • JSP에서 자바 코드를 작성할때 별도의 선언 없이 사용할 수 있는 자바 객체이다.
    • request, response, pageContext, session, application, config, out, page, exception

 

JSP와 Servlet

  • JSP와 Servlet은 결과적으로 하는 일은 동일
  • JSP = Presentation Layer (View) <- html 소스코드를 작성하기 편리하므로'
  • Servlet = Business Layer (Controller)

 

 


출처

https://m.blog.naver.com/acornedu/221128616501

 

JSP와 Servlet(서블릿) 비교

JSP와 Servlet?? 어떤 개념을 가지고 있고 어떤 차이가 있는지 알아보도록 하겠다. 1. Servlet 정확한...

blog.naver.com

https://mangkyu.tistory.com/14

 

[JSP] 서블릿(Servlet)이란?

1. Servlet(서블릿) 서블릿을 한 줄로 정의하자면 아래와 같습니다.  클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해

mangkyu.tistory.com

https://javacpro.tistory.com/43

 

[JSP] JSP (JavaServer Pages ) 란 무엇인가?

JSP (JavaServer Pages ) 란 무엇인가? JSP 란 JavaServer Pages 의 약자이며 HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다. JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환..

javacpro.tistory.com

https://gmlwjd9405.github.io/2018/11/04/servlet-vs-jsp.html

 

[Web] Servlet과 JSP의 차이와 관계 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

'Backend > Web-Back' 카테고리의 다른 글

EL과 JSTL  (0) 2021.09.06
Servlet의 생명주기  (0) 2021.09.01
웹 서버 vs. WAS  (0) 2021.09.01
프레임워크 vs. 라이브러리  (0) 2021.08.31

웹 서버와 WAS의 차이

  • 어떤 타입의 컨텐츠를 제공하냐의 차이
  • 웹서버: 정적인 컨텐츠(html, css, js)를 제공하는 서버 (ex. Apache, Nginx)
  • WAS: 동적인 컨텐츠(DB 조회, 로직 처리)를 제공하는 서버 (ex. Tomcat, Jeus)

사용 구조

  • 웹 서버와 WAS는 각각 독립적으로 존재할 수 있음
  • 일반적으로 웹서버를 WAS 앞에 배치하는 구조를 사용
    • 웹 서버에서는 정적인 문서만 처리하도록 하고, WAS는 애플리케이션의 로직만 수행하도록 기능을 분배하여 서버의 부담을 줄이기 위한 것
  • WAS 자체로 웹 서버의 역할을 수행할 수 있기 때문에, WAS만 존재할 수도 있음

웹 서버와 WAS를 함께 사용하는 이유

  • WAS가 해야 할 일의 부담을 줄이기 위해 (기능 분배)
  • WAS의 환경 설정 파일을 외부에 노출하지 않도록 하기 위해 (보안)

 

웹 서버

  • HTTP 프로토콜을 기반으로 클라이언트(웹 브라우저 또는 웹 크롤러)요청을 서비스하는 기능 담당
  • 기능 1) 정적인 컨텐츠 제공 ( WAS 거치지 않고)
  • 기능 2) 동적인 컨텐츠 제공을 위한 요청 전달

 

WAS(Web Application Server)

  • DB 서버가 맡을 일을 나눠서 처리해주는 middleware
  • DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server
  • WAS = Web Server + Web Container
    • Container = JSP, Servlet 등을 실행시킬 수 있는 소프트웨어
    • 즉, WAS는 JSP, Servlet 등의 구동환경을 제공
  • 웹 서버의 기능을 구조적으로 분리하여 처리하고자 하는 목적으로 제시
  • 비용적 중요도: Web Server < WAS < DB Server

 


출처

http://melonicedlatte.com/web/2019/06/23/210300.html

 

웹 서버와 WAS, 컨테이너의 개념 알아보기 - Easy is Perfect

웹서버와 WAS에 대한 개념이 잘 잡혀있지 않아서 구글링을 하면서 정보를 찾아보다가 좋은 포스팅이 있어서 해당 포스팅을 참조하면서 포스팅해보겠습니다. 포스팅 출처는 아래에 남기겠습니다

melonicedlatte.com

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

https://victorydntmd.tistory.com/121

 

웹 서버와 WAS( Web Application Server ) 차이

1. 웹 서버와 WAS( Web Application Server ) 웹 서버는 정적인 컨텐츠( html, css, js )를 제공하는 서버입니다. ex) Apache, Nginx WAS는 DB 조회나, 어떤 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서..

victorydntmd.tistory.com

 

'Backend > Web-Back' 카테고리의 다른 글

EL과 JSTL  (0) 2021.09.06
Servlet의 생명주기  (0) 2021.09.01
Servlet과 JSP  (0) 2021.09.01
프레임워크 vs. 라이브러리  (0) 2021.08.31

프레임워크와 라이브러리의 차이

어플리케이션의 흐름(flow)를 누가 쥐고 있느냐의 차이

  • 프레임워크는 전체적인 흐름을 스스로가 가지고 있음
  • 라이브러리는 전체적인 흐름을 라이브러리를 가져다 쓰는 개발자가 가지고 있음

 

프레임워크

소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합

  • 프로그래밍 할 규칙은 정해져 있고, 개발자는 그 안에서 필요한 코드를 짜 넣음
  • "제어의 역전" 이 사용됨제어의 역전: 어떠한 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경 써야 할 것을 줄이는 전략

사용 이유

  • 프로젝트를 완성하기 위한 전체적인 구조를 제공하여 개발을 도움을 주는 역할
  • 객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결하는 방법 중 하나

 

라이브러리

단순히 활용 가능한 도구(클래스)들의 집합

  • 개발자가 필요한 기능(함수, 메서드)을 선택적으로 사용
  • 대체 가능한 다른 것을 찾기 쉬움

사용 이유

  • 프로그래머가 어떠한 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해주는 역할

 


출처

https://velog.io/@tjdud0123/API-vs-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-vs-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC

 

 

API vs 라이브러리 vs 프레임워크

api, 라이브러리, 프레임워크의 차이점을 알아보자

velog.io

https://webclub.tistory.com/458

 

프레임워크와 라이브러리의 차이점

Framework Vs Library 프레임워크와 라이브러리의 정확한 차이점은 무엇일까요? 대중 알것 같지만 정확히 어떠한 차이점이 있는지 모르고 있는 경우가 많을지도 모릅니다. 프레임워크는 단지 미리 만

webclub.tistory.com

 

'Backend > Web-Back' 카테고리의 다른 글

EL과 JSTL  (0) 2021.09.06
Servlet의 생명주기  (0) 2021.09.01
Servlet과 JSP  (0) 2021.09.01
웹 서버 vs. WAS  (0) 2021.09.01

+ Recent posts