[JSP] JSP 기본 사용법/JSP 시작하기
JSP란?
JSP(JavaServer Pages)는 Java 기반의 서버 측 웹 프로그래밍 기술이다. JSP는 동적인 웹 페이지를 생성하기 위해 사용되며, HTML 내에 Java 코드를 포함하여 작성할 수 있는 기능을 제공한다. 서블릿이 Java 코드 내에 HTML을 작성하는 것과 다소 상반되어 있다고 할 수 있다.
JSP는 서블릿(Servlet) 기술을 기반으로 동작한다. 웹 애플리케이션의 클라이언트로부터 요청이 들어오면, JSP 엔진은 JSP 파일을 서블릿으로 변환하여 컴파일한다. 이후에는 서블릿처럼 동작하여 요청에 대한 응답을 생성하고 전송한다.
JSP 사용 방법
아래의 태그 내에 자바 코드를 작성한다.
태그 종류
<% %>: 스크립트릿 태그는 JSP 페이지 안에서 Java 코드를 작성하는 데 사용한다. 예를 들어, 변수 선언, 반복문, 조건문 등을 작성가능하다.
<%= %>: 표현식 태그는 JSP 페이지에서 값을 출력하는 데 사용한다. 표현식 태그 내에 작성된 Java 코드의 결과가 HTML 페이지에 출력된다.
<%-- --%>: 주석 태그는 JSP 페이지 내에서 주석을 작성하는 데 사용한다. 주석은 실행 시 무시되며, 소스 코드의 가독성과 설명을 위해 사용한다.
<%! %> : 선언 태그는 JSP페이지 내에서 전역 변수, 메서드, 클래스 등을 선언하고 초기화하는 데 사용한다.
전역변수와 지역 변수
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%! int globalInt = 0; %>
<%
int number = 0;
globalInt++;
number++;
%>
global : <%= globalInt %>
local : <%= number %>
</body>
</html>
페이지를 새로고침하면 global변수는 계속해서 1이 더해짐을 확인할 수 있다.
JSP for문 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%for(int i = 0; i < 10; i++){%>
<p>카운터 : <%= i %></p>
<%}%>
</body>
</html>
함수 선언 및 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
void func(){
System.out.println("function call");
}
%>
<%
func();
%>
</body>
</html>
<%! %> 태그 내에 함수 원형을 작성하고 <% %> 태그 내에서 사용한다.
JSP 파일 내부 클래스 사용
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
class Human{
private int number;
private String name;
public Human(int number, String name){
this.number = number;
this.name = name;
}
public String print(){
return number + " : " + name;
}
}
%>
<%
Human h1 = new Human(1, "동글이");
%>
<h1><%= h1.print() %></h1>
</body>
</html>
JSP 파일 외부 클래스 사용
Student.java 클래스 파일을 사용한다.
Student.java
package sample1;
public class Student {
private String name;
private int engScore;
public Student(String name, int engScore) {
this.name = name;
this.engScore = engScore;
}
public String print() {
return name + " " + engScore;
}
}
그리고 JSP내에서 클래스 인스턴스를 생성하여 사용한다.
index.jsp
<%@page import="sample1.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Student s1 = new Student("동글동글", 58);
%>
<h1><%= s1.print() %></h1>
</body>
</html>