JSP
:JavaServer Pages
jsp는 servlet으로 바뀐 후 서블릿과 같은 방식으로 실행된다.(서블릿 소스가 생성되고 실행된다.) (by tomcat)
1. 실행순서
브라우저가 jsp로 웹서버에 요청을 한다.
-> 서버는 jsp에 해당하는 서블릿이 있는지 찾는다.
존재한다면 서블릿 엔진이 요청을 받아 실행한다.
존재하지 않는다면, 즉 처음으로 요청한다면 jsp 엔진이 요청을 받는다. jsp를 최초로 요청할때 jsp 코드가 서블릿 코드로 변환된다.
(.jsp 파일을 실행하면 이클립스 워크 스페이스 안에 .java 파일이 생성된다. _jspService() 메소드에 jsp 파일에 입력한 내용이 변환돼서 들어있다.)
-> java는 서블릿 소스로 컴파일되어 실행가능한 bytecode로 변환된다(class 파일 생성)
jsp 엔진은 서블릿 클래스를 로딩해 인스턴스를 생성한다.
-> 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성해 브라우저에 보여준다.
-> html에 자바코드를 넣어서 프로그램을 실행시키도록 해준다.
2. 스크립트 요소
1) 선언문(Declaration)
: <%! ~ %>
: 전역변수 선언 및 메소드 선언
cf. 선언문을 사용하면 _jspService() 메소드 내가 아니라 다른 메소드에서 사용할 수 있다.
<%!
public void jspInit(){
System.out.println("jspInit()");
}
%>
<%!
public void jspDestroy(){
System.out.println("jspDestroy()");
}
%>
<%!
String id = "abc"; //멤버변수 선언
public String getId() { //메소드 선언
return id;
}
%>
2) 스트립트릿(Scriptlet)
: <% %>
: 지역변수 선언 (.jsp_servic() 메소드 안에 선언)
: 프로그래밍 코드
3) 표현식(Expression)
: <%= %>
: 웹브라우저 화면에 출력할 내용
: 브라우저에 응답 결과로 준다.
cf. 주석(Comment)
<%-- jsp 주석 --> : 볼 수 없음
//java 주석 : jsp -> servlet -> java 파일까지 확인가능. 출력 화면 소스보기에서는 볼 수 없음
<!-- html 주석 -->: 출력 화면 소스보기에서 확인 가능
3. JSP 내장객체
: _jspService()에 삽입된 코드 윗부분에 미리 선언된 객체로 jsp에서 사용가능하다.
(response, request, appliccation, session, out 등 변수)
1) request
: 사용자 입력 정보를 읽어올 때 사용
2) response
: 사용자 요청에 대한 응답을 처리할 때 사용
3) session
: 클라이언트 세션 정보를 처리할 때
4) out
:사용자에게 전달하기 위한 output 스트림을 처리할 때