
: Java Server page의 약자이며
HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다.
JSP가 실행되면 자바 서블릿(Servlet) 으로 변환되며 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.
(출처: https://javacpro.tistory.com/43)
JSP의 필요성
- Servlet의 수정이 어렵다.
- 프로그램이 복잡해지면 Servlet을 통해 출력되는 HTML 페이지를 상상하기 어렵다.
→ JSP를 사용하여 Java 내에서 HTML 코드를 작성할 수 있음!
[기본 jsp 실행시]

html 구조지만 제일 상단에 페이지 지시자를 가지고 있다!
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page...%>: 현재 page의 정보를 설정하는 태그
: JSP에서 Java 코드를 쓰기 위해서는 스크립트립 안에 작성을 해야 한다.
: <% %>
스크립트립 내에서 주석 사용시 java 주석인 // 사용하여도 됨
: <%= %>
: <!-- -->
: html 주석만 html에서 보인다. 나머지 주석은 사용자가 볼 수 없음.
:<%-- --%>
[예시] 스크립트립, 표현식, 주석 사용해보기
<body>
<%
int num = 100;
%>
<%= num %>
<!-- html 주석 -->
<%-- JSP 주석 --%>
<% // JAVA 주석 %>
</body>

→ html주석 말고 다른 jsp주석, java 주석이 안 보인다
[예시] 5부터 682까지 합은?

<body>
<%
int sum = 0;
for(int i = 5; i <= 682; i++){
sum+=i;
}
%>
5부터 682까지의 합은 = <%= sum %>
</body>
[실습] 1~10을 표 안에 넣어 웹에 출력해보자

<body>
<table border='1px solid black'>
<tr>
<!-- 1번째 방법 -->
<% for(int i = 1; i <= 10; i++){ %>
<td><%= i %></td>
<% } %>
</tr>
</table>
<br>
<table border='1px solid black'>
<tr>
<!-- 2번째 방법 -->
<%
String result = "";
for(int i = 1; i <= 10; i++){
result += "<td>"+i+"</td>";
}%>
<%= result %>
</tr>
</table>
</body>
[예시] 필드, 메소드 선언해보기
<%!
// 필드
private String name = "슈슈";
// 메소드
public String hello(){
return "hello";
}
%>
<%
String team = "LETS GET IT";
%>
<%= hello() %>
내장객체란?
(Implict Object)
- JSP page 안에 선언을 하지 않고도 사용할 수 있는 객체
- JSP page 안에서 내장객체를 사용할 수 있는 이유는 Web container가 JSP page를 Servlet class로 변환시키면서 자동으로 내장 객체를 선언함.
- JSP page 안에 별도의 import문 없이 자유롭게 사용 가능

[실습] 나이에 따라서 web page에 다르게 보여주기

<body>
<%
int age = 200;
if(age >= 500){
out.println("<h1>당신은 불혹의 나이군요..</h1>");
}else if(age >= 30){
out.println("<h1>당신은 아직 한창이군요</h1>");
}else if(age >= 20){
out.println("<h1>당신은 매우 젊습니다.</h1>");
}
%>
</body>