JSP 코드를 작성하는 주된 목적은 웹 브라우저에 보여 줄 HTML 문서를 생성하는 것입니다.
JSP를 사용해서 파일 다운로드를 구현할 수 있고, XML과 같은 다른 종류의 문서를 응답으로 제공할 수도 있지만, 대부분의 JSP 코드는 HTML을 생성합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>문서의 제목</title>
</head>
<body>
<%
String bookTitle ="JSP 프로그래밍";
String author = "홍길동";
%>
<b><%= bookTitle %>></b>(<%=author %>)입니다.
</body>
</html>
일단 기본 적으로 JSP 파일을 생성해 보았습니다.
여기서 처음에 보이는 밑에 코드는 설정 부분 의 JSP 페이지에 대한 설정 정보를 말해주는것입니다.
나머지 밑에 부분은 생성 부분 의 HTML 코드와 JSP 스크립트 코드가 되는것입니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
일반적으로 JSP 코드는 위에와 같이 JSP 페이지에 대한 정보를 입력하는 설정 부분과 HTML 문서를 생성하는 생성 부분을 나눌 수 있습니다. JSP의 설정 부분에는 JSP 페이지에 대한 정보가 위치하고
- JSP 페이지가 생성하는 문서의 타입(종류)
- JSP 페이지에서 사용할 커스텀 태그
- JSP 페이지에서 사용할 자바 클래스 지정
이런 정보들을 입력해 줍니다.
JSP 페이지의 구성 요소를 보면 다양한 요소들이 있는데 JSP 페이지에 대한 정보를 지정해야 하고 웹 브라우저가 전송한 데이터를 읽어오는 기능이 필요하며, JSP 페이지에서 사용할 데이터를 생성하는 실행 코드가 필요하고, 웹 브라우저에 문서 데이터를 전송해 주는 기능이 필요합니다. 이처럼 HTML 문서를 생성할려면 다양한 것들이 필요한데, 이를 위해 JSP는 다음과 같은 것을 제공 해줍니다.
- 디렉티브(Directive)
- 스크립트 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)
- 표현언어(Expression Language)
- 기본 객체(Implicit Object)
- 정적인 데이터
- 표준 액션 태그(Action Tag)
- 커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL)
JSP 기본 태그입니다.(scriptlet 라고도 함) : JEE java
| 구분 | JSP 태그 | 용도 |
| 지시자(Directive) | <%@ %> | 페이지 속성 지정 |
| 주석 | <%-- --%> | 주석 처리 |
| 선언 | <%! %> | 변수, 메소드의 선언 |
| 표현식 | <%= %> | 결과값 출력 |
| 스크립트릿 | <% %> | JAVA 코드 삽입 |
| 액션태그 | <jsp:action> </jsp:action> | 페이지 삽입, 공유, 자바빈 사용 등 |
JSP가 제공하는 디렉티브입니다.
| 디렉티브 | 설명 |
| page | JSP 페이지에 대한 정보를 지정합니다. JSP가 생성하는 문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 JSP 페이지에서 필요로 하는 정보를 설정합니다. |
| taglib | JSP 페이지에서 사용할 태그 라이브러리를 지정합니다. |
| include | JSP 페이지의 특정 영역에 다른 문서를 포합시킵니다. |
JSP에서 문서의 내용을 동적으로 생성하기 위해 사용되는 것이 스크립트 요소입니다. 스크립트 요소를 사용하면 사용자가 폼에 입력한 정보를 데이터베이스에 저장할 수 있으며, 데이터베이스로부터 게시글 목록을 읽어와 출력할 수도 있습니다.
또 스크립트를 사용하면 자바가 제공하는 다양한 기능도 사용 가능합니다.
JSP의 스크립트 요소는 3가지가 있습니다.
- 표현식(Expression) : 값을 출력합니다.
- 스크립트릿(Scriptlet) : 자바 코드를 실행합니다.
- 선언부(Declaration) : 자바 메서드(함수)를 만듭니다.
기본 객체라고 JSP 웹 어플리케이션 프로그래밍을 하는 데 필요한 기능을 제공해주는 게있는데
request : 읽어오기
response : 응답 결과 전송하기
session : 세션 처리하기
application : 웹 어플리케이션 정보 읽어오기
page
등의 기능을 가지고 있습니다.
보통은 request 기본 객체, session 기본 객체 그리고 response 기본 객체를 주로 사용 합니다.

참고로 보다보면 자바를 사용할수 있다고 했는데 그냥 보면 html 같다. 여기서 자바 기능을 사용할려면 어떻게 해야할까?
위에서 본 스크립트 요소를 사용 하면되는데 자바 문법을 그대로 사용 할수는 있지만 JSP 코드가 복잡해지는 단점이 존재 하긴 합니다.
<%
int a = Integer.parseInt(request.getParameter("a"));
int b = Integer.parseInt(request.getParameter("b"));
%>
a * b = <%= a*b %>
그냥 봐도 눈치껏 <%%> 안에 있는 것들이 자바 문법인것을 알수 있고 밑에 있는 <%= %> 이것은 결과 값을 출력해 주는 기능을 담당합니다. 뒤에 더 보다보면 EL(expression language)이라고 배우는데
a * b = ${param.a * param.b}
이렇게 작성해줄수도 있습니다.
<%
데이터타입 변수;
out.prinln("<b>JSP</b>입니다.<br>") JEE : web에서 블라우저 출력
-- 화면으로 출력
System.out.prinln("<b>JSP</b>입니다.<br>") JSE
-- 콘솔에서 출력됩니다.
// out : 내장(기번) 객체(인스턴스)
%>
// 에러 유발 : out2 => 내장 객체(x)
// 페이지 에러 (Http error 코드 500)
// 보안성 위해성 ) JSP 소스 코드 노출 !
// JSP를 backedn 코드로는 지양하는 이유
// => Servler(~~.class : byte code) 을 사용하는 이유
<%--JSP 주석 : ";" 사용(x) --%>
<%
// <@ page import="java.util.Date" %> 위에 적용시켜줘야함 자바처럼 컨트롤 쉬프트 o 가안먹힘
// print"ln" => 줄바꿈 기능이 적용되지 않음 <br>태그로 해줘야한다.
out.print("금일 날짜 : " + new Date() + "<br>");
%>
<%!
public int getRandom(float fVal) {
return (int)(Math.random()*fVal);
}
%>
<hr>
demoMethod() : <%-- demoMethod() --%><br>
getRandom() : <%= getRandom(1.23f) %><br>
<hr>
'JSP' 카테고리의 다른 글
| JSP 쿠키 (0) | 2022.07.13 |
|---|---|
| JSP 예외처리 (0) | 2022.07.13 |
| JSP HTML FORM (0) | 2022.07.11 |
| JSP request (0) | 2022.07.11 |
| JSP 플러그인 (0) | 2022.07.07 |