뚜벅이

JSP에 관하여-개인자습 본문

맨땅CS

JSP에 관하여-개인자습

ZZM 2021. 3. 16. 22:09

JSP 는

자바서버페이지스.

java언어 기반의  Serverside 스크립트어이다.  

 

기본 상식 ::==========================================

자바로 웹 어플리케이션을 개발한다 :

서블릿과 JSP기술을 활용해 어플리케이션을 개발한다는 의미입니다.

 

WAS 란 ? 

서버 단의  어플리케이션의 생성 실행 소멸을 관리하는 중간자 프로그램 입니다. 특히 웹 기술 기반으로 하면 WAS이다.

WAS  이해 >> 특히 JAVA 의 WAS??

java ee 기술을 준수하여 만든 서버를 말함.  JAVA EE 구현체(IMPLEMENTATION) 이라고도 함.

제우스 웹로직 웹스피어 제이보스등등.  글래스피시 제로니모 등 등... 

 

JAVAEE의 다양한 기술중  서블릿 JSP 등 웹관련 애들만 구현한 서버친구들이  

톰캣, RESIN  JETTY 등이 있다. ->> 이들은 서블릿 컨테이너 웹컨테이너라고 한다.

JSP서블릿이라는 부품을 담는 컨테이너 들인 것이다. 

 

jAVA EE 버전에 안ㄹ맞는 웹컨테이너 제품을 잘 택하여 사용해야 한다.

 

Seervelet 인터페이스를 구현하는 아무 클래스를 작성한다.

 >>  원칙이었다. ->>  javax.servelet.Servlet 인터페이스 가 구현되어야 한다.

서블릿 생명주기와 관련된  init()    service ()     destroy ( )

여기서 service() 이친구가 -> 클라 요청시마다 불러내지는 메서드.

서블릿 태그를 활용하여 서블릿 클래스 이름도 지어놓고. html 에 융화되기 좋은 모양으로 만든다ㅣ.

>> 서블릿에 url을 부여해준디ㅏ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

==================================================

 

그전에 짚을것. 

 

브라우저(구매 및 수령자)  - 웹서버(전달자)-   내부프로그램(실 작업자)

 

 

웹서버와 내부 프로그램 사이를 왔다갔다 할때의 룰이 있다. 

CGI -  서버와 프로그램 사이 데이터 주고받는 규칙

 

=>> 컴파일 언어 기반의 cgi방식 ( 매 횟수는 빠르지만, 변경때마다 복잡, 가끔씩 업데이트 할때 굿.)

 

//   스크립트방식: ( 매번 통신은 느리지만,  변경시에 용이함. -> 자주 업데이트 할때 굿.)

 

html 코드 사이에?  html 코드에?  

java 코드를 넣어  동적 웹페이지를 생성하는 웹어플리케이션 도구? 

=============================================================

===============================================================

JSP =>> 서블릿이라는 녀석의 단점을 보완하기 위해 등장한  녀석 :: JSP

JSP의 등장은 어떤 맥락에서??

MVC 패턴 - 서블릿이 원웨이에서 북치고 장구치고 하는 것을 벗어나는 새로운 틀!

의 어떤걸 건드리면서 JSP 가 등장되어야 하는 그런맥락. 

 

MVC는   클라의 요청 처리를 서블릿 혼자서 다 하는것이 아니라.

 세 컴포넌트 세 파트  세개의 부분  세개의 파츠들이 일하면서 처리한다. 

 

요청  to 컨트롤러

호출 to 모델

결과to컨트롤러

화면생성요청 to 뷰

결과화면전달 to 컨트롤러

응답 to 클라이언트 .

뷰는 껍데기- > 데이터실제 결과물은 모델이 출처가되는 구조.

컨트롤러는 모델 뷰 톡톡톡 쳐서 

겉옷 속옷 ( 뷰 / 모델     )를 모두 입힌 마네킹을 클라이언트에게 보여줌. 

 

JSP!! 뷰  딴을 만들때  보통 JSP 를 사용!

뷰 컴포넌트 역할은 웹 브라우저가 출력할 화면을 만드는 일을 한다.

 

JSP 한마디로 : 화면 출력을 쉽게 해주는 기술, 스킬이다. 

 

웹 페이지 겉껍질을 out.println 으로 일일~~히 따옴표 다써주면허

한줄한줄 쓰는것 ->> JSP\가 없으면 이렇게 평생 살 뻔했다. 

 

JSP 있으면?? 

 jsp소환하면서 거기에 대응하는 자바 서블릿을 딱 불러온다. 

// 서블릿 없으면 jsp에서라도 소스를 읽어서 겉면을 가져오다. ->그안에서 서블릿이 생성된다.

