본문 바로가기
WEB

JSP 3일차

by pms93 2022. 9. 21.

<%@ Directive %>
 - 자바 페이지 환경설정(exam : include file, import)
 
<%! Declaration %>
 - 자바코드 작성(클래스에 작성하는것과 같은 방식, field, method)
 - 사용 빈도가 높아지게 되면 가독성 및 코드의 유지보수가 힘들어지기 때문에 거희 사용되지 않는다. (Class는 Java Resources폴더 내에 작성한다.)
 
<%= Expression %>
 - out.print()와 같은 출력문 작성
 ex)
<%
    String name = "홍길동";
%>

<h1>이름은 <%= name %> 입니다.</h1>
<h1>이름은 <% out.print(name); %>입니다.</h1>

!! System.out.print와 out.print의 차이
 - System Class를 통한 출력은 compiler의 console창에 출력되고 out.print는 web에 출력된다.

 
<% Scriptlet %>
 - 자바코드 작성(매서드 안에 작성 방식)
 - 대부분의 자바코드 작성은 위 태그 내에 작성된다.
 - 주석 사용방법도 java와 동일하다.
 - String.format("String & 서식문자", args)를 통해 printf와 동일기능 사용 가능
 - html tag로 감싸 style 적용도 가능하다.

* Calendar(객체)
 - Calendar.getInstance()를 통해 인스턴스 시킨다. (new도 가능)
     cal.get(Calendar.YEAR)
      - 년도를 반환해준다
     cal.get(Calendar.MONTH)
      - 월수를 반환해준다
     cal.get(Calendar.DATE)
      - 일수를 반환해준다.


<< 내장객체 메서드 >>
 - request, response, out 등... 여러 종류가 존재한다.
 - 내장객체와 내에 매서드를 별도 선언/인스턴스 없이 사용 가능한 이유
 : 작성된 JSP 코드는 servlet으로 변환된 후 모두 _jspService() 메서드 안으로 들어가기 때문에 메서드 매개변수인 request, response와 지역변수로 선언된 pageContext, application, page, config, out 등은 모두 내장객체가 된다. 해당 내장객체들은 _jspService 메서드 부분에서 사용자가 작성된 코드 위에 자동으로 선언되고 초기화 되기 때문에 JSP 파일에서 프로그램을 작성할 때 내장객체를 별도의 선언 없이 사용할 수 있는 것이다.

* request
 - getContextPath()
   : contextPath를 반환한다.

 - getMethod()
   : 전송방식(GET, POST)을 반환한다.

 - getRequestURL()
   : URL을 반환한다. (ex. http://localhost:(portNum)/contextPath/folder/fileName)

 - getRequestURI()
   : URI를 반환한다.  ( URL에서 앞의 http, localhost, portNum등을 제외한 주소 반환)

 - getServerName()
   : 서버의 이름을 반환한다.

 - getProtocol()
   : 현재의 통신규약(프로토콜)을 반환한다.

 - getParameter("tag id")
   : id에 해당하는 tag의 value(값)을 반환한다.

!! 위 getter들의 반환데이터 자료형은 String !!

 - setCharacterEncoding("UTF-8");
   : 데이터 전송방식이 POST일 경우 데이터를 body에 담아 전송하게 된다. 이 때 body에 데이터를 담을 때 raw data(순수 2진수)로 담겨지게 되고 이를 참조하는 과정에서 운영체제가 사용하는 Encoding 설정방식으로 가져오게 된다. 이때 한글같은 데이터는 정상적으로 보이지않기 때문에 위와 같은 method를 통해 Encoding 방식을 UTF-8로 설정해야 한다.

!! Raw Data란?
 - 정보로 처리되기 전 미가공 상태의 자료를 의미하며 '원시자료' 라고도 한다.

'WEB' 카테고리의 다른 글

CSS 2일차(tag)  (0) 2022.09.15
CSS 1일차(tag)  (0) 2022.09.13
JSP 2일차(실습)  (0) 2022.09.13
JSP 2일차(tag)  (0) 2022.09.13
JSP 1일차(실습)  (0) 2022.09.07