▶ JSP(Java Server Page)
JSP : HTML형식 내에서 JAVA 코드를 쓸 수 있는 자바 언어
Servlet(자바코드)에서 응답화면을 구현했던 복잡함을 보다 간단하게 해결 가능하다
=> 즉, JSP의 가장 큰 장점은 Servlet에서는 비지니스 로직처리에만 집중하고
프레젠테이션 로직 처리는 JSP에서 집중하게끔 분리할 수 있다.
▶ JSP Element 표현법
01_Scripting Element(스크립팅 원소)
Scripting Element : JSP 페이지에서 JAVA 코드를 기술할 수 있게 해주는 기능
★ Scripting 종류 ★
0) 선언문 : JSP=> <%! %> / html=> <%! %> // 잘안씀
=> 멤버변수와 메서드 등을 선언하기 위해 사용
1) 스클립틀릿 : JSP=> <% %> / html=> <% %>
=> JSP에서 자바코드를 기술하기 위한 제일 기본적인 표현법
2) 표현식(출력식) : JSP=> <%= %> / html=> <%= %>
=> 자바에서 작성한 값 혹은 메서드 호출 결과를 "출력"하기 위해 사용
// 예시)
<%
// 스클립틀릿 : 이 안에 일반적인 자바코드를 작성(변수 선언 및 초기화, 제어문 등..)
int sum = 0;
for(int i = 1; i<=10; i++){
sum += i;
}
System.out.println("덧셈 결과 : " + sum);
%>
// 결과값을 화면에 출력한다면?
1) 스클립틀릿 : <% out.println(sum); %>
2) 표현식(출력식) : <%= sum %>
<%
// 배열 사용
String[] names = {"김말똥", "홍길동", "이순신", "김갑생"};
%>
<h5>배열의 길이 : <%= names.length %></h5>
<%= names %> <br>
<%= String.join(", ", names) %>
<h4>반복문을 통해 html요소를 반복적으로 화면에 출력 가능</h4>
<ul>
<% for(int i = 0; i < names.length; i++) { %>
<li><%= names[i] %></li>
<% } %>
</ul>
02_Directive Page
=> 지시어(Directive) <%@ page / include / taglib 속성="속성값" ... %>
: JSP page 전체에 영향을 끼치는 정보를 기술할 때 쓰임
page 지시어 : 현재의 JSP페이지를 처리하는데 필요한 각종 속성을 기술하는 부분
<ul>
<li>language : 사용할 스크립트 언어 유형을 지정</li>
<li>contentType : 웹 브라우저가 받아볼 해당 페이지의 형식 및 인코딩 방식 지정</li>
<li>pageEncoding : JSP파일에 기록된 자바코드의 인코딩 방식 지정</li>
<li>import : 자바의 import와 같은 의미로 사용</li>
<li>errorPage : 해당 JSP상에서 오류가 발생했을 경우 보여줄 에러페이지의 경로 지정</li>
<li>isELIgnored : JSP상에서 EL표현식을 사용할지 여부를 지정(기본값 false=EL표현식 쓰겠다)</li>
</ul>
<a href="views/02_DirectivePage.jsp">View detail &raqwo;</a>
<%
// ArrayList 사용
// 지시어 부분에 "import="java.util.ArrayList"를 반드시 추가해야 한다.
ArrayList<String> list = new ArrayList<>();
list.add("Servlet");
list.add("JSP");
Date today = new Date();
// 추가하지 않은 클래스 사용시 에러발생함
//HashMap map = new HashMap();
%>
<p>
리스트의 길이 : <%= list.size() %> <br>
0번 인덱스의 값 : <%= list.get(0) %> <br>
현재 날짜 및 시간 : <%= today %>
</p>
<%--
<%= list.get(10) %>
없는 인덱스값을 제시하면 오류발생한다.
--%>
// 오류가 발생할 경우 출력할 응답페이지 만들기
error 404 : not found