->> 이제 서블릿이 생성한 내용대로의 화면을 웹브라우저로 내보내준다.

 

- 이 jsp 덕분에  ->> 자바로 출력문 일일이 작성할 필요가 없어진다. 

 

jsp 엔진이 자바 출력문을 만들어서 웹브라우저로 출력할 html작성하기 쉬워진다.

 이제 안다  WHY.? JSP가 뷰 컴포넌트 만드는 데 사용되는지 .

 

JSP외에 화면출력 ease 기술 _:>> tiles velocity freemarker...

 

JSP 구동과정을 본다. 

 

1. JSP파일- > 맨위에 어쩌구저쩌구 ->  html 줄글 쫘르륵써주기. 

 

2. 그냥 jsp 실행하기 --> html 내용 그대로 브라우저상에 등장함.

 

JSP 을 직접 호출하는 그 때에 -->> JSP 엔진이 서블릿 만들고 ->> 돌린다.(서블릿을!)

서블릿 파일도 확인이 가능하다 jsp파일에서   서블릿 소스파일 + 컴파일 이뤄진 클래스파일이 자동 생성되어있다. ㅇ

 

PHP PYTHON 은 인터프리터 방식으로 소스를 바로 읽어 실행하지만 , JSP파일은 그 자체로 실행되지 않고 자바 서블릿 클래스로 만들어진 다음에 실행된다.

주의 ::::::::::::: JSP는 직접 실행되는 것이 아니다 ->>JSP에서만들어진 서블릿 .java 가 실행된다.

 

 

 

~~~~. jsp를 웹브라우저에서 나온 손가락이 찌른다.

JSP엔진이 움직여서 해당 JSP 파일에서 서블릿을 뽑아낸다    ( .java) 

자바파일을  컴파일러가 읽어서  class 파일화해준ㄴ다. 

이클래스가 응답한 내용물이  브라우저로 들어간다.

 

 

 

 

 

 

 

 

jsp 덕분에???

 

1...::      정적인놈  + 동적인 놈 혼합이 된다.  

 

정적인놈 : html  // 동적인놈 : 동적으로 생성된 콘텐츠(http요청 파라미터)

2...  서블릿 기술의 확장ㅇ ㅣ가능해진다. 

- 서블릿을 보완한 스크립트 방식의 표준이된다.

- 서블릿의 모든 기능 + 알파기능 지원해준다.

 

JSP 문서 // 다른 문서. 있겠지

일단 JSP문서는 q백그라운드에서 servlet 으로 자동변환된다. 

 

1단계 :jsp가 실행되면 was 가 내부적으로 jsp파일을   서블릿( .java ) 로 변환 해준다.

2단계: was 는 .java 을 동작시켜서 필요한 기능들을 invoke 한다.? 수행시킨다.

   클래스파일 생성 -> 객체화 ( 클래스내부의 메소드들이 동작가능하게함)->> 

was는 request오는걸 대기하다가 받을때마다 thread 생성시켜서 굴려서 일처리한다. ->> 

 즉 .  요청 1-->  쓰레드 +1 -->  객체 +1 및  service()  구동 +1  을 해준다. 

이   service() 가  필요한 메소드 즉 기능  를 호출한다.

 

==============

JSP특징 :  

컴파일 어가 아닌 스크립트언어이다 -> 자바기능 그대로 사용할 수 있다 ..(음??????????)

톰켓등 was 가 이미 만들어 놓ㅇ느 객체를 사용한다. 

-사용자 정의 태그 custom tags 자유롭게 명명한 태그들을 사용할ㅇ수 있음. 보다 효율적으로 웹사이트 구성할 수 있다. 

- JSTL 이라는   태그라이브러리를 사용한다.

- HTML 코드 안에 jAVA 코드가 있다.  HTML 코드 에 왜곡이나 간섭이 없어서 .

HTML코드 작성하기도 쉬워진다.

- 서블릿과 다르게 JSP  는 수정된 경우 재배포 할 필요 없이 와쓰가 알아서 처리해 준다.

JSP 페이지는 java bean 의 틀을 사용한다.

 

 

QUESTION>

 

 

JSP 가 실행되는 과정 ?????????뭘까.

 ==>> JSP 는 실행의 대상이다. ----> jsp 는 실행되지 않는 다   보석을 뽑아내기 전  원석 같은 포지션이다.

  누가 보내는 JSP 인가?  JSP는 어느 포지션에서 대기하고 있는가??

 누가 실행하는 JSP 인가?      A ::::::     JSP는 실행의 대상이 아님.

 

 

 

 

'맨땅CS' 카테고리의 다른 글

모두를위한 CS50 2. 1) boostcourse.org  (0) 2021.04.05