본문 바로가기
Backend/JAVA_WEB

01. JSP (JSP 기본문법, 지시자, 스크립트릿, 표현식)

by 개발개발빈이 2022. 6. 27.

○ JSP (JavaServer Pages)

    - 자바 서버 페이지

    - 서버 사이드 스크립트 언어

    - HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려줌

    - JAVA EE

 

○ .jsp페이지에서 사용 가능한 문법

    - HTML Tag
    - CSS <style></style>
    - JavaScript  <script></script>
    - JSP <%  %>

 

○ JSP 기본문법

    - 주석 : <%-- 주석 내용 --%>

    - 작성 영역 선언 : <% JSP 코드 %> 

    - JSP Directive(지시자)

        ① <%@ page %> : 현재 JPS 페이지에 대한 정보, 페이지 처음에 꼭 넣어주어야 함

        ② <%@ include %> : 현재 JSP 파일에 다른 JSP(또는 HTML) 문서를 포함시킴

        ③ <%@ taglib %> : 사용할 태그 라이브러리(EL, JSTL 등) 선언

 

○ <%@ page %> 지시자

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    - language="" : 생략가능
    - contentType="" : 필수요소
    - pageEncoding="" : 생략가능

 

<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>

     - import="" 자바패키지 및 자바클래스 선언

 

○ Scriptlet (스크립트릿)

    - <% %> : JSP코드 작성 영역 선언

    - 스크립트릿 안에서는 JAVA 문법으로 작성

    - Tomcat WAS에 의해 JSP코드가 해석되고, 결과값을 HTML문서로 변환해서 Frontend단으로 응답해 줌

    - 스크립트릿은 문서에서 여러번 사용 가능

    - 스크립트릿 안에서 HTML을 작성할 때 → out.print("사용할 HTML태그")

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*" %>

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>JSP기본문법</title>
</head>
<body>
    <h3>JSP기본문법</h3>

<% 
    /* 스크립크릿 : JSP코드 작성 영역 */
    
    // 한 줄 주석
    /* 여러 줄 주석 */
    
    //out.print() HTML문서에 출력
    out.print("월드컵");
	out.print(123);
	out.print(5+7);
    
    //HTML태그 ""안에서 작성	
	out.print("<h1>붉은 악마</h1>");
	out.print("<img src='../images/devil.png'>");
	out.print("<hr>");
%>

<%
    //스크립트릿은 여러번 사용 가능
    out.println("<span class=txt>오필승코리아</span>");
%>

</body>
</html>

 

결과확인

    - URL : http://localhost:9090/basic04_web/basic/01_JSPbasicGrammer.jsp

                http:// → 프로토콜
                localhost:9090 → 내시스템:port번호
                basic04_web → context path 프로젝트명
                basic/01_JSPbasicGrammer.jsp → 경로 및 파일명

    - 가상의 경로 basic04_web

      basic04_web의 실제 물리적 경로(src/main/webapp)는 외부에서 접근 불가능

      프로젝트명 basic04_web으로 접근해야 한다

 

표현식

    - 출력

<%
    String name="코로나";
    int kor=80, eng=85, mat=100;
    int aver=(kor+eng+mat)/3;
    
    out.println("이름:" + name);
    out.println("국어:" + kor);
    out.println("영어:" + eng);
    out.println("수학:" + mat);
    out.println("평균:" + aver);
%>

 

    - HTML 태그 출력

<%
    out.println("<hr>");
    
    //표 작성
    out.println("<table border='1'>");
    out.println("<tr>");
    out.println("    <th>이름</th>");
    out.println("    <td>" + name + "</td>");
    out.println("</tr>");
    out.println("<tr>");
    out.println("    <th>국어</th>");
    out.println("    <td>" + kor + "</td>");
    out.println("</tr>");
    out.println("<tr>");
    out.println("    <th>영어</th>");
    out.println("    <td>" + eng + "</td>");
    out.println("</tr>");
    out.println("<tr>");
    out.println("    <th>수학</th>");
    out.println("    <td>" + mat + "</td>");
    out.println("</tr>");
    out.println("<tr>");
    out.println("    <th>평균</th>");
    out.println("    <td>" + aver + "</td>");
    out.println("</tr>");
    out.println("</table>");
%>

 

    - 표현식(Expression) : out.print() 단축키 → <%= %>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>표현식p</title>
</head>
<body>
    <table border="1">
    <tr>
        <th>이름</th>
        <td><% out.print(name); %></td>
    </tr>
    <tr>
        <th>국어</th>
        <td><%=kor%></td>
    </tr>
    <tr>
        <th>영어</th>
        <td><%=eng%></td>
    </tr>
    <tr>
        <th>수학</th>
        <td><%=mat%></td>
    </tr>
    <tr>
        <th>평균</th>
        <td><%=aver%></td>
    </tr>
    </table>
</body>
</html>

 

댓글