JSP

JSP 기초 / 선행학습 / JSP 주석사용 / JSP 코드

lily_y 2023. 10. 25. 12:22

 

 

☘️ 주석 사용법

JSP의 주석은 <%--     --%> 이다


<%-- 주석을 사용해서 설명을 적어보자 --%>

 

  • java, js (/* */)
  • html (<!-- -->)

HTML은 출력은 잘 되지만, 주석이 클라이언트까지 전송이 되어서 소스보기에서 주석내용이 보이니 주의!! 

 

 

 

☘️ JSP를 사용하는 이유

  • 자바 언어에 기반하기 때문에 플랫폼에 독립적
                            리눅스, 윈도우 등 운영체제에 상관없이 동작
  • 자바 언어에 대한 깊은 이해 없이도 초기 학습 가능
                             스크립트 언어는 상대적으로 자바 언어보다 단순
  • 스프링(Spring)이나 스트러츠(Struts)와 같은 프레임워크와 완벽하게 연동

 

 

 

☘️ JSP 코드의 일반적 구성

JSP 코드의 일반적 구성

 

 

 

☘️ JSP 페이지의 구성요소

 

 

☁️  디렉티브(Directive) : tomcat한테 내 jsp는 이런거야라고 알려주는것

☁️  스크립트 : 스크립트릿(Scriptlet), 표현식(Expression), 선언부(Declaration)

                   스크립트 요소를 대신할 수 있게 해주는 JSP안에 JAVA코드를 뺄 때 사용

☁️  표현 언어(Expression Language)

☁️  기본 객체(Implicit Object)

☁️  정적인 데이터 HTML CSS

☁️  표준 액션 태그(Action Tag)

☁️  커스텀 태그(Custom Tag)와 표준 태그 라이브러리(JSTL)

 

 

 


 

☘️ 디렉티브 (Directive)

🌙   JSP 페이지에 대한 설정 정보를 지정

🌙   디렉티브 구문

                      <%@ 디렉티브이름 속성1="값1" 속성2="값2" ... %>

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

                       <%@ : 띄어쓰기 절대 안 됨 !!!!!!

🌙   제공 디렉티브

                        page : JSP 페이지에 대한 정보를 지정

                                       : 문서의 타입, 출력 버퍼의 크기, 에러 페이지 등 정보 지정

                        taglib : 사용할 태그 라이브러리를 지정

                        include : 다른 문서를 포함

 

 

☘️ 스크립트 요소    

🌙  요청을 처리하는데 필요한 코드를 실행

🌙  동적으로 출력 결과를 생성하기 위해 사용

🌙  스크립트 요소

                ⭐  표현식(Expression) - 값을 출력 <%=

                ⭐  스크립트릿(Scriptlet) - 자바 코드를 실행  <%@

                ⭐  선언부(Declaration) - 자바 메서드(함수)를 정의  <%!

 

결국은 JSP 에서 Java 코드를 떼어놓기 위해 사용함

 

 

 

☘️ 기본 객체

🌜  웹 프로그래밍에 필요한 기능을 제공

🌜  JSP에서 별도 선언 없이 사용 가능

🌜  주요 기본 객체

                   ★–request : HttpServletRequest

                    ★–response : HttpServletResponse
                               : 인터페이스임.
                                 JSP에서는 번거로울필요없이 request와 response를 이용함
                                 인터페이스가 갖고있는 메소드 사용

 

 

 

 

☘️  page 디렉티브

🌛  JSP 페이지에 대한 정보를 입력

                       ◾  JSP가 생성할 문서의 타입, 사용할 클래스, 버퍼 여부, 세션 여부

🌛  JSP 디렉티브의 작성 예

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

                        ◾   <%@ page import="java.util.Date" %>

🌛   주요 속성

 

                        ◾  contentType : JSP가 생성할 문서의 타입을 지정
                        ◾  import : JSP 페이지에서 사용할 자바 클래스를 지정
                        ◾  session : JSP 페이지가 세션을 사용할 지의 여부를 지정
                        ◾  info : JSP 페이지에 대한 설명을 입력한다.
                        ◾  errorPage : 에러가 발생할 때 보여 줄 페이지를 지정

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

 

 

 

 

 

 


 

위에서 본 분홍 배경색의 문단을 기억하는가?

 

 

 

🍄 스크립트 요소

요청을 처리하는 데 필요한 코드를 실행

동적으로 응답 결과를 생성하기 위해 사용

스크립트 요소 세 가지

–스크립트릿(Scriptlet) %@   :   프로그램을 시행

–표현식(Expression) %=

–선언부(Declaration) %!        :   메소드나 필드를 선언한다  (잘 사용하지 않는다)


 

🍄 스크립트릿(Scriptlet) %@

<Script> <body> : 작성할 태그 위치(둘다 괜찮음)

 

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

🌟스크립트릿의 구조

<%

     자바코드1;

     자바코드2;

      ....

%>

 

 

예제코드

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

<%

        int sum = 0;

        for (int i = 1 ; i <= 10 ; i++) {

            sum = sum + i;

         }

%>

 

1 부터 10까지의 합은 <%= sum %> 입니다.

결국 JSP코드를 자바코드로 연산이나 여러 처리를 하기 위해서 스크립트를 사용하는 것이다.

 


🍄 표현식(Expression) %=

🌟 값을 출력 결과에 포함시키고자 할 때 사용

🌟 표헌식 구문

            <%= 값 %>

 

 


🍄 선언부(Declaration) %!

🌟 스크립트릿이나 표현식에서 사용할 수 있는 함수를 작성할 때 사용

🌟 선언부 형식

<%!

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

         자바코드1;

         자바코드2;

              ...

         자바코드n;

          return 값;

          }

%>

 

 

 

 

 

 

 

 


 

 

request 기본 객체

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

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

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

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

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

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

–속성 처리 기능

request 기본 객체 - 파라미터 읽기 메서드

 

 

 

 

GET 방식(METHOD)/POST 방식(METHOD)

  • 파라미터를 전송하는 방식

–GET : 쿼리문자열로 전송

–POST : 요청 몸체 데이터로 전송

  • GET 방식 전송 예

URL을 포함해서 데이터를 넘겨줌

보안에 취약

 

 

• POST 방식 전송 예

 

head 부분을 이용해서 몸통을 보낸다?

 

 

파라미터 값의 인코딩/디코딩

 

 

 

 

• JSP에서 파라미터 로딩 시 인코딩 지정 필요

 

 

 

🌟  GET 방식에서 한글이 깨지지 않도록 하기 위해서는