1. JSP는 .jsp 파일에서
이클립스에서는 기본적인 jsp 문서의 폼을 제공한다.
이 jsp 파일은 html문서보다 더 역동적인 기능을 수행할 수 있는 문서이다.
기본적인 폼은 html에서 사용했던 문법과 크게 다르지 않다.
자바에서는 웹페이지를 구축할 수 있는 프로그램이 지원되며 서블릿(servlet)으로 지원된다.
그렇기에 우리는 서블릿 형태로 자바웹페이지를 구현을 해야 하는데 이것이 너무 어렵고, 복잡하다는 단점이 있다.
그래서 자바에서 웹페이지를 쉽게 구현할수 있도록 별도로 지원을 해준 프로그램이 jsp이다.
그리고 jsp는 컴파일언어가 아니라 인터프리터 형식의 언어이다.
우리가 앞전에서 설치한 Tomcat이라는 WAS(Web Application Server)를 통해 JSP 코드가 해석되어 HTML문서로 출력되게 된다.
2. Directive
jsp에서 가장 중요한 개념이 있다.
그것은 바로 Directive(지시자)
지시자는 크게 세 종류가 있다.
<%@ page %>
<%@ include %>
<%@ taglib %>
<%-- 지시자 주석--%>
이제부터 하나씩 알아가보자.
1) page 디렉티브
<%-- 기본 형식 --%>
<%@ page %>
<%-- 예시 --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
JSP 파일은 꼭 이 디렉티브가 필수로 와야한다.
여기서 페이지 디렉티브는 이 페이지에 대한 정보를 지시해주는 역을 한다.
language="java" : JSP 페이지의 스트립트에서 사용할 프로그래밍 언어. 생략가능
contentType="text/html; 응답결과를 html문서 형식으로 생성해서 출력한다.
charset=UTF-8" 사용할 문자의 인코딩은 한글로 된 문서를 생성할 때는 UTF-8 사용한다.
pageEncoding="UTF-8" : JSP페이지에서 사용하는 문자의 인코딩을 지정할때 사용한다.
charset=UTF-8 에서 지정했으면, 생략 가능하다.
- <%@ page contentType="text/html; charset=UTF-8" %>
- <%@ page import="java.util.*" %>
2) include 디렉티브
<%-- 기본 형식 --%>
<%@ include file="파일명" %>
공통적으로 포함될 내용을 가진 파일을 해당 JSP페이지내에 삽입하는 기능을 제공한다.
3) taglib 디렉티브
<%-- 기본 형식 --%>
<%@ taglib prefix="" uri=""%>
3. JSP 페이지의 스크립트 요소
1) 스크립트릿(Scriptlet)
JSP파일에서는 HTML 태그, CSS, JavaScript, JSP 의 문법을 모두 사용 가능하다.
그래서 일반적인 JAVA 또는 JSP 코드를 작성할 때는 다른 코드와의 구분을 위해 스크립트릿 안에 코드를 구현한다.
기본 형식는 아래와 같다.
또한 여러번 사용도 가능하다
<%-- 기본 형식 --%>
<% %>
이 스크립트릿 안에서 메소드는 작성이 불가능하며 이 안에서 포함된 자바코드는 호출될 때 _.jspService() 메소드 안에서 선언이 된다.
out.print("무궁화");
out.print(123+456);
out.print(5+7);
out.print(8.9);
out.print('X');
/*
● 결과확인
http://localhost:9090/basic04_web/basic/01_JSP기본문법.jsp
- http:// 프로토콜
- localhost:9090/ 내시스템:port번호
- basic04_web Context Path 프로젝트명
- /basic/01_JSP기본문법.jsp 경로명 및 파일명
● 가상의 경로 basic04_web
basic04_web의 실제 물리적 경로(src/main/webapp)는 외부에서 접근 불가능
프로젝트명 basic04_web으로 접근해야 한다
에러 http://localhost:9090/src/main/webapp/basic/01_JSP기본문법.jsp
*/
// HTML 태그를 JSP에서 사용하는 경우 "" 안에서 작성
out.print("<h1>악마</h1>");
out.print("<img src='../images/002.png'>");
out.print("<hr>");
2) 선언문(Declaration)
<%-- 기본 형식 --%>
<%! %>
- 멤버변수, 메소드 선언
- 많은 사용을 권장하지 않음
3) 표현식(Expression)
<%-- 기본 형식 --%>
<%= %>
- 웹브라우저에 출력할 부분을 표현하기 위해 사용되는 문법이다.
- <% out.print(코드); %> 메소드로 변환된다.
- <TD>태그안에 데이터베이스의 컬럼값을 출력할 경우에 주로 사용한다.
<%
String name="코로나";
int kor=80, eng=85, mat=100;
int aver=(kor+eng+mat)/3;
// 1) 출력
out.println("이름:" + name + "<br>");
out.println("국어:" + kor + "<br>");
out.println("영어:" + eng + "<br>");
out.println("수학:" + mat + "<br>");
out.println("평균:" + aver + "<br>");
out.println("<hr>");
// 2) 표작성 출력
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>");
%>
<hr>
<!-- 3) 표현식(Expression) : out.print()의 단축키 -->
<table border="1">
<tr>
<th>이름</th>
<td><%=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>
4) 주석(Comment)
- <%
// 한줄 주석
/* 여러줄 주석 */
%>
'⁂ JSP > : 기본 익히기' 카테고리의 다른 글
[JSP] #2-4 내부 객체 (0) | 2022.10.05 |
---|---|
[JSP] #2-3 사용자 정의 함수 (0) | 2022.10.05 |
[JSP] #2-2 배열 만들기 (0) | 2022.10.05 |
[JSP] #1-2 Tomcat 서버 환경 구축하기 (0) | 2022.10.04 |
[JSP] #1-1 서버의 이해 (0) | 2022.10.04 |