본문 바로가기
뉴렉처 과정 기록 (Backend)/Servlet _JSP

04/15 Servlet/JSP jasper를 이용한 서블릿 프로그래밍

by yeonee3219 2021. 4. 15.

서블릿 -> 페이지 기반의 서버페이지를 만드는 플랫폼(Java Server Page)

 

 

 

html에 있던거 이런식으로 옮기게 되는게 너무 번거롭게 느껴진다
html에 있던거 이런식으로 옮기게 되는게 너무 번거롭게 느껴진다

 

 

-> Jasper 에게 도움받기

 

 

 

 

 

 

 

jsp 파일을 만드는 방법이다 -> 그냥 확장자만 .jsp로 바꿔도 된다

 

 

 

 

그냥 생성하면 이런모양으로 나옴 -> 여기에 원래 있던거( clac.html 내용 넣으면 된당)

저 안에 있는 내용을 다 출력형태로 알아서 바꿔서 출력해줌 

 

 

 

 

 

 

확장자가 jsp인 파일을 요청하면 톰캣은 제스퍼에게 넘김 (jasper를 통해서 서블릿을 만들어야겠네)

 

 

요청할때 클래스 생성하고 컴파일해줌 -> 수행성능은 느림 but 코드가 달라져도 알아서 컴파일해줌 

 

 

 

서블릿코드같은 경우에는 실제 저장되는 파일명과 url명이 다르게 매핑이 되었었다

 

jsp같은 경우에는 파일이름 자체가 url로 매핑이 된다

 

 

jasper가 url을 가지고 만들어내는 실제 서블릿 코드는 

add_jsp.java이고 그 왼쪽의 경로에 만들어진다

 

 

 

 

 

 

진짜로 만들어지는지 구경해보자

clac.html의 확장자를 jsp로 바꾸어 놓은 상태이다 

 

 

톰캣 서버를 두번 클릭하면 서버의 설정에 대한 정보가 아래의 사진과 같이 나온다

 

 

server path가 작업디렉토리폴더 , 실제 서비스되는 (임시)배포디렉토리이다

 

 

 

 

브라우저가 보고있는 문서는 여기있는 것을 보는 것이 아니다

 

여기있는 문서는 개발될 때 사용되는 개발 디렉토리이고 

 

이것을 실행하겠다고 하면 이것을 배포하는데 

 

-> 톰캣의 홈 디렉토리로 옮겨지게 된다

     (실제 톰캣에서의 워크 디렉토리에 두지 않고

서비스 운영을 위한 별도의 사본을 만들게 된다 -> 배포디렉토리)

 

 

 

 

 

배포디렉토리의 폴더 위치는 이곳이다

 

 

 

tmp폴더에 있는 것들은 복사본이다

 

 

 

 

배포디렉토리 안의 브라우저가 읽는 파일

 

 

 

컴파일된 결과물의 배포는 이런 경로로 되어있다 

 

 

톰캣을 다시 삭제했다가 jsp파일 f11해줘봤다 

 

 

그렇다면 제스퍼가 만든 클래스는 어디있을까

 

 

 

 

jsp파일 실행하는 순간 이곳에 만들어진다

 

이 파일 열어서 맘대로 고치거나 추가하려고 하면 안된다..-> 서블릿코드가 아니라 jsp파일안의 코드에서 지시를 해야해

 

 

 

 

 

 

 

 

 

자 그럼 jsp에게 출력하도록 일을 시켜볼건데... 

 

int result = 13; 이라는 코드를 적어봤다

이건 계산식으로 인식되지 않고 그저 출력 코드가 되어버린다  (왜? jasper가 출력형태로 바꿔서 출력해줄거니까)

 

 

출력해버림...

 

 

출력하지 않을 거라면 제스퍼에게 자바 코드라는 것을 알려줘야 돼

 

 

 

 

<%  ~  %> 안에 넣어줘야함!!

 

 

 

html코드 가운데에도 끼워넣을 수 있음

 

제스퍼가 일하고 난 다음의 파일이다

 

잘 출력된다

 

 

 

 

 

 

jsp에서 사용할 수 있는 내장 객체

 

 

 

 

request / response

 

pageContext : 현재 페이지

request : 두 서블릿 간의 저장소

session : 사용자별 저장소

application : 전역 저장소

 

out : 문자열 출력도구 / page : 현재 서블릿 객체에 대한 참조를 가진 것

 

 

-> 잘 알아둘 것...

 

www.youtube.com/watch?v=P-1aqLsRRX8&list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd&index=41