차근차근 개발자 되기

JSP

51일차: JSP 태그 / 주석 처리 / request 객체 2021.08.25

wellow 2021. 8. 25. 16:10

목차

1.     JSP 태그와 객체 Import 방법

2.     JSP 주석 처리 방법

3.     내장 객체: request 객체

 

 

1. JSP 태그와 객체 Import 방법

 

1) 스크립틀릿 태그(Scriptlet tag)

- 자바 코드를 실행할 때 사용되는 코드의 블록

- 형식: <%
             자바 코드1;
             자바 코드2;
          %>

 

2) 선언 태그(Declaration tag)

- 메소드를 생성할 때 사용

- 형식: <%!

               public 리턴타입 메소드이름(파라미터목록) {

               자바코드1;

               자바코드2;

               ...

               자바코드n;

               return ;

               }

         %>

 

3) 표현식 태그(Expression tag)

- 변수, 계산식, 메소드 호출 결과를 문자열 형태로 출력할 때 사용

- 형식: <%=    %>

 

4) 지시어 태그(Directive tag): 페이지 태그(page tag)

- JSP 페이지에 대한 정보를 지정(문서의 타입, 출력 버퍼의 크기, 에러 페이지 등)

- 형식: <%@ page    %>

- ex) <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 

생략 가능

문서 타입 지정

한글 값 인코딩

생략 가능(③과 중복)

 

주요 속성

contentType : JSP가 생성할 문서의 타입을 지정

import : JSP 페이지에서 사용할 자바 클래스를 지정

session : JSP 페이지가 세션을 사용할 지의 여부를 지정

info : JSP 페이지에 대한 설명을 입력한다.

errorPage : 에러가 발생할 때 보여줄 페이지를 지정

isErrorPage : 에러 페이지인지의 여부를 지정

 

contentType

- JSP가 생성할 문서의 타입을 지정하는 속성

- contentType 속성을 설정하지 않을 경우에 기본 값은 "text/html"

- ex) <%@ page contentType="text/html; charset=UTF-8"%>

 

import

- JSP 페이지에서 사용할 자바 클래스를 지정하는 속성

- java에서처럼 import 단축키는 사용되지 않지만, 객체를 생성할 때 Ctrl + Space bar를 눌러서 입력하면 자동으로 import가 된다.

- ex) <%@ page import="java.util.Date"%>

 

 

2. JSP 주석처리 방법

 

JSP 페이지에서는 HTML 주석, 자바 주석, 자바스크립트 주석, JSP 주석을 사용할 수 있다.

 

1) JSP 주석

- JSP 주석과 JSP스크립트 주석이 있다.

- JSP 주석은 웹 브라우저나 웹 브라우저 상의 소스 보기에 표시되지 않는다.

 

  위치 형식
JSP 주석 아무 곳이나 기술 가능 <%--    --%> 여러 줄에 기술 가능
JSP스크립트 주석 JSP 태그 안에서만 기술 가능
(스크립틀릿, 표현식, 선언문)
//
/*  */
한 줄에만 기술 가능
여러 줄에 기술 가능

 

- ex) <%--  JSP 주석  --%>

     <%  // 스크립틀릿에 한 줄 주석  %>

     <%  /* 스크립틀릿에 여러 줄 주석 */  %>

     <%=name  /* 표현식에 주석 사용 */  %>

     <%= /* 표현식에 주석만 있는 경우 컴파일 에러 발생함 */  %>

 

2) HTML 주석

- 브라우저에는 출력 X , 소스 보기 출력 O

- 형식: <!--  -->

 

3) Java 주석

- 형식: // 한 줄 주석

         /*  여러 줄 주석  */

 

4) 자바스크립트 주석

- 형식: // 한 줄 주석

         /*  여러 줄 주석  */

 

[예시

<%@ page contentType="text/html;charset=euc-kr" %>

<html>

<!-- HTML에서 제목을 출력합니다. (html 주석) -->

두 개의 숫자를 더해서 결과를 출력합니다 : <br>

<%-- 계산 결과는 자바 코드로 출력합니다. (jsp 주석) --%>

<body>
<%
/* 두 개의 정수형 변수에
값을 할당하고 계산합니다. (jsp 스크립트 다중행 주석)*/
int i=1;
int j=2;
i=i+j;
out.println("i+j = " + i);   // 계산된 결과를 출력합니다. (jsp 스크립트 단일행 주석)
%>

 

[결과]

웹 브라우저

소스 보기

 

3. 내장 객체: request 객체

 

1) request 기본 객체

웹 브라우저가 웹 서버에 전송한 요청 관련 정보 제공

주요기능:

- 클라이언트(웹 브라우저)와 관련된 정보 읽기 기능

- 서버와 관련된 정보 읽기 기능

- 클라이언트가 전송한 요청 파라미터 읽기 기능

- 클라이언트가 전송한 요청 헤더 읽기 기능

- 클라이언트가 전송한 쿠키 읽기 기능

- 속성 처리 기능

 

2) request 객체에서 자주 사용하는 메소드

void        setCharacterEncoding(String env);

String      getParameter(String name);

String[]    getParameterValues(String name);

String      getRemoteAddr();

요청 URI = <%= request.getRequestURI() %>

컨텍스트 경로 = <%= request.getContextPath() %>  /jsppro

 

3) get 방식 / post 방식

- <form> 태그로 값을 전달하는 방식에는 get 방식과 post 방식이 있다.

- <form> 태그에서 method 속성으로 데이터 전달 방식을 지정하지 않으면 기본값인 get으로 설정된다.

- get 방식: 웹 페이지와 같은 인코딩 사용

- post 방식: 응답 화면에 request 객체의 setCharacterEncoding() 메소드로 인코딩 설정을 해주어야 함

 

get 방식

- 전송 정보가 주소 표시줄에 노출되기 때문에 보안에 취약하다.

- <form> 태그 외에도, <meta> 태그, <anchor> 태그, <location> 태그에서도 get 방식으로 데이터가 전달된다.

 

 

post 방식

- 주소 표시줄에 전송 정보가 노출되지 않기 때문에 보안에 유리하다.

- post 방식으로 한글 값 전달 시, 전달받는 페이지에서 request 객체로 인코딩을 설정해야 한다.

- ex) <% request.setCharacterEncoding("utf-8"); %>

 

 

** JSP 내장 객체에 대한 API를 찾으려면?

- Java EE API : 오라클 사이트(https://javaee.github.io/javaee-spec/javadocs/)

- 리턴 타입 확인 후 API에서 내장 객체에 대한 정보를 얻을 수 있다.