728x90
JSP(Java Server Page)란?
JSP는 Java Server Pages 의 약자이며
HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹어플리케이션 도구이다.
JSP가 실행되면 자바 서블릿(Servlet)으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.

JSP 동작 과정
- 브라우저가 웹 서버에게 JSP에 대한 요청 정보를 전달한다.
- 브라우저가 요청한 JSP가 최초로 요청했을 경우만 JSP로 작성된 코드가 서블릿 코드로 변환됨(java파일 생성)
- 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환한다(class파일 생성)
- 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성한다.
실제로 .jsp파일을 만들어 실행한 후에 변환된 코드를 찾아보자. (경로는 자신의 Workspace안에서 아래와 같다)
D:\java0320\JSPworkspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost

위의 표는 JSP 기본태그에 대한 설명인데 많이 쓰다보면 외워지기도 하고 표안에 내용을 읽어보면서 의미를 파악하고 많이 써보면서 익혀보면 될 것 같다. 따라서 <% %> 안에 코드를 작성하면 서버에서도 자바코드로 인식을 하게 된다.

<% %>
- 스크립트릿(scriptlet) 태그.
- 모든 자바 코드의 사용이 가능. 단, _jspService() 메서드 내에 포함 되는것을 고려
- 서블릿 코드로 변환시 모든 html 은 out.write() 형태로 변경됨.
- HTML 과 스크립트릿을 중간 중간 섞어 사용하는 것도 가능.
- MVC패턴 적용과 JSTL + EL로 대체 가능.
<%
String name = request.getParameter("uname");
%>
<h2><%= uname %></h2>
<hr>
<table>
<% for(Member m : mlist) { %>
<tr>
<td><%=m.name %></td>
<td><%=m.email %></td>
</tr>
<% } %>
</table>
- request.getParameter() 는 HTTP 파라미터(Query String) 값을 가져옴.
- html 중심의 코드 작성을 위해 반복문 사용시 자바 코드와 html 혼용 가능.
<%= %>
- 표현(expression) 태그.
- 웹브라우저를 통해 클라이언트에 전달될(html 응답에 포함될) 자바 표현식을 포함.
- out.println() 의 인자로 적합한 모든 자바 코드가 가능.
- 사칙연산, 메서드 호출, 변수값 출력등
- EL 로 대체 가능
<h2><%= member.getUserName() %></h2>
현재날짜와 시간: <%= java.time.LocalDateTime.now() %>
<%! %>
- 선언(declaration) 태그.
- jsp 가 서블릿 코드로 변환될때 _jspService() 메서드 안에 들어가게 되므로 jsp 에서는 일반 자바 소스와 달리 멤버변수나 메서드 선언은 기본적으로 불가능.
- 멤버 변수나 메서드 선언이 필요하다면 사용할 수 있으나 권장되지 않음

728x90
'JSP > JSP 정리' 카테고리의 다른 글
[JSP] JSP 기본태그(수정 159) (0) | 2023.06.01 |
---|---|
[JSP] JSP (Java Server Page) 란? (0) | 2023.05.31 |
[JSP] JSP로 시작하기 (0) | 2023.05.31 |
[JSP] DAO란? DTO란? VO란? (0) | 2023.05.30 |
[JSP] pajing 쉽게 이해하기(Oracle, MriaDB 게시판 만들기) (0) | 2023.05.28 |