컴퓨터/JAVA

[JSP] JSP 기본 사용법/JSP 시작하기

도도새 도 2023. 6. 28. 17:59

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>