본문 바로가기

카테고리 없음

JSP_2. Scripting Element, Directive Page

JSP(Java Server Page)

JSP : HTML형식 내에서 JAVA 코드를 쓸 수 있는 자바 언어 
    Servlet(자바코드)에서 응답화면을 구현했던 복잡함을 보다 간단하게 해결 가능하다 
    => 즉, JSP의 가장 큰 장점은 Servlet에서는 비지니스 로직처리에만 집중하고
    프레젠테이션 로직 처리는 JSP에서 집중하게끔 분리할 수 있다.

 

▶ JSP Element 표현법

01_Scripting Element(스크립팅 원소)

Scripting Element : JSP 페이지에서 JAVA 코드를 기술할 수 있게 해주는 기능 

★ Scripting 종류 ★
0) 선언문 : JSP=> <%! %>  /  html=> &lt;%! %&gt;  // 잘안씀
	=> 멤버변수와 메서드 등을 선언하기 위해 사용	
1) 스클립틀릿 : JSP=> <%  %>  /  html=> &lt;% %&gt;
	=> JSP에서 자바코드를 기술하기 위한 제일 기본적인 표현법
2) 표현식(출력식) : JSP=> <%= %>  /  html=> &lt;%= %&gt;
	=> 자바에서 작성한 값 혹은 메서드 호출 결과를 "출력"하기 위해 사용

 

// 예시)

<%
    // 스클립틀릿 : 이 안에 일반적인 자바코드를 작성(변수 선언 및 초기화, 제어문 등..)
    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) &lt;%@ page / include / taglib 속성="속성값" ... %&gt;

: 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