야나도 프로젝트

나도 개발자 될수있어

Web Programming

JSP 태그

jmeen 2021. 8. 13. 11:43
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