서블릿과 JSP

이규훈·2022년 10월 31일
0

스프링 정리

목록 보기
5/30

서블릿

서블릿과 spring 차이와 관계를 아주 잘 정리한 글이 있다.

https://codevang.tistory.com/191

서블릿이란 Dynamic Web Page를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술입니다.
스프링을 하기전 서블릿에 대한 이해만 있으면 된다.

서블릿은 lazyinit이다 늦은 초기화 라는 뜻이다.
그러나 loadOnStartup=1를 추가하면 미리 초기화가 된다 옆에 숫자는 우선순위를 의미한다.

서블릿에 대해서 참고하면 좋을 사이트들

https://coding-factory.tistory.com/742

JSP

JSP 란 JavaServer Pages 의 약자이며HTML 코드에 JAVA 코드를 넣어 동적웹페이지를 생성하는 웹어플리케이션 도구이다.JSP 가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
출처: https://javacpro.tistory.com/43 [버물리의 IT공부:티스토리]

jsp는 html파일에 java코드가 들어간 것이라고 생각하면 된다.

시스템은 전반적으로 서블릿과 비슷하다
jsp는 src/main/webapp에 저장한다.
jsp가 처음 열릴때는 시간이 걸리는데 그 이유는 자바로 컴파일 하는데 최초로 할때는 시간이 걸리기 때문이다. 그 다음부터는 바로 실행된다.
가끔 jsp 바꿔도 적용 안될때 있는데 그때는 서버에서 clean Tomcat Work Directory를 누르면 된다. 혹은 파일에 들어가서 직접 지우는 방법도 있다.

Scopejsp 객체
pagepageContext
requestrequest
sessionsession
applicationapplication

page만 다르다.

jsp에 대해서 알고싶을때 보면 좋은 사이트

https://doitnow-man.tistory.com/84

스프링은 이러한 서블릿과 JSP가 발달된 형태라고 생각하자.

EL

EL은 expression language의 약자이다.

< % =값%> => ${값}
ex)
<%=person.getCar().getColor()%> => ${person.getCar().getColor()}은 같다.

기존의 문장들을 저렇게 바꾸는 것이 EL이다. 이는 간단하고 편리하다.

${person.car.color}

이렇게도 쓸 수 있다.
여기서는 표현만 car color이지만 실제로는 getCar(), getColor()가 호출된 것이고 이럴려면 person에서는 getCar, getColor가 정의되어있어야한다.
el에서는 lv가 안되고 lv를 request객체에 저장해야한다. request객체안에 attribute라는 map이 있어서 거기에 저장을 한다. 그래야지 el에서 읽을 수 있다. 만약 이것이 없다면 저런식으로는 쓸 수 없다.
이렇게 생략이 된다면 위의 표처럼 scope에서 하나씩 뒤지면서 내려간다는 것을 알아두자.

"1"+1 = ${"1"+1}

이 경우는 "11"이 되는 것이 아니라 2가 된다. 즉 자동으로 형변환을 해준다.

null +1 = 1

null은 0으로 계산된다."", 빈 문자열도 0으로 계산된다. 이외에도 다양한 것들이 있으니 찾아서 보자.
EL은 lv(지역변수)를 사용하지 못한다는 것을 기억하자!

JSTL(JSP Standard Tag Library)

일반적으로 알고있는 JSTL이란 JSTL + EL의 조합이다.
JSTL은 라이브러리이기 때문에 사용하기전에 core를 header에 추가해주어야 한다고 한다.
c가 접두사 이다. c는 core를 가져단가는 뜻이다. 형식화 라이브러리를 쓸려면 fmt를 쓰면 된다.

JSTL 참고 사이트

JSTL의 기본 개념과 사용방법 정리
https://daesuni.github.io/jstl/
JSTL이란? JSTL 기초사용법
https://velog.io/@psj0810/JSTL%EC%9D%B4%EB%9E%80-JSTL-%EA%B8%B0%EC%B4%88%EC%82%AC%EC%9A%A9%EB%B2%95
[JSP] EL / JSTL 표현식 한 방에 정리 ! (문법과 사용방법)
https://creamilk88.tistory.com/117

Filter

같은 코드들이 반복될때 중복코드를 분리해야하는데 이때 쓰는 것이다. 로깅, 인코딩등이 있다.

이렇게 되면 서블릿에서는 처리작업만 남고 간결해진다. 필터를 이용하게 되면

요청 -> 전처리 -> 서블릿 호출 -> 서블릿에서 처리 -> 후처리 -> 응답

이러한 순서로 진행되어진다. 이는 AOP와 유사하다.
필터는 여러개 일 수 있다. 필터1, 필터2가 있다면 필터1을 지나고 필터2를 지나고 서블릿을 가고 다시 필터2를 거치고 필터1을 거쳐서 응답한다. 들어간 순서대로 다시 나간다고 생각하면 된다.

profile
개발취준생

0개의 댓글

관련 채용 정보