Spring - JSP
JSP (JavaServer Pages)
jsp는 jsp 자체가 동작하는게 아니라 Servlet으로 바꿔서 동작
(실제로 sum.jsp는 sum_jsp.java로 변환됨, 보통 service안에 작성됨)
따라서 아래의 꺽쇠들은 Servlet으로 변환할 때 어떻게 바꿀지 알려주는 부분
<%@ %>: 지시자
EX) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
이런 식으로 page 지시자로 사용 - java 언어로 나옴, content type 선언, jsp Encoding type 선언
<% %>: 스크립트릿(Scriptlet)
html안에서 프로그램을 실행 하기 위함, 프로그래밍 코드 기술
EX) <% int total = 0; for(int i = 1; i <= 10; i++){ total = total + i; } %>
<%= %>: 표현식
화면에 출력할 내용 기술
EX) 1부터 10까지의 합 : <%=total %>
out.print(); 과 <%= %>가 같다고 생각하면 됨
<body>
<%
for(int i=1; i<=5; i++){
%>
<h<%=i %>> JSP </h<%=i %>>
<%
}
%>
</body>
<%! %>: 선언문
이 클래스에 전역,멤버 변수, 메소드, 필드를 선언할 때 사용
EX) <%! public void jspInit() { System.out.println("jspInit()!"); } %>
<body>
id : <%=getId() %>
<%!
String id="u001"; // 멤버 변수 선언
public String getId(){ // 메소드 선언
return id;
}
%>
</body>
<!-- --> <%-- --> // /**/주석
JSP 페이지에서는 HTML주석, Java주석, JSP주석을 사용할 수 있음
JSP 주석의 경우 Servlet으로 변환할 때 없어짐, HTML은 끝까지 나옴, Java는 Servlet으로 바뀔때 없어짐
따라서 상황에 따라 주석을 사용해야 함
xx.jsp가 실행될때
1. 이클립스 워크스페이스 아래의 .metadata폴더에 xx_jsp.java 생성
2. 해당 파일의 _jspService() 메소드 안에 jsp 파일의 내용이 변환되어 들어가 있음
3. xx_jsp.java는 서블릿 소스로 자동 컴파일 되어 실행되 그 결과가 브라우저에 보여짐
JSP의 실행 순서
1. 브라우저가 웹 서버에 JSP에 대한 요청 정보 전달
2. 브라우저가 요청한 JSP가 최초로 요청했을때
1) JSP가 서블릿으로 코드 변환
2) 서블릿 코드를 컴파일 해 실행 가능한 bytecode로 변환 (class 파일 생성)
3) 서블릿 클래스를 로딩하고 인스턴스 생성
3. 서블릿이 실행되어 요청을 처리하고 응답 정보 생성
JSP 내장객체
JSPService()에 삽입된 코드의 윗 부분에 미리 선언된 객체들이 있는데 jsp에서 사용가능
response, request, application, session, out 등을 내장 객체라고 함
내장 객체들은 객체를 따로 생성 혹은 선언하지 않아도 사용할 수 있다.
<body>
<%
StringBuffer url = request.getRequestURL();
out.print("URL: "+url.toString());
out.print("<br>");
%>
</body>