<%@ 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 |