반응형
WAS는 웹 브라우저로부터 JSP에 대한 요청을 받게 되면, JSP 코드를 서블릿 소스코드로 변환한 후 컴파일 하여 실행되게 됩니다.
서블릿으로 컴파일되어 실행될 때 상황에 따라서 어떤 메소드들이 실행되는지 잘 알아야, JSP를 알맞게 작성할 수 있다.
JSP란(java server page)
- JSP는 서블릿 기술을 사용
JSP의 실행 순서(JSP 코드가 Servlet으로 변환될 때)--> Q. html부분만 변경되었다면?
- 브라우저가 웹서버에 JSP에 대한 요청 전보를 전달
- 브라우저가 요청한 JSP가 최초로 요청했을 경우만 JSP로 작성된 코드가 서블릿으로 코드로 변환함.(java 파일 생성)
- 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환함(class 파일 생성)
- 서블릿 클래스를 로딩하고 인스턴스를 생성함.
- 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성함.
스크립트 요소의 이해
- 선언문(Declaration) - <%! %>: 전역변수 선언 및 메소드 선언에 사용
- 스크립트릿(Scriptlet) - <% %>: 프로그래밍 코드 기술에 사용
- 표현식(Expression) - <%=%>: 화면에 출력할 내용 기술에 사용
JSP 내장객체
- JSP를 실행하면 서블릿 소스가 생성되고 실행된다.
- JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService() 메소드 안에 삽입되는 코드로 생성된다.
- _jspService()에 삽입된 코드의 윗부분에 미리 선언된 객체들이 있는데, 해당 객체들은 jsp에서도 사용가능함.
- response, request, application, session, out과 같은 변수를 내장 객체라고 함.
- 내장객체와 동일한 변수명은 서블릿 소스로 변경될 때 이미 내장 객체가 존재하여 사용할 수 없음.
redirect
- 리다이렉트는 HTTP 프로토콜로 정해진 규칙
- 서버는 클라이언트의 요청에 대해 특정 URL 로 이동을 요청할 수 있다.
- 서버는 클라이언트에게 HTTP상태노드 302로 응답하는데 이 때, 헤더 내 Location 값에 이동할 URL을 추가.
- 클라이언트는 리다이렉션 응답을 받게되면 헤더에 포함된 URL로 재요청을 보냄
- 서블릿이나 JSP는 리다이렉트하기 위해 HttpServletResponse 클래스의 sendRedirect()메소드를 사용함
forward
- WAS의 서블릿이나 JSP가 요청을 받은 후 그 요청을 처리하닥, 추가적인 처리를 같은 웹 어플리케이션안에 포함된 다른 서블릿이나 JSP에게 위힘하는 경우
과정
- 웹 브라우저에서 서블릿1에게 요청을 보냄
- 서블릿1은 요청을 처리한 후, 그 결과를 HttpServletRequest에 저장
- 서블릿1은 결고가가 저장된 HttpServletRequest와 응답을 위한 HttpServletResponse를 같은 웹 어플리케이션 안에 있는 Servlet2에게 전송
- 서블릿2는 서블릿1로부터 받은 rerqeust, response를 이용하여 요청을 처리한 후 웹브라우저에 결과 전송
scope
- Application: 웹 애플리케이셔이 시작되고 종료될 때까지 변수가 유지되는 경우
- Session: 웹 브라우저 별로 변수가 관리되는 경우
- Request: http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 경우 사욛
- Page: 페이지 내에서 지역변수처럼 사용
JSTL(JSP Standard Tag Library)
- JSTL을 이용하면 태그형식으로 조건문, 반복문 등을 사용할 수 있음
반응형
'웹 어플리케이션 공부' 카테고리의 다른 글
API (0) | 2020.10.04 |
---|---|
웹 개발 기본 지식 (0) | 2020.09.28 |
서블릿이란 (0) | 2019.08.14 |