Home JSP 란?
Post
Cancel

JSP 란?

:thinking: 도대체 JSP 가 뭘까 ?

    웹을 배우면서 자주 접하는 jsp지만 정확히 어떤 역할을 하고 왜 사용하는지는 잘 몰랐다. 책 읽으면서 간단하게 정리해보고자 한다.
(reference : 자바 웹을 다루는 기술)

:heavy_check_mark: 내가 어렴풋이 알던 정의 :
    클라이언트의 역할을 하면서 요청을 서버에 전달해주고 되돌려주는 일 하지만 서버에서 할 일도 조금 할 수 있는 거..?

뭔가 대충 느낌은 아는데 그래서 어떻게 그게 가능하냐고 말하면 꿀먹은 벙어리가 되어버린다.

일단 JSP 를 설명하기 위해 알아햐는 개념이 있다.

:open_book: 동적 웹 프로그래밍과 정적 웹 프로그래밍란?

:yellow_heart: 정적 웹 프로그래밍 :yellow_heart:
미리 웹 서버에 보여줄 html, css, js 들을 저장해놓고 요청 들어오면 출력해주는 방식이다.

    여기서 필요한 요소는 웹 서버, 클라이언트, HTTP 프로토콜, 자바스크립트, css, html 등이 있다. 여기서 css 는 화면의 디자인적인 부분을 제어하고, js는 동적인 기능을 제공한다. 버튼 클릭하면 팝업창 뜨고 이런거.

:purple_heart: 동적 웹 프로그래밍 :purple_heart:
    매번 다른 정보주려면 업데이트하는 정적 방식의 불편함을 덜고자 웹 어플리케이션 서버를 배치하여 정보를 업데이트 해주는 관리자 역할을 시킨다.

    초기 방식에서는 매 요청을 프로세스로 실행해서 , 같은 동작인데 처음부터 메모리에 로드하여 사용했다. 그래서 등장한게 스레드 방식으로 요청을처리하는 JSP 같은 웹 프로그래밍 기술이다.

결국 요약하자면 JSP 는 스레드 방식으로 동작하는 동적 웹 프로그래밍 기술이다. 그럼 이제 동작 방식을 봐야겠다.

:open_book: JSP 동작 과정

    웹브라우저가 jsp 요청하면 jsp 파일은 jsp 컨테이너에 의해서 servlet 으로 변환된다.
서블릿의 동작과정은 일단 요약하자면 서버에서 실행되다가 웹 브라우저 요청이 들어오면 해당 기능을 수행 후 결과 전송하는 역할을 한다.

    원래는 서블릿 만으로 짜서 돌렸지만, 서블릿을 이용할 경우 브라우저에 결과물을 전달해줄때 HTML 태그들을 한땀한땀 그려서 전송해줘야하는 불편함이 있다.

그래서 jsp 사용하고, 변환 단계는 다음과 같다.

1) 변환 : JSP를 자바 파일로 변환
2) 컴파일: 변환된 자바 파일을 컴파일해 클래스파일로 변환
3) 실행: 클래스 파일 실행하여 그 결과물인 HTML, JS 등을 브라우저로 전달해 출력
이런 과정을 통해 클라이언트 요청에 따른 서버의 작업 내용을 전달해준다.

:open_book: JSP에서 동적 표현 제어하는 법

    HTML 문을 사용할 때에는 정해진 태그에 따라서 행동하기에 사용자의 행동에 따른 동적인 제어가 불가능하다. JSP 에서는 동적 제어가 가능하도록 도와주는 요소들이 있다.

1) 스크립트 요소

  • 선언문 : 변수나 메서드 선언 <%! String name=”ㅎㅎ” %> 이런식
  • 스크립트릿 : JSP 내에서 자바 코드 사용할 때
  • 표현식 : 값을 출력 할 때 <%= name %> 이런 거

2) 내장 객체 사용
jsp 가 서블릿으로 변환될때 자동으로 생성하는 객체들로 이를 이용해서 값도 전달하고 한다.
-page : 한 요청이 들어오는 하나의 jsp 공유 (this ) -request : 같은 요청을 공유하는 jsp 페이지 말한다 -session : 같은 브라우저 내에서 공유 -applicaiton : 같은 어플리케이션 내에서 공유

    이렇게 정리를 하니까 과거에 그냥 쓰던 것들이 이런 의미였구나 깨닫게 된다.
근데 요새 코딩을 별로 안하니까 진짜 다 까먹는 거 같다. 원래도 코딩 개코도 모르는데 이렇게 까먹어도 되나 싶네 ㅠㅇ ㅠ ….. 진짜로 코딩 좀 해봐야겠다…

일단 jsp 정리는 여기서 끝 :100::100::100::100:

This post is licensed under CC BY 4.0 by the author.

Spring IoC container

Matplot 에서 한글 폰트 적용하는 법