일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- model1
- websocket
- PL/SQL
- 알고리즘
- RDS
- Spring
- AWS
- JSP
- 웹게임
- HTML
- autowired
- SQL
- CSS
- 블록체인
- Cookie
- Servlet
- JavaScript
- jQuery
- node.js
- 배포
- 비트코인
- express
- 웹소켓
- tiles.xml
- EC2
- Ajax
- docker
- phaser
- 암호화
- 도커
- Today
- Total
記錄
JSP, MVC, servlet, Mapping 및 기초개념 본문
JSP
자바서버 페이지(JavaServer Pages[1], JSP)는 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. Java EE 스펙 중 일부로 웹 애플리케이션 서버에서 동작한다.
자바서버 페이지는 실행시에는 자바 서블릿으로 변환된 후 실행되므로 서블릿과 거의 유사하다고 볼 수 있다. 하지만, 서블릿과는 달리 HTML 표준에 따라 작성되므로 웹 디자인하기에 편리하다.
- 동적 웹 어플리케이션 컴포넌트. 확장자는 jsp.
- html은 연산을 해서 돌려주지 못하지만 jsp는 동적 연산이 가능. 즉, 클라이언트 요청에 의해 동적으로 작동하고 응답은 html을 이용.
- MVC 패턴에서 View로 이용된다
JSP 아키텍쳐 - tomcat에서 알아서 이런 프로세스를 통해 인식하고 돌려준다
MVC 패턴
컨트롤러가 request인식하여 DB 거치고 바로 View단에서 response하거나 바로 View단에서 response한다
Servlet
서버에서 웹페이지 등을 동적으로 생성하거나 데이터 처리를 수행하기 위해 자바(Java)로 작성된 프로그램을 말한다.
- .java 확장자
- 클라이언트 요청에 동적으로 작동하고 응답은 html을 이용
- java thread 이용하여 동작 -> 한 번에 많은 요청이 들어와도 서버에 부하가 적게 걸리는 장점이 있다
- MVC 패턴에서 Controller로 이용됨
web.xml을 이용한 servlet mapping
- Mapping 하는 이유는 하지 않으면 너무 길고, 보안상 위험 때문에 간단하게 줄이는 것
- <servlet-name>, <servlet-class>, <url-pattern> 외워두기
어노테이션을 이용한 servlet mapping
cf) 어노테이션과 web.xml이 다른 Mapping을 하고 있으면?
- 둘 다 작동한다
※ JSP와 servlet 모두 동적으로 클라이언트의 요청을 처리하기 위한 것이다. 하지만 JSP는 html내에 Java코드로 들어가는 것이고 servlet은 자바파일 그 자체이다.
강의출처 : https://www.inflearn.com/
웹브라우저가 웹페이지를 수신하는 과정
1) 웹 브라우저(클라이언트)가 입력된 url의 ip주소를 DNS(Domain Name Server)에 요청하여 입력된 url에 대응하는 ip주소를 받는다
2) 받은 ip주소를 통해 이에 맞는 웹 서버에 접속하여 웹 페이지를 요청한다
3) request 받은 웹 서버는 reponse로 웹 페이지를 보낸다
cf) 포트(port)?
한 개의 컴퓨터에는 복수의 서버가 구동되고 있을 수 있다. 포트(port)는 각 서버 프로그램의 구분을 위해 사용되는 것이다. 클라이언트는 ip주소와 함께 포트 번호를 사용해서 서버측에 요청을 한다. 그리고 서버측에서는 포트 번호에 따라 구동되고 있는 여러 서버중에 포트에 맞는 서버를 골라 그 서버를 통해 응답을 하게 된다.
즉, ip주소는 서버의 구분까지는 할 수가 없고 컴퓨터의 구분까지만 기능하는 것이고 ip주소로 컴퓨터 구분이 되고 나서는 포트 번호를 통해 응답할 서버가 선택되는 것이다.
HTTP, HTML의 관계
HTML이 보내는 내용물이라면 HTTP는 이 내용물을 담는 박스와 같은 개념이다. HTML은 웹 문서를 만들기 위해 사용되는 프로그래밍 언어의 종류이고 HTTP는 웹 브라우저와 웹 서버가 HTML을 비롯해 이미지, 동영상, XML 문서 등 다양한 데이터(통칭하여 자원(resource))를 주고 받을 때 사용하는 일종의 규칙이다.
JSP 페이지의 구성 요소
디렉티브, 스크립트, 표현언어, 기본 객체, 정적인 데이터, 표준 액션 태그, 커스텀 태그 등이 있다
디렉티브(Directive)
코드에 표기되어 있음
스크립트
문서 내용을 동적으로 만들기 위해 사용되는 것으로 쉽게 말해 자바코드로 보면 된다
코드에 표기되어 있음
기본 객체
implicit object로서 request, response, session, application, page등 다수의 기본 객체가 존재한다
request와 reponse는 많이 쓰이는 개념이니 만큼 밑에 따로 정리한다
Request 기본객체
웹 브라우저가 웹 서버에 연결한 후 요청 정보를 전송하는데, 이 요청 정보를 제공하는 것이 request기본 객체이다. 주로 클라이언트(웹 브라우저)와 관련된 정보 읽기 기능, 서버와 관련된 정보 읽기 기능, 클라이언트가 요청한 파라미터, 헤더, 쿠키를 읽는 등의 기능을 한다
Response 기본객체
웹브라우저에 보내는 응답 정보를 담는 객체이다. 캐시 제어나 리다이렉트 등의 기능을 수행한다
표현 언어
람다랑 비슷한 맥락의 개념으로 보이는데 나중에 따로 공부하기로
표준 액션 태그와 라이브러리
스킵한다. 나중에 예제 나오면 학습
JSP 페이지의 구성요소 코드 예시
JSP 처리 과정
궁극적으로는 서블릿을 만들어서 서블릿에서 요청을 받아서 서블릿을 통해 html로 응답한다는 사실이 핵심이다
자료출처 : 최범균 jsp 2.3 (책)
'Web > JSP' 카테고리의 다른 글
JSP 동작원리, 개념, 내부객체 (0) | 2017.12.01 |
---|---|
초기화 파라미터(init-param), WebListener (0) | 2017.11.28 |
html_form, 인코딩 차이점(get, post) (0) | 2017.11.28 |
servlet LifeCycle (0) | 2017.11.28 |
doGet, doPost, Context Path (0) | 2017.11.28 |