728x90
JSP 태그
: <% ~ %>
- JSP 코드는 HTML 페이지 내에 부분적으로 Java 코드를 포함한다
- 하나 이상의 Java 문장을 포함하는 스크립틀릿(Scriptlet)을 작성하기 위해 <% 와 %> 태그를 사용한다
- 문자열로 변환되는 표현식(Expression)을 출력하기 위해 <%= 과 %> 태그를 사용한다
- JSP 페이지 내에서는 암묵적 요청 객체(implicit request object)를 사용할 수 있고, 해당 요청 객체는 request라 명명된다.
- JSP 페이지로 전달된 request 객체의 getParameter 메서드를 이용, 전달되는 파라미터의
값을 얻을 수 있다
태그 | 명칭 | 용도 |
<% %> | JSP 스크립틀릿 | Java 구문을 JSP 페이지에서 사용 |
<%= %> | JSP 표현식 | Java 표현식을 문자열로 출력 |
<%@ %> | JSP 지시자 | JSP 페이지 전체에 적용되는 조건을 설정 |
<%-- --%> | JSP 주석 | JSP 페이지에 주석을 삽입 |
<%! %> | JSP 선언문 | 인스턴스 변수 및 메서드를 선언 |
JSP 지시자를 이용한 Java 클래스 import
<%@ page import="com.example.emaillist.vo.EmailVo" %>
<%@ page import="com.example.emaillist.dao.EmaillistDao" %>
<%@ page import="java.util.List" %>
스크립틀릿(Scriptlet)과 표현식(Expression)
- 스크립틀릿 문법
: Java 문법이므로 각 문장을 세미콜론으로 마무리
<% Java Statements %>
- 표현식 문법
: 내부적으로는 객체의 toString 메서드로 변환
: 세미콜론을 붙이지 않음
<%= 문자열로 변경될 수 있는 Java 표현식 %>
- request 객체로부터 파라미터 값을 받는 방법
request.getParameter( parameterName );
스크립틀릿(Scriptlet)과 표현식(Expression) 사용 예
- 파라미터 값을 화면에 출력하는 스크립틀릿 + 표현식의 예
<% String firstName = request.getParameter("firstName"); %>
The first name is <%= firstName %>.
- 파라미터 값을 화면에 출력하는 표현식의 예
The first name is <%= request.getParameter("firstName") %>.
- HTML 블록을 5회 출력하는 스크립틀릿 + 표현식의 예
<%
for (int i = 1; i <= 5; i++) { %>
<h1>This line is shown <%= i %> of 5 times.</h1>
<%
}
%>
JSP 주석
- JSP 주석과 스크립틀릿 내의 Java 주석은 컴파일되지 않으며 실행도 되지 않는다
- JSP 주석의 예
<%--
Today's data is <%= new java.util.Date() %>
--%>
- HTML 주석
<!--
Today's data is <%= new java.util.Date() %>
-->
- HTML 주석 내에 스크립틀릿이나 표현식이 포함되어 있을 경우, 해당 내용은 컴파일 되고 실행도 된다.
request 객체의 이해
- 브라우저로부터 전송된 요청 정보는 HttpServletRequest에 적재되어 Servlet의 service, doGet, doPost 등의 메서드에 전달된다.
- JSP에는 암묵적으로 request 라 명명되어 전달된다. 특별한 작업을 하지 않아도 JSP 스크립틀릿 내에서는 request 객체를 이용, 브라우저로부터의 요청 정보를 활용할 수 있다.
매개 변수(Parameter) 관련 메서드
메서드 | 리턴타입 | 설명 |
getParameter (String param) |
String | 주어진 이름의 파라미터가 갖는 값을 리턴 지정된 파라미터가 없는 경우는 null |
getParameterValues (String param) |
String[] | 주어진 이름의 파라미터가 갖는 모든 값을 문자열 배열로 리턴. 파라미터가 다중 선택이 가능한 리스트 또는 체크박스 값이라면 여러 개의 값이 하나의 이름으로 전달될 수 있다. |
getParameterNames() | Enumeration | request 객체에 포함되어 있는 모든 파라미터의 이름을 열거형 객체로 리턴. request에 파라미터가 하나도 없는 경우에도 비어 있는Enumeration 객체를 리턴. |
요청 헤더(Header) 관련 메서드
메서드 | 리턴타입 | 설명 |
getHeader (String headerName) |
String | 요청 Header에서 headerName에 할당된 값을 리턴. 지정한 이름이 없을 시에는 null |
getHeaderNames() | Enumeration | 요청 Header에 포함된 모든 헤더의 이름을 Enumeration 객체로 리턴 |
쿠키(Cookie) 및 세션(Session) 관련 메서드
메서드 | 리턴타입 | 설명 |
getSession() | HttpSession | 요청한 클라이언트에 지정된 HttpSession의 객체를 리턴. -> 서버저장,보안 우수 이전에 생성된 객체가 없을 때는 새로운 객체를 생성 |
getCookies() | Cookie[] | 요청 Header에 포함된 쿠키를 Cookie 객체의 배열로 리턴 -> Local 사용자 pc |
URL, URI, 요청 Method 관련 메서드
메서드 | 리턴타입 | 설명 |
getServerName() | String | 서버의 도메인 이름을 리턴 |
getServerPort() | int | 서버의 포트 번호를 리턴 |
getRequestURL() | StringBuffer | 요청 URL을 리턴 |
getRequestURI() | String | 요청 URI를 리턴 |
getQueryString() | String | 요청에 사용된 쿼리 문장 전체를 리턴 |
getRemoteHost() | String | 클라이언트의 호스트 이름을 리턴 |
getRemoteAddr() | String | 클라이언트의 IP 주소를 리턴 |
getProtocol() | String | 요청에서 사용된 프로토콜 이름(예: http)을 리턴 |
getMethod() | String | 요청에서 사용된 요청 방식(GET, POST 등)을 리턴 |
getContextPath() | String | 해당 서블릿/JSP의 컨텍스트 경로를 리턴 |
'Web Programming' 카테고리의 다른 글
웹프로그래밍 - MVC 패턴 (0) | 2021.08.17 |
---|---|
JSP 프로그래밍 연습 (0) | 2021.08.13 |
Servlet & JSP 기초 - 2 (0) | 2021.08.13 |
Servlet & JSP 기초 (0) | 2021.08.12 |
웹 프로그래밍 - 동적 웹 페이지 (2) | 2021.08.12 |