프로그램 작성

JSP – 초보자를 위한 빠른 가이드

2021년 10월 30일

목차

JavaServer 페이지란 무엇입니까?

그만큼 자바 서버 페이지(JSP) , 서버 측 기술은 개발자가 웹 페이지를 개발하는 데 도움이 됩니다. HTML , XML , 비누 등으로 불리기도 합니다. 자카르타 서버 페이지 . JSP에서 개발자는 Java 코드를 HTML 언어. JSP에는 다음을 사용할 수 있는 고유한 태그가 있습니다. 자바 HTML의 코드. 이 태그는 다음으로 시작하고 끝납니다. '<%’ 그리고 '%>' 기호를 각각. JSP를 실행하려면 서블릿 컨테이너가 포함된 웹 서버가 필요합니다. 예를 들어 다음을 사용할 수 있습니다. 아파치 톰캣 또는 .

JSP는 다음에서 모델링됩니다. 자바 서블릿 . 자바 서블릿 자카르타 서블릿이라고도 합니다. 런타임 동안 JSP는 서블릿으로 변환됩니다. 따라서 서블릿이라고 합니다. 일반적으로 JSP는 텍스트 파일로 작성되며 HTML 또는 XHTML 코드, JSP 작업, XML 요소 및 JSP 명령을 포함합니다. JSP는 Java 웹 애플리케이션에서 사용자 인터페이스의 역할을 합니다. request, session, config, out, response, application, page, pageContext와 같은 모든 JSP 묵시적 객체는 웹 컨테이너 .

웹 페이지 양식을 접했을 수 있습니다. 이 양식의 목적은 다양한 사용자로부터 데이터를 수집하는 것입니다. 이러한 웹 페이지 형식에서 JSP는 사용자의 데이터를 입력으로 받아 이러한 데이터를 데이터베이스 형태로 정리하고 웹 페이지를 생성하는 데 사용됩니다. JSP의 주요 목적은 XML 및 HTML 문서 유형을 제시하는 것입니다. 그러나 다음을 사용하므로 다른 형식의 문서도 표시할 수 있습니다. 출력스트림 . JSP의 파일 확장자는 .jsp, .jspx, .jspf이며 인터넷 미디어 유형 애플리케이션/jsp입니다.

파일 확장자를 변경하여 HTML 파일을 JSP 파일로 변환할 수 있습니다. .html 에게 .jsp . 확장자를 변경한 후 JSP 태그를 사용하여 HTML 페이지 내부에 Java 코드를 추가합니다. JPS를 사용하여, 개발자는 동적 웹을 생성할 수 있습니다. 페이지 및 플랫폼 독립적인 웹 페이지. JSP의 몇 가지 중요한 기능을 살펴보겠습니다.

우리의 휴먼 컴퓨터 인터페이스 가이드 초보자에게 좋을 것입니다.

JSP 기능

JSP는 동적 웹 콘텐츠를 만드는 편리한 방법 중 하나입니다. 개발자가 여러 애플리케이션을 만들기 위해 JSP를 선택하는 데는 몇 가지 이유가 있습니다. 다음은 Jakarta Server Pages의 몇 가지 엄선된 기능입니다.

  • JSP에는 action과 custom tag가 있습니다. 따라서 JSP의 코드 길이는 크기가 작습니다.
  • HTML 또는 XML 페이지에 Java 프로그래밍 언어를 포함하므로 JSP로 코드를 작성하는 것은 간단합니다.
  • JSP를 사용하면 개발자가 데이터를 수집하여 데이터베이스에 넣거나 데이터베이스에서 데이터를 읽거나 쓸 수 있습니다.
  • 이 서버 측 기술은 브라우저나 서버에 의존하지 않기 때문에 매우 유연하고 이식 가능하며 강력합니다.
  • JSP 코드를 계속해서 컴파일할 필요는 없습니다. 플랫폼 독립적이며 다시 컴파일하지 않고도 모든 콘솔에서 실행할 수 있습니다.
  • JSP는 암시적 개체, 서블릿 및 사용자 정의 태그를 통합합니다. 따라서 개발자는 대화형 실시간 웹 페이지를 생성합니다.
  • JavaScript, Perl, VBScript 등과 같은 다른 스크립팅 언어를 JSP 프로그램에 포함할 수도 있습니다. 기본적으로 Java는 JSP의 스크립팅 언어입니다.

Java Server Pages를 사용하는 이유는 무엇입니까?

JSP를 사용하면 몇 가지 장점이 있습니다. 그들은 다음과 유사하게 행동합니다. 공통 게이트웨이 인터페이스(CGI) . 웹 서버는 공통 게이트웨이 인터페이스에서 동적 웹 페이지를 생성하는 모든 프로그램을 실행합니다. JSP를 CGI와 비교할 때 JSP는 더 강력하고 개발자에게 더 많은 이점을 제공합니다. 다음은 JSP가 CGI보다 더 유리한 이유를 이해하는 데 도움이 되는 몇 가지 이유입니다.

  • 개발자는 JSP를 사용하여 HTML에 동적 요소를 추가할 수 있습니다. CGI를 사용하는 경우 Dynamic Elements에 대해 별도의 CGI 파일을 만들어야 합니다.
  • JSP는 컴파일되고 나중에 모든 플랫폼에서 실행됩니다. 반면에 CGI는 인터프리터를 로드하고 웹 페이지를 요청할 때마다 코드를 해석합니다.
  • JSP와 서블릿을 함께 사용하여 비즈니스 로직을 모니터링할 수 있습니다. Java 서블릿 템플릿 엔진은 JSP와 서블릿이 결합된 모델을 지원합니다.
  • JSP는 Java 서블릿의 고급 추상화입니다. 이 페이지는 Java 서블릿 인터페이스의 최상위 레벨에서 생성됩니다. 따라서 JAXP, JDBC, JNDI 등과 같은 모든 기본 Java 인터페이스에 액세스할 수 있습니다.
  • MVC 아키텍처에서 JSP는 보기 계층으로 사용됩니다.
  • 모든 엔터프라이즈급 애플리케이션은 Java EE라고 하는 플랫폼에서 실행됩니다. Java EE 플랫폼은 JSP를 통합합니다.

JSP의 장점

JSP는 JavaScript, Static HTML, Pure Servlets 등과 같은 다른 기술보다 더 효율적이고 견고합니다. 여기에서 JSP가 다른 기술에 비해 얼마나 유리한지 살펴보겠습니다.

  • JSP의 가장 바람직한 장점 중 하나는 동적 부분을 작성하기 위해 Java 프로그래밍 언어를 사용한다는 것입니다. 코드 작성에 Visual Basic을 사용하지 않습니다. 둘째, 다른 제품과 호환됩니다. 운영 시스템.
  • JSP를 사용하여 Java 코드를 HTML 페이지에 포함합니다. 따라서 HTML을 수정하는 것은 어렵지 않습니다.
  • 웹 양식에서 데이터를 검색하여 데이터베이스에 연결합니다.
  • 웹 애플리케이션에서 JSP는 비즈니스 로직 계층을 프레젠테이션 계층과 분리합니다.
  • JSP는 Java 프로그래밍 언어를 사용합니다. 따라서 Java의 멀티스레딩 개념도 지원합니다.

JSP 자습서를 진행하기 전에 JSP 환경 설정을 안내합니다. 또한 Java 프로그래밍에 대한 자세한 지식이 필요합니다. 이제 데스크탑에서 JSP 환경을 설정하는 방법을 알려주세요.

JSP 환경을 설정하는 방법은 무엇입니까?

JSP 환경을 설정해야 하는 이유는 무엇입니까? 데스크탑에서 JSP 환경을 수정해야 합니까? JSP를 이용하여 동적인 웹 콘텐츠나 웹 애플리케이션을 생성하려면 JSP 환경을 설정해야 합니다. 이 환경을 통해 개발자는 JSP 프로그램을 작성하고 컴파일하고 모든 플랫폼에서 실행할 수 있습니다. 아래 단계에서 JSP 환경 설정을 설명합니다.

자바 개발 키트 설정

첫 번째 단계는 자바 개발 키트 (JDK)를 데스크탑에 설치합니다. JSP를 사용하여 HTML 코드에 Java 코드를 포함하기 때문에 Java Development Kit가 필요합니다. 따라서 JSP 환경에서는 먼저 JDK 환경을 수정해야 합니다.

먼저 오라클 공식 사이트에서 Java SDK(소프트웨어 개발 키트)를 다운로드해야 합니다. 웹사이트

다운로드 후 .exe 파일을 열고 주어진 지침에 따라 설치 및 구성합니다. 나중에 두 개의 환경 변수를 설정해야 합니다. 그리고 자바_홈 . 설정해야 합니다 바탕 화면의 위치에 대한 변수 자바 , 즉., java_install_dir/bin, 그리고 자바_홈 있는 위치에 대한 변수 자바 , 즉., java_install_dir .

Windows 시스템이 있고 SDK 파일을 다음 위치에 설치한 경우 C:jdk1.5.0_20 위치에 이 경로를 추가합니다. C:autoexec.bat 파일.

|_+_|

Windows NT, 2000 또는 XP 시스템에 SDK 파일을 설치한 경우 다른 설정 방법이 있습니다. 그리고 자바_홈 환경 변수. 를 마우스 오른쪽 버튼으로 클릭해야 합니다. 내 컴퓨터 , 선택하다 속성 , 어서 고급의 로 이동 환경 변수 . 여기서 설정해야 하는 의 위치로 자바 , 즉., Cjdk1.5.0_20in . PATH를 변경한 후 확인 단추.

이제 우리는 Solaris와 같은 UNIX 시스템을 위한 PATH 및 JAVA_HOEM 환경 변수를 설정하는 방법을 알게 될 것입니다. 리눅스 등. SDK 파일을 다음 위치에 설치했다고 가정합니다. /usr/local/jdk1.5.0_20 . 아래 두 명령을 추가해야 합니다. .cshrc 파일. 우리가 C 쉘을 사용한다고 생각해 보십시오.

|_+_|

Eclipse, Sun ONE Studio, JBuilder 등과 같은 통합 개발 환경(IDE) 도구를 사용하는 경우 샘플 Java 프로그램을 가져와 컴파일하고 실행하여 IDE 도구가 시스템에서 Java가 설치된 위치를 알고 있는지 확인합니다.

Java Development Kit를 설치하고 PATH 및 JAVA_HOME 환경 변수를 설정한 후 다음 단계는 웹 서버를 설정하는 것입니다.

Tomcat 웹 서버 설정

오늘날 JSP 또는 서블릿을 통해 동적 웹 애플리케이션 개발을 지원하는 여러 웹 서버를 사용할 수 있습니다. 우리는 오픈 소스이며 무료로 사용할 수 있는 Tomcat 웹 서버를 사용할 것입니다. Tomcat은 Apache Tomcat의 짧은 이름입니다. 누구나 무료로 사용할 수 있으며 JavaServer Pages, Servlets, WebSocket 및 Java Expression Language와 같은 여러 서버 기술과 호환됩니다. Tomcat의 Java 코드는 다음에서 실행됩니다. 순수 자바 HTTP 웹 서버.

Apache Tomcat에는 여러 구성 요소가 있습니다. 각 구성 요소와 용도를 알려주세요.

  • Tomcat의 서블릿 컨테이너는 다음과 같습니다. 캐서린 , JSP 및 서블릿에 대한 Sun Microsystem의 사양을 활용합니다. 사용자 이름, 암호 및 사용자 역할은 Realm 요소에 있습니다.
  • Tomcat의 커넥터 구성 요소는 코요테 , HTTP 1.1 프로토콜과 호환됩니다.
  • Tomcat의 JSP 엔진은 벽옥 . 이 엔진은 JSP 텍스트 파일을 구문 분석하고 Java 코드로 컴파일합니다.
  • Tomcat의 또 다른 구성 요소는 무리 , 대규모 웹 애플리케이션을 관리합니다.

다음은 Apache Tomcat 웹 서버를 다운로드하는 단계입니다.

  • 먼저 공식 사이트에서 Apache Tomcat을 다운로드해야 합니다. 웹사이트

최신 버전의 Apache Tomcat을 다운로드해야 합니다.

  • 소프트웨어를 다운로드한 후 다운로드한 파일을 특정 위치에 둡니다. 예를 들어 Windows 시스템에 Tomcat을 설치한 경우 다운로드한 파일을 다음 위치에서 찾습니다. C:apache-tomcat-5.5.29 . Linux 또는 Unix 시스템의 경우 파일을 다음 위치에 배치합니다. /usr/local/apache-tomcat-5.5.29 .
  • 파일을 찾은 후 생성 CATALINA_HOME 환경 변수. 위에서 언급한 대로 이 변수를 바람둥이 파일의 위치로 설정합니다. 즉, Windows 시스템의 경우 변수를 다음으로 설정합니다. C:apache-tomcat-5.5.29 , 그리고 Linux 시스템의 경우 변수를 다음으로 설정합니다. /usr/local/apache-tomcat-5.5.29 .

Apache Tomcat 설정이 성공적으로 완료되었습니다. Windows 시스템에 Tomcat을 설치한 경우 Tomcat 응용 프로그램을 시작하기 위한 두 가지 명령 중 하나를 따르십시오.

|_+_|

또는

|_+_|

Tomcat 애플리케이션이 Linux 시스템에 설치된 경우 아래 명령 중 하나를 입력하여 Tomcat 애플리케이션을 시작할 수 있습니다.

|_+_|

또는

|_+_|

Tomcat 응용 프로그램을 성공적으로 열면 다음을 방문하십시오. http://localhost:8080/ . Tomcat에 있는 모든 기본 응용 프로그램을 확인할 수 있습니다. Tomcat 공식 웹사이트에서 제공되는 설명서를 사용하여 Tomcat 애플리케이션을 구성하고 실행할 수 있습니다.

이제 Windows 및 Linux 시스템에서 Tomcat 응용 프로그램을 종료하는 명령을 볼 수 있습니다. Windows 시스템에서 Tomcat 애플리케이션을 종료하기 위한 두 가지 명령이 있습니다. 그것들은 다음과 같습니다:

|_+_|

또는

|_+_|

Linus 시스템의 경우 Tomcat 응용 프로그램을 닫는 두 가지 명령 중 하나를 따를 수 있습니다.

|_+_|

또는

|_+_|

CLASSPATH 설정

Windows 및 Linux 시스템에서 CLASSPATH를 설정하는 방법에 대해 설명합니다. Windows 시스템에 Tomcat을 설치한 경우 CLASSPATH 설정을 위해 아래 코드 라인을 따르십시오.

|_+_|

Windows 시스템에 NT, 2000 또는 XP 버전이 있는 경우 내 컴퓨터 , 선택하다 속성 , 클릭 고급의 로 이동 환경 변수 . 여기에서 CLASSPATH 값을 변경하고 확인 단추.

Linux 시스템에 Tomcat을 설치한 경우 .cshrc 파일에 다음 두 줄을 추가합니다. 우리가 C 쉘을 사용한다고 생각해보자.

|_+_|

JSP의 아키텍처는 어떻습니까?

JSP용 환경을 설정했습니다. JSP 페이지를 실행하기 위해 Apache Tomcat을 사용했습니다. JSP 페이지를 처리하기 위해 컨테이너라는 JSP 엔진이 있습니다. Apache Tomcat에는 JSP 엔진이 내장되어 있습니다. 벽옥 . 따라서 개발자는 Jasper를 사용하여 JSP 페이지를 생성할 수 있습니다. 컨테이너와 웹 서버는 함께 작동하여 런타임 환경 또는 JSP 및 JSP가 필요로 하는 기타 모든 서비스를 제공합니다.

JSP

위의 다이어그램은 모든 웹 애플리케이션에서 JSP 컨테이너와 JSP 파일의 위치를 ​​보여줍니다. 이제 JSP를 사용하여 웹 서버에서 동적 웹 페이지를 생성하는 과정을 설명합니다.

  • 먼저 Windows, Linux 또는 macOS 시스템의 클라이언트 또는 브라우저는 위의 다이어그램과 같이 인터넷을 통해 웹 서버에 HTTP 요청을 보냅니다.
  • 웹 서버에는 모든 JSP 파일이 저장되는 JSP 엔진이 있습니다. 클라이언트로부터 HTTP 요청을 수신하면 웹 서버는 요청이 JSP 페이지에 대한 것임을 식별합니다. 그런 다음 이 요청을 JSP 엔진으로 전송합니다. 웹 서버는 .jsp 또는 .html 확장자를 가진 파일을 사용하거나 URL을 통해 HTTP 요청을 JSP 페이지로 전송합니다.
  • 이제 JSP는 클라이언트가 웹 서버로 보낸 HTTP 요청을 받습니다. HTTP 요청이 JSP 페이지에 대한 것임을 알고 있습니다. 따라서 엔진은 디스크에서 특정 페이지를 로드하고 이를 서블릿 콘텐츠로 변환합니다. 즉, 모든 템플릿 텍스트가 println() 문으로 변경됩니다. 반면에 이 변환은 모든 JSP 페이지를 Java 코드로 변환하기도 합니다.
  • 요청된 JSP 페이지는 서블릿으로 변환됩니다. 따라서 서블릿은 JSP 엔진에 의해 실행 가능한 클래스로 컴파일됩니다. 나중에 클라이언트의 HTTP 요청은 JSP 엔진에 의해 서블릿 엔진으로 전송됩니다.
  • 서블릿과 JSP 엔진은 모두 웹 서버의 일부입니다. 서블릿 엔진은 JSP 엔진에 의해 컴파일된 실행 가능한 클래스를 실행하고 HTML 형식의 출력을 생성합니다. 웹 서버에는 HTTP 응답이라는 또 다른 구성 요소가 있습니다. 서블릿 엔진은 HTML 출력을 HTTP 응답으로 보냅니다.
  • 마지막으로 웹 서버는 정적 HTML 콘텐츠의 형태로 인터넷을 통해 브라우저에 HTTP 응답을 보냅니다.

따라서 Java 프로그래밍 기술이 거의 없는 JSP 페이지를 사용하여 서블릿을 작성할 수 있습니다. 위의 JSP 처리를 통해 번역 단계를 제외하고는 서블릿과 동일하게 작동한다는 결론을 내릴 수 있습니다. JSP 페이지를 지원하는 웹 서버가 있는 3계층 아키텍처를 따릅니다. 이제 JSP 수명 주기로 이동합니다. 여기에서는 JSP 파일이 여러 단계를 통과하는 방법과 웹 컨테이너에 있는 방법에 대해 설명합니다.

JSP의 라이프 사이클

모든 구성 요소의 수명 주기는 생성될 때 시작되고 소멸될 때 종료됩니다. JSP의 라이프 사이클은 서블릿의 라이프 사이클과 유사합니다. JSP 수명 주기의 추가 단계는 JSP 페이지를 서블릿으로 변환하고 컴파일하는 데 사용됩니다. JSP 라이프사이클은 JSP 페이지 생성, 서블릿으로 변환, 서블릿 라이프사이클, JSP 페이지 파괴로 정의할 수 있습니다. 이제 아래에서 JSP의 수명 주기를 자세히 살펴보겠습니다.

JSP의 라이프 사이클에는 다음과 같은 네 가지 기본 경로가 포함됩니다.

  1. 편집
  2. 초기화
  3. 실행
  4. 대청소

이 네 가지 JSP 라이프사이클 경로는 모두 서블릿의 라이프사이클 경로와 유사합니다. 아래 다이어그램은 위의 단계를 보여줍니다.

JSP

이제 JSP 라이프사이클의 각 단계와 그에 대한 설명을 자세히 논의해 보겠습니다.

    JSP 컴파일

클라이언트 또는 브라우저가 JSP 페이지에 대한 HTTP 요청을 보내면 웹 서버에 있는 JSP 엔진이 요청 페이지를 컴파일해야 하는지 여부를 확인합니다. JSP 엔진은 요청된 페이지가 이전에 컴파일되지 않았거나 페이지를 수정한 후 컴파일되지 않은 경우 컴파일합니다. 페이지 컴파일에는 다음과 같은 세 단계가 포함됩니다.

  • 요청된 페이지는 JSP 엔진에 의해 구문 분석됩니다.
  • 그런 다음 JSP 페이지를 서블릿으로 변환합니다.
  • 마지막으로 서블릿이 컴파일됩니다.

JSP 페이지가 서블릿으로 변환되면 .jsp 파일로 변환됩니다 .자바 파일. 컴파일 당시, .자바 파일은 다음으로 변환됩니다. .등급 파일.

    JSP 초기화

컴파일이 완료되면 클래스 로딩 프로세스가 발생합니다. JSP 소스는 서블릿 클래스를 로드하고 이 서블릿 클래스는 컨테이너에 로드됩니다. 서블릿 클래스의 인스턴스가 컨테이너에 생성됩니다. 서블릿 클래스의 인스턴스가 생성된 후 jspInit() 메소드가 호출됩니다. 이 메소드는 JSP의 라이프 사이클에서 한 번만 호출됩니다. JSP 특정 초기화의 경우 다음을 재정의해야 합니다. jspInit() 다음과 같은 방법:

|_+_|

jspInit() 메소드가 인스턴스화되면 데이터베이스 연결을 생성하고 파일에서 조회 테이블을 생성해야 합니다.

    JSP 실행

jspInit() 메소드가 인스턴스화되고, _jsp서비스() 방법이 사용됩니다. 이 메소드는 JSP가 파괴될 때까지 클라이언트가 웹 서버로 보낸 모든 요청을 처리합니다.

그만큼 _jsp서비스() 방법은 두 개의 다른 매개변수를 포함하며, HttpServlet요청 그리고 HttpServlet응답 . 이 메서드는 다음과 같이 정의됩니다.

|_+_|

그만큼 _jsp서비스() 메소드는 클라이언트의 모든 요청에 ​​응답합니다. 클라이언트가 요청을 발행할 때마다, _jsp서비스() 메소드가 호출됩니다. 또한 다음과 같은 7가지 HTTP 요청에 모두 응답합니다. 가져 오기 , 삭제 , 게시하다 , 놓다 등을 재정의할 수 있습니다. _jsp서비스() 방법.

    JSP 정리:

JSP 라이프 사이클의 마지막 단계는 JSP가 파괴되는 Cleanup입니다. 컨테이너는 JSP를 제거하고 사용하지 않습니다. 이 방법은 서블릿의 destroy 방법과 동일합니다. 데이터베이스의 파일을 닫거나 데이터베이스 연결을 닫아야 하는 경우 재정의할 수 있습니다. jspDestroy() 방법. jspDestroy() 메서드의 구문은 다음과 같습니다.

|_+_|

JSP의 구문

이 부분에서는 작업, 지시문, 암시적 개체, 주석, 표현식 등과 같은 여러 JSP 요소의 구문을 배웁니다. 자습서의 이 섹션은 JSP 도메인의 초보자에게 매우 중요합니다. 다음은 JSP 구문에 대한 빠른 가이드입니다.

    스크립틀릿:

Scriptlet은 강력한 JSP 요소 중 하나입니다. 스크립틀릿에 Java 문, 메서드, 변수 및 표현식을 저장할 수 있습니다. 또한 모든 스크립팅 언어의 요소를 저장할 수도 있습니다. 아래는 Scriptlet 요소의 통사론:

통사론:

|_+_|

위의 Scriptlet 구문은 다음과 같은 형식의 XML로 작성할 수 있습니다.

|_+_|

모든 HTML 태그, JSP 요소 및 기타 텍스트는 항상 Scriptlet 태그 외부에 작성됩니다. HTML 페이지 내에서 JSP의 간단한 예를 볼 것입니다.

예시:

|_+_|

데스크탑에 Tomcat 서버가 설치되어 있어야 하며 이 프로그램을 실행하기 위한 환경이 설정되어 있어야 합니다. Tomcat 서버 환경을 설정하려면 위의 환경 설정 단계를 따르십시오. 위의 파일을 다음과 같이 저장합니다. 첫 번째jsp.jsp 에서 C:apache-tomcat7.0.2webappsROOT 폴더. 파일을 저장한 후 브라우저로 이동하여 URL을 입력하고, http://localhost:8080/firstjsp.jsp. 위의 코드는 JSP Quick Guide와 시스템의 IP 주소를 표시합니다.

    선언

Java 코드에서 사용할 변수나 메소드가 필요한 경우 JSP 선언에서 이를 선언합니다. Java 코드에서 변수나 메소드를 사용하기 전에 JSP 선언을 사용하여 선언해야 합니다. JSP 선언의 구문은 다음과 같습니다.

통사론:

|_+_|

위의 구문은 다음과 같이 XML로 작성됩니다.

|_+_|

이제 JSP 선언의 예를 살펴보겠습니다.

예시:

|_+_|
    표현

JSP의 표현식에는 스크립팅 언어의 표현식이 포함됩니다. 이러한 표현식을 평가하고, 문자열로 변환하고, 표현식이 나타나는 JSP 파일에 추가할 수 있습니다. 문자열로 변환할 수 있으므로 텍스트와 함께 JSP 표현식을 사용할 수 있습니다. HTML 태그 내에서 JSP 표현식에 태그를 지정하는 것은 필수가 아닙니다. JSP 표현식을 작성하는 동안 기억해야 할 한 가지 중요한 점은 표현식을 끝내기 위해 세미콜론을 사용하지 않는다는 것입니다.

통사론:

|_+_|

위의 구문은 다음과 같이 해당 XML에 작성할 수 있습니다.

|_+_|

다음 예는 HTML에서 JSP 표현식을 사용하는 방법을 이해하는 데 도움이 됩니다.

|_+_|

다음과 같이 현재 날짜 및 시간으로 출력을 얻을 수 있습니다.

|_+_|
    코멘트

주석은 실행을 위한 것이 아닌 명령문입니다. 프로그래머와 독자만을 위한 것입니다. JSP에서 주석은 컨테이너에서 무시됩니다. JSP 프로그램의 일부를 숨기려면 JSP 주석을 사용하여 해당 부분에 주석을 달 수 있습니다. 다음은 JSP 주석 구문입니다.

통사론:

|_+_|

JSP 주석이 포함된 아래 예제를 실행합니다.

예시:

|_+_|

이 코드의 결과는 아래와 같습니다.

|_+_|

JSP에는 주석을 지정하는 다른 많은 방법이 있습니다. 다음은 6가지 주석 구문과 그 용도입니다.

위의 내용을 HTML 주석이라고 하며 브라우저는 주석 안에 쓰여진 문자나 단어를 무시합니다.

    %>

정적 리터럴을 의미합니다.

    <\%

위의 주석은 정적 리터럴이라고도 합니다.

속성에 사용되는 큰따옴표를 지정합니다.

    '

속성에 사용되는 작은따옴표를 지정합니다.

    지시문

JSP에는 세 가지 지시문이 있습니다. , , 그리고 . 그만큼 지시문은 오류 페이지, 스크립팅 언어 및 버퍼링 요구 사항과 같은 페이지 속성을 정의하는 데 사용됩니다. 다른 지시문, , JSP 라이프 사이클의 번역 단계에서 사용되는 특정 파일을 포함합니다. 마지막으로, 지시문은 JSP 페이지에서 필요한 탭 라이브러리 및 사용자 정의 조치를 선언하는 데 사용됩니다. JSP 지시어를 사용하면 서블릿 클래스의 구조에 영향을 줍니다. 다음은 JSP 지시문에 대한 구문입니다.

|_+_|
    행위

작업은 이미 정의된 기능입니다. JSP 액션은 서블릿 엔진의 동작을 제어하는 ​​데 사용됩니다. 이러한 작업은 XML 코드에 구성을 추가합니다. JSP 작업을 사용하여 파일을 동적으로 삽입하거나 Java 플러그인용 HTML을 생성하거나 JavaBeans 구성 요소를 재사용할 수 있습니다. 다음은 JSP 조치의 구문입니다.

통사론:

|_+_|

아래에 몇 가지 중요한 JSP 작업과 해당 설명을 나열합니다.

    jsp:useBean: 이 작업은 JavaBean을 인스턴스화하거나 식별합니다.jsp:getProperty: 출력에 JavaBean 속성을 추가하기 위해 jsp:getProperty 작업을 사용할 수 있습니다.jsp:setProperty: 이 작업은 JavaBean 속성을 수정합니다.jsp:포함: 사용자가 페이지를 요청하면 이 작업은 파일을 추가합니다.jsp:플러그인: Java Plugin에 대한 OBJECT 또는 EMBED 태그 및 브라우저별 코드를 생성합니다.jsp:속성: 이 액션은 동적으로 정의되는 XML 요소의 속성을 정의하는 데 사용됩니다.jsp:앞으로: 이 작업은 사용자를 새 페이지로 안내합니다.jsp:요소: XML 요소를 동적으로 정의해야 하는 경우 이 조치를 사용하십시오.jsp:텍스트: 이 작업을 통해 사용자는 템플릿 텍스트를 JSP 페이지에 추가할 수 있습니다.jsp:본문: 동적으로 정의되는 XML 요소의 본문을 정의하는 데 사용됩니다.
    암시적 개체

JSP에는 요청, 응답, 세션, 출력, pageContext, 구성, 응용 프로그램, 페이지 및 예외의 9가지 암시적 개체가 있습니다. 여기에서 각 암시적 개체에 대해 자세히 알려주십시오.

    요구: 요청 객체는 클라이언트의 요청과 관련된 HttpServletRequest입니다.응답: 응답 객체는 클라이언트에 대한 서버의 응답과 관련된 HttpServletResponse입니다.세션: 이 객체는 HttpSession을 포함하며 클라이언트의 요청 객체와 연결됩니다.밖: 또 다른 암시적 개체가 빠져 있습니다. PrintWriter 개체를 사용하여 클라이언트에 출력을 보내는 데 사용됩니다.페이지 컨텍스트: 이 암시적 개체는 서버별 기능의 적용을 지정합니다. 서버별 기능의 한 예는 JspWriters입니다.구성: 이 객체는 JSP 페이지와 함께 사용되는 ServletConfig 객체를 포함합니다.애플리케이션: JSP의 ServletContext 객체는 애플리케이션 컨텍스트와 함께 사용됩니다.페이지: 페이지 암시적 개체는 서블릿 클래스에 의해 정의된 모든 메서드를 호출합니다.예외: 지정된 JSP는 Exception 객체를 이용하여 예외 데이터에 접근할 수 있다.
    제어 흐름 문

JSP는 또한 제어 흐름 문, 의사 결정 문 및 루프를 사용합니다. 여기에서 의사 결정 문과 루프가 JSP 프로그래밍에서 어떻게 사용되는지 볼 것입니다.

의사결정 진술

의사 결정 진술은 사용 가능한 선택 사항을 결정하는 데 사용됩니다. 의사결정문을 실행하는 방법에는 두 가지가 있습니다. 하나는 if_else 문을 사용하고 다른 하나는 switch-case 문을 사용합니다. 각각의 if 및 else 조건은 별도의 스크립틀릿으로 묶여 있습니다. JSP에서 if_else 문의 예를 살펴보겠습니다.

예시:

|_+_|

여기서는 'month=3'을 선언하고 if_else 문에 조건을 지정했습니다. 따라서 출력은 다음과 같습니다.

|_+_|

이제 switch...case 문을 구현합니다. 아래 코드는 하나의 Scriptlet에 아래 코드의 조건이 지정되어 있기 때문에 위 코드와 상당히 다릅니다.

예시:

|_+_|

산출:

|_+_|

루프 문

특정 명령어를 특정 횟수만큼 반복하기 위해 프로그램에서 루프를 사용합니다. JSP는 for, while, do...while 등 세 가지 유형의 루프를 지원합니다. 아래에서 각 루프 유형의 예를 살펴보겠습니다.

루프:

|_+_|

산출:

|_+_|

루프 동안:

|_+_|

산출:

|_+_|
    JSP의 연산자

Java에서 지원하는 모든 논리 및 산술 연산자는 JSP에서 사용됩니다. 연산자는 평가를 위해 JSP 표현식에서 사용됩니다. 우선 순위가 가장 높은 연산자가 먼저 평가되고 우선 순위가 가장 낮은 연산자가 마지막에 평가됩니다. 우선 순위가 가장 높은 모든 JSP 연산자를 먼저 나열하고 두 번째로 높은 우선 순위를 그 다음으로 하는 식으로 나열했습니다.

    접미사: 후위 연산자 '()'는 세 가지가 있습니다. '[]', 그리고 '.'. 이러한 모든 연산자에는 왼쪽에서 오른쪽으로의 연관성이 있습니다.단항: 단항 연산자는 '++', '-', '!', '~'로 오른쪽에서 왼쪽으로 연결됩니다.곱셈: 곱셈 연산자는 '*', '/', '%'의 세 가지가 있습니다. 그들은 왼쪽에서 오른쪽 연관성이 있습니다.첨가물: 덧셈 연산자는 '+'와 '-'입니다. 또한 왼쪽에서 오른쪽으로의 연관성이 있습니다.옮기다: 시프트 연산자, '>>', '>>>', '<<’ have left to right associativity. 관계형: '>', '=', '의 4가지 관계 연산자가 있습니다.<=’. All of them have left to right associativity. 평등: 등호 연산자는 '=='와 '!='로 왼쪽에서 오른쪽으로 연결됩니다.비트 AND: 비트 AND 연산자(&)는 왼쪽에서 오른쪽으로 연결됩니다.비트 XOR: 비트 XOR 연산자(^)는 왼쪽에서 오른쪽으로 연결됩니다.비트 OR: 비트 OR 연산자(|)는 왼쪽에서 오른쪽으로 연결됩니다.논리 AND: 논리 AND 연산자(&&)는 왼쪽에서 오른쪽으로 연결됩니다.논리적 OR: 논리 OR 연산자(||)는 왼쪽에서 오른쪽으로 연결됩니다.가정 어구: 조건 연산자(?:)는 오른쪽에서 왼쪽으로 연결됩니다.과제: =, +=, -+, *=, %=, /=, >>=,<<=, &=, ^=, and |=. All these operators have the right to left associativity. 절: 쉼표 연산자(')는 왼쪽에서 오른쪽으로 연결됩니다.

JSP는 부울, 정수, 부동 소수점, 문자열 및 NULL의 5가지 다른 리터럴 또는 데이터 유형을 지원합니다. 부울 리터럴은 결과로 true 또는 false를 반환합니다. 정수는 숫자를 지정하는 데 사용되며 부동 소수점은 JSP 프로그램에서 10진수를 선언하는 데 사용됩니다. JSP의 String 데이터 유형은 Java 언어의 데이터 유형과 다릅니다. NULL 데이터 형식은 null 값을 지정합니다.

JSP 작업

우리는 JSP 조치가 무엇인지 보았습니다. 또한 위의 요약에서 모든 JSP 작업을 보았습니다. 액션은 JSP 엔진의 동작을 조절하는 기능일 뿐입니다. JSP 조치의 구문을 상기해 보겠습니다.

통사론:

|_+_|

JSP 조치는 jsp:include, jsp:useBean, jsp:setProperty, jsp:getProperty, jsp:forward, jsp:element, jsp:plugin, jsp:attribute, jsp:body 및 jsp:text입니다. 이러한 모든 JSP 작업에는 ID와 범위라는 두 가지 공통 구성 요소가 있습니다.

ID 구성 요소는 JSP 작업을 고유하게 식별하는 데 사용됩니다. JSP 작업의 이 구성 요소는 수행할 작업을 정의하는 JSP 프로그램에서 사용됩니다. 또 다른 요소는 JSP 작업의 수명 주기를 식별하는 데 사용되는 범위입니다. 액션의 ID를 사용하여 수명이 결정됩니다. 따라서 ID 요소와 Scope 요소는 정비례합니다. 범위 구성 요소는 페이지, 세션, 요청 또는 응용 프로그램과 같은 가능한 값을 사용할 수 있습니다.

액션

JSP의 useBean 액션은 먼저 ID와 Scope 속성을 가진 객체를 찾습니다. 개체를 찾을 수 없는 경우 이 작업은 해당 특정 ID 및 범위 속성에 대한 개체를 만듭니다. 다음은 useBean 클래스를 로드하는 방법입니다.

|_+_|

Bean 클래스를 로드한 후 다른 두 JSP 작업을 사용할 수 있습니다. jsp:setProperty 그리고 jsp:getProperty . 이러한 작업은 Bean 속성을 수정하고 가져오는 데 사용됩니다. useBean 작업은 세 가지 다른 속성 , 등급 , 유형 , 및 beanName. 그만큼 등급 속성은 빈의 패키지 이름을 할당합니다. 당신은 사용할 수 있습니다 유형 참조하는 객체의 변수 유형을 지정하기 위한 요소입니다. 마지막으로 beanName은 빈의 이름을 제공합니다. instanceiate() 메소드는 빈 이름을 지정합니다.

액션

작업은 Bean의 속성을 설정하는 데 사용됩니다. 빈의 속성을 설정하기 위한 유일한 요구 사항은 빈이 먼저 정의되어야 한다는 것입니다. 다음과 같이 작업을 사용하는 두 가지 방법이 있습니다.

첫 번째 방법은 외부 및 구성 요소 이후를 사용하는 것입니다.

|_+_|

위의 구문에서 새 요소가 인스턴스화되지 않았거나 기존 요소가 없는 경우에도 작업이 실행됩니다.

액션을 정의하는 또 다른 방법은 jsp:useBean 컴포넌트 내부에 있습니다.

|_+_|

를 사용하는 첫 번째 방법과 달리 두 번째 방법은 기존 방법을 찾거나 새 방법을 인스턴스화한 경우에만 실행됩니다.

jsp:setProperty에는 네 가지 다른 속성이 포함됩니다. 이름 , 재산 , , 그리고 그만 . 그만큼 이름 속성은 속성이 설정될 빈에 이름을 할당합니다. 또 다른 속성, 재산 , 속성을 정의합니다. 그만큼 는 속성에 할당된 값이고 그만 속성은 속성에서 수신한 매개변수의 이름을 정의합니다.

액션

jsp:setProperty 액션이 속성 값을 설정하는 것을 보았습니다. 여기에서 작업은 속성 값을 가져옵니다. 값을 가져온 후 문자열로 변환하고 결과에 추가합니다.

작업에는 이름과 속성이라는 두 가지 속성만 있습니다. 그만큼 이름 속성은 특정 속성을 보유하는 빈 이름을 정의하고, 재산 속성은 Bean의 속성 이름을 정의합니다. 다음은 작업 구문입니다.

|_+_|

다음을 포함하는 한 가지 예를 살펴보겠습니다. 예시 콩. 아래 파일을 다른 이름으로 저장 예제빈.자바 .

|_+_|

이 코드를 작성한 후 예제빈.자바 파일을 생성하기 위해 컴파일 예제빈.클래스 파일. 이제 복사 예제빈.클래스 에 파일 C:apache-tomcat-7.0.2webappsWEB-INFclassesaction 폴더. 설정했는지 확인하십시오. 클래스패스 변하기 쉬운.

이제 main.jsp 파일을 만들고 그 안에 아래 코드를 작성해야 합니다.

|_+_|

산출:

|_+_|

액션

JSP 프로그램에 자바 요소를 삽입하고자 할 때 액션을 사용한다. 이 작업은 또한 브라우저 유형을 식별하고 또는 태그를 JSP 프로그램에 추가합니다. 플러그인을 사용할 수 없는 Java 구성 요소가 필요하다고 가정합니다. 이 작업은 Applet 또는 Bean과 같은 Java 구성 요소를 실행하는 데 필요한 플러그인을 다운로드합니다. 플러그인 작업에는 HTML 태그에 해당하는 여러 속성이 있습니다.

다음은 작업의 간단한 예입니다.

|_+_|

위의 코드에서 우리는 새로운 요소를 관찰할 수 있습니다. . 구성 요소가 실패하면 이 요소는 오류 문자열을 사용자에게 보냅니다.

다음과 같은 행동 , , 그리고 XML 요소를 정의합니다. 모든 XML 요소는 컴파일 시간이 아니라 런타임에 생성됩니다. 즉, 동적으로 생성됩니다.

액션

현재 페이지의 작업을 종료하고 다른 리소스로 전달하려는 경우 다음을 사용할 수 있습니다. 동작. 이 작업의 구문은 다음과 같습니다.

|_+_|

하나의 속성만 작업과 연결됩니다. 페이지 . 이 페이지에는 작업이 전송되는 리소스의 상대 URL이 포함되어야 합니다. 자원은 JSP 페이지, Java Servlet 및 정적 페이지일 수 있습니다.

이제 동작의 간단한 예를 하나 보겠습니다. 우리는 두 개의 파일을 만들 것입니다, 날짜.jsp 그리고 메인.jsp . date.jsp 파일에는 현재 날짜가 표시되고 main.jsp 파일에는 작업이 포함됩니다.

날짜.jsp 파일

|_+_|

메인.jsp 파일

|_+_|

두 파일을 모두 ROOT 디렉토리에 저장해야 합니다. 이제 결과를 위해 main.jsp 파일에 액세스할 것입니다. main.jsp 파일의 내용을 표시하지 않습니다. 대신, 전달된 파일이므로 date.jsp 파일의 내용을 표시합니다.

산출:

|_+_|

액션

액션을 사용하여 JSP 페이지에 텍스트 템플릿이나 문서를 작성할 수 있습니다. 다음은 작업 구문입니다.

|_+_|

여기에서 템플릿에는 텍스트와 EL 표현식만 포함됩니다. 템플릿에는 다른 요소가 있을 수 없습니다. XML 파일에서 표현식을 다음과 같이 사용하지 마십시오. ${무엇이든 > 0} , 이 표시는 허용되지 않거나 불법입니다. 대신 다음을 사용할 수 있습니다. ${gt 0} .

JSP 지시문

구문 섹션에서 JSP의 디렉토리가 무엇인지 보았습니다. 여기서는 JSP 디렉토리에 대해 자세히 알아보겠습니다. 지시문은 특정 JSP 처리 요소를 처리하고 규제하기 위해 JSP 컨테이너를 명령하고 지시하기 때문에 JSP에서 필수적입니다. JSP 지시문 때문에 서블릿 클래스의 전체 구조가 영향을 받습니다.

통사론:

|_+_|

지시어의 속성은 키-값 형식입니다. 지시문에는 여러 속성이 있을 수 있으며 각각은 쉼표로 구분됩니다. 위의 구문에서 우리는 사이의 공백을 관찰할 수 있습니다. '<%@’ 및 지시문 이름, 값 및 '%>.' 이러한 공백은 선택 사항입니다. 사이에 공백을 추가하지 않아도 걱정할 필요가 없습니다. 위에서 3개의 지시문 태그가 있음을 보았습니다. , , 그리고 . 이러한 지시문 태그 각각에 대해 자세히 설명하겠습니다.

페이지 지시문

Page 지시문은 컨테이너의 현재 페이지에 대한 지침을 제공합니다. JSP 프로그램의 아무 곳에나 페이지 지시문을 포함할 수 있습니다. 일반적으로 page 지시자는 JSP 페이지의 맨 위에 사용됩니다. 페이지 지시문의 구문은 다음과 같습니다.

|_+_|

위의 구문은 다음과 같이 XML로 작성됩니다.

|_+_|

아래에 설명된 것처럼 페이지 지시문과 관련된 13개의 속성이 있습니다.

    자동 플러시: 이 속성은 서블릿 출력 버퍼의 동작을 조절합니다.오류 페이지: errorPage는 Java 확인되지 않은 런타임 예외를 발생시키는 다른 JSP의 URL을 표시합니다.연장하다: 생성된 서블릿은 지정된 슈퍼클래스를 확장해야 합니다.완충기: buffer 속성은 출력 스트림의 버퍼링 모델을 정의합니다.컨텐츠 타입: 이 속성은 문자 인코딩 체계를 정의합니다.isErrorPage: 현재 JSP 페이지가 다른 JSP 페이지의 errorPage 속성으로 정의된 URL인지 여부를 제안한다.정보: getServletInfo() 메소드로 접근할 수 있는 String을 명시한다.언어: 이 속성은 JSP 페이지에서 사용되는 프로그래밍 언어를 나타냅니다.isELIgnored: JSP 페이지의 EL 표현식을 무시할지 여부를 지정합니다.수입: 이 문은 JSP에 추가해야 하는 모든 패키지와 클래스를 나타냅니다. Java에서 Java import 문은 Java 프로그램에 포함하는 데 필요한 모든 클래스와 패키지를 지정합니다.isThreadSafe: 이 속성은 서블릿의 스레딩 모델을 지정합니다.세션: 세션 속성은 JSP 페이지가 HTTP 세션에 참여하는지 여부를 확인합니다.isScriptingEnabled: 이 요소는 JSP 페이지에서 스크립팅 요소를 사용할지 여부를 지정합니다.

포함 지시문

번역 단계에서, 포함하다 지시문은 JSP 페이지에 파일을 포함하는 데 사용됩니다. 이 지시문은 또한 모든 외부 파일을 JSP 페이지와 결합하는 것에 대해 컨테이너에 지시합니다. page 지시자는 JSP 페이지의 상단에만 포함되기 때문에 include 지시어는 페이지 어디에서나 사용할 수 있습니다.

통사론:

|_+_|

위의 구문은 다음과 같이 XML로 작성됩니다.

|_+_|

여기서 파일 이름은 상대 URL입니다. 파일의 경로를 정의하지 않으면 컴파일러는 파일이 JSP의 위치에 있다고 가정합니다.

taglib 디렉토리

마지막 디렉토리 유형은 태그립 . 이 디렉토리는 사용된 사용자 정의 태그 세트, 라이브러리 위치 및 JSP 페이지에서 사용자 정의 태그 찾기와 같은 JSP 페이지에 대한 많은 정보를 제공합니다. 다음은 taglib 디렉토리의 구문입니다.

|_+_|

위의 구문은 다음과 같이 XML로 작성할 수 있습니다.

|_+_|

속성, 싫어하다 , 컨테이너가 이해할 수 있는 위치를 지정하고, 접두사 속성은 사용자 정의 작업의 구성에 대해 컨테이너에 알려줍니다.

JSP 암시적 객체

JSP 암시적 개체는 Java 개체입니다. JSP 컨테이너를 사용하면 개발자가 명시적으로 선언하지 않고도 모든 JSP 페이지에서 이러한 암시적 개체를 사용할 수 있습니다. 이러한 개체는 라고도 합니다. 미리 정의된 변수 . 요청, 응답, 출력, 세션, 응용 프로그램, 페이지, pageContext, 구성 및 예외의 9가지 다른 암시적 개체가 있습니다.

요청 객체

그만큼 javax.servlet.http.HttpServletRequest 객체는 요구 물체. 클라이언트 또는 사용자가 특정 페이지를 요청하면 JSP 엔진은 클라이언트의 요청을 나타내는 새 객체를 생성합니다. 그만큼 요구 객체는 HTTP 메소드, 쿠키 등과 같은 HTTP 헤더 정보를 추출하는 여러 메소드를 제공합니다.

응답 객체

그만큼 javax.servlet.http.HttpServletResponse 객체는 응답 물체. JSP 엔진은 사용자가 특정 페이지를 요청할 때마다 새 객체를 생성하므로 해당 페이지의 응답을 나타내는 객체도 생성합니다. 응답 객체를 사용하여 HTTP 상태 코드, 스탬프 등과 같은 새 쿠키를 JSP 프로그램에 포함할 수 있습니다.

아웃 오브젝트

그만큼 javax.servlet.jsp.JspWriter 객체는 물체. JSP 엔진은 클라이언트가 요청한 응답에 콘텐츠를 추가할 수 있습니다. 그만큼 JspWriter 객체에 존재하는 거의 동일한 메소드가 있습니다. java.io.PrintWriter 등급. 몇 가지 추가 방법이 있습니다. JspWriter 버퍼링에 사용되는 개체이며 IOException이 발생합니다.

응용 프로그램 개체

그만큼 javax.servlet.ServletContext 라는 인스턴스를 생성합니다. 애플리케이션 래퍼 역할을 하는 객체 서블릿 컨텍스트 물체. 이 객체는 JSP 페이지를 나타냅니다. JSP 페이지가 초기화되면 애플리케이션 객체가 생성된다. 이 객체는 JSP 페이지가 jspDestroy() 메소드를 사용하여 파괴될 때 제거됩니다.

세션 객체

그만큼 javax.servlet.http.HttpSession 라는 인스턴스를 생성합니다. 세션 물체. 이 객체는 Java 서블릿에서 작동하는 것과 유사하게 작동합니다. 세션 개체의 주요 목적은 클라이언트 요청 간의 세션을 추적하는 것입니다.

예외 개체

이전 JSP 페이지의 예외를 포함하는 래퍼를 예외 객체라고 합니다. 오류 조건이 발생하면 예외 개체를 사용하여 처리합니다.

페이지 개체

페이지 개체는 페이지 인스턴스에 대한 참조를 제공합니다. 전체 JSP 페이지를 나타냅니다. ' 이것' 개체와 페이지 개체는 서로 동의어입니다.

pageContext 객체

그만큼 javax.servlet.jsp.PageContext 라는 인스턴스를 생성합니다. 페이지 컨텍스트 물체. 좋아요 페이지 개체, 페이지 컨텍스트 객체는 또한 완전한 JSP 페이지를 나타냅니다. pageContext 개체의 속성을 사용하여 다음과 같은 다른 암시적 개체를 파생할 수 있습니다. 애플리케이션 , 구성 , 세션 , 그리고 . 이 개체는 페이지 범위, errorPageURL 및 버퍼링 정보와 같은 정보도 저장합니다. pageContext 개체에서 지원하는 메서드는 40개입니다.

구성 개체

그만큼 javax.servlet.ServletConfig 라는 인스턴스를 생성합니다. 구성 물체. 이 객체는 래퍼 역할을 합니다. 서블릿 구성 물체. 사용자는 이 객체를 사용하여 서블릿 또는 JSP 엔진의 초기화 매개변수에 액세스할 수 있습니다. 아래 방법은 config 객체를 사용하여 JSP 페이지에서 사용하는 방법입니다.

|_+_|

JSP 클라이언트 요청

웹 서버는 브라우저나 클라이언트가 특정 웹 페이지를 요청할 때 많은 정보를 얻습니다. 이 정보는 HTTP 요청의 헤더를 통해 이동하므로 직접 사용할 수 없습니다. HTTP 헤더에는 브라우저가 웹 페이지를 요청할 때 정보를 저장하는 여러 요소가 포함되어 있습니다. 이러한 요소는 accept, accept-charset, accept-encoding, accept-language, 연결, 권한 부여, 쿠키, 콘텐츠 길이, if-modified-since, 호스트, 리퍼러, if-unmodified-since 및 사용자 에이전트입니다.

HTTPServletRequest 객체

javax.servlet.http.HttpServletRequest 객체는 요청 객체라는 인스턴스를 생성합니다. 사용자가 특정 페이지를 요청할 때마다 JSP 엔진은 새 객체를 생성합니다. 요청 객체의 주요 목적은 데이터, HTTP 메서드, 쿠키 등과 같은 HTTP 정보를 검색하는 것입니다. 다음은 JSP 프로그램에서 HTTP 헤더 정보를 읽는 몇 가지 메서드입니다.

    열거형 getAttributeNames(): 이 메서드를 사용하면 이 요청에 사용할 수 있는 속성 이름이 포함된 열거형이 생성됩니다.쿠키[] getCookies(): 클라이언트가 요청을 보낼 때 쿠키 개체가 포함됩니다. 따라서 이 메서드는 이러한 모든 쿠키 개체를 포함하는 배열을 생성합니다.열거형 getParameterNames(): 이 메서드를 사용하면 String 개체가 열거됩니다. 이 열거는 요청에 있는 매개변수 이름을 보유합니다.열거형 getHeaderNames(): 이 요청에 있는 헤더 이름을 포함하는 열거형을 생성합니다.HttpSession getSession(부울 생성): HttpSession getSession(boolean create) 메서드는 이 요청과 관련된 현재 HttpSession을 생성합니다. 그 순간에 세션이 없고 create에 대한 부울이 true인 경우 이 메서드는 새 세션을 생성합니다.HttpSession getSession(): 이 메서드는 요청과 관련된 현재 세션을 반환합니다. 세션을 사용할 수 없는 경우 이 메서드는 새 세션을 만들고 반환합니다.객체 getAttribute(문자열 이름): 이름을 가진 속성의 값을 객체로 생성합니다. 속성의 이름이 없으면 NULL을 반환합니다.로컬 getLocale(): 클라이언트가 콘텐츠를 수락할 로케일을 반환합니다.문자열 getAuthType(): 이 방법은 서블릿을 보존하는 데 사용되는 인증 체계 이름을 지정합니다. JSP가 보존되지 않으면 NULL을 리턴합니다.ServletInputStream getInputStream(): ServletInputStream은 요청의 본문을 바이너리 형식으로 가져옵니다.문자열 getContent 유형(): 이 메소드는 요청 본문의 MIME 유형을 반환합니다. 유형을 알 수 없는 경우 NULL을 반환합니다.문자열 getCharacterEncoding(): 요청 본문에 존재하는 문자 인코딩 이름은 이 방법으로 생성됩니다.문자열 getHeader(문자열 이름): 요청 헤더의 값을 String 형식으로 반환합니다.문자열 getContextPath(): 요청의 URI 부분을 생성합니다.문자열 getParameter(문자열 이름): 이 메서드는 요청 매개변수의 값을 String 형식으로 만듭니다. 요청의 매개변수가 존재하지 않으면 NULL을 반환합니다.문자열 getMethod(): String getMethod() 메소드는 현재 요청에 사용된 HTTP 요청의 이름을 생성합니다.문자열 getProtocol(): JSP의 요청은 특정 프로토콜을 사용합니다. 이 메서드는 프로토콜의 이름과 버전을 반환합니다.문자열 getPathInfo(): 클라이언트가 요청하면 URL을 보냅니다. String getPathInfo() 메서드는 URL과 관련된 경로에 대한 추가 정보를 반환합니다.문자열 getRemoteAddr(): 이 방법을 사용하면 클라이언트 시스템의 인터넷 프로토콜(IP) 주소가 생성됩니다.문자열 getRemoteUser(): 요청을 하는 인증된 클라이언트의 로그인을 생성합니다. 사용자가 인증되지 않은 경우 NULL을 반환합니다.문자열 getRemoteHost(): 요청을 하는 클라이언트의 이름을 조회할 경우 String getRemoteHost() 메소드를 사용할 수 있습니다.문자열 getRequestedSessionId(): 이 메소드는 클라이언트가 정의한 세션 ID를 반환합니다.문자열 getRequestURI(): 프로토콜 이름에서 요청의 URL을 반환합니다.String[] getParameterValues(문자열 이름): 이 메서드는 String 객체를 포함하는 배열을 반환합니다. 이러한 객체는 요청에 있는 모든 매개변수의 값을 보유합니다.문자열 getServletPath(): 요청의 URL도 반환합니다.int getContentLength(): 요청 본문의 길이를 바이트 단위로 반환합니다.부울 isSecure(): 보안 채널을 통해 요청했는지 여부를 지정하는 부울 값을 반환합니다.int getServletPort(): 이 메소드는 요청의 포트 번호를 제공합니다.int getIntHeader(문자열 이름): 이 메서드는 정수 형식의 요청 헤더 값을 생성합니다.

HTTP 헤더 요청 예

여기에서 HTTP 헤더 요청의 간단한 예를 하나 볼 것입니다. HTTP 헤더 요청의 예에서는 다음을 적용합니다. getHeaderName() HTTP 헤더 정보를 읽는 방법. 요청의 HTTP 헤더 정보를 포함하는 열거를 생성합니다. hasmoreElements() 메서드는 nextElement() 메서드가 중지되어야 하는 시점을 결정합니다.

예시:

|_+_|

에 위의 코드를 작성한다. 메인.jsp HTTP 요청 헤더의 정보를 읽기 위해 파일에 액세스합니다. 호스트, 연결, 캐시 제어, 사용자 에이전트, 수락, 언어 수락 및 인코딩 수락과 같은 HTTP 요청 헤더에 대한 모든 정보를 제공합니다.

JSP 서버 응답

클라이언트나 브라우저가 웹 페이지를 요청하면 웹 서버는 응답이라는 HTTP 요청에 응답합니다. 이 응답에는 빈 줄, 문서, 상태 줄 및 일부 응답 헤더가 포함됩니다. HTTP 응답은 다음과 같습니다.

|_+_|

위 코드에서 HTTP 버전은 HTTP/1.1 , 200 는 상태 코드이고 확인 상태 코드에 대한 메시지입니다. 웹 서버에서 브라우저로 보낸 HTTP/1.1 버전이 있는 여러 응답 헤더가 있습니다. 이러한 응답 헤더는 캐시 제어, 허용, 콘텐츠 처리, 연결, 콘텐츠 길이, 콘텐츠 인코딩, 콘텐츠 언어, 만료, 콘텐츠 유형, 위치, 마지막 수정, 쿠키 설정, 새로 고침 및 재시도 후입니다. .

HttpServletResponse 객체

javax.servlet.http.HttpServletResponse는 응답 객체라는 인스턴스를 생성합니다. 이 객체는 웹 서버에 의해 생성되며 클라이언트에 전송된 응답을 나타냅니다. 응답 개체는 HTTP 헤더 생성에 필요한 인터페이스와도 연결됩니다. 프로그래머는 JSP 프로그램에 새 쿠키, HTTP 상태 코드 및 날짜 스탬프를 추가할 수 있습니다. 다음은 서블릿 프로그램에서 HTTP 응답 헤더를 추가하는 데 사용되는 몇 가지 메서드 또는 기능입니다.

    문자열 인코딩URL(문자열 URL): 이 메소드는 세션 ID를 포함하는 특정 URL을 인코딩하는 데 사용됩니다. 인코딩이 필요한 경우 이 메서드는 URL을 변경하지 않고 보냅니다.문자열 encodeRedirectURL(문자열 URL): sendRedirect 함수에 포함된 URL이 인코딩됩니다. 인코딩이 필요하지 않은 경우 URL은 변경되지 않은 상태로 유지됩니다.부울 isCommitted(): 이 함수는 응답이 커밋되었는지 여부를 지정하는 부울 값을 생성합니다.부울 containsHeader(문자열 이름): 또한 이름을 가진 응답 헤더가 설정되었는지 여부를 지정하는 부울 값이 생성됩니다.void addHeader(문자열 이름, 문자열 값): 이 함수는 이름과 값이 있는 응답 헤더를 포함합니다.void addDateHeader(문자열 이름, 긴 날짜): 또한 이름과 날짜가 포함된 새 응답 헤더가 포함됩니다.무효 플러시 버퍼(): 이 함수는 버퍼에 있는 내용을 클라이언트에 강제로 씁니다.void addIntHeader(문자열 이름, 정수 값): 이 함수에는 이름과 정수 값이 있는 새 응답 헤더가 포함됩니다.무효 resetBuffer(): 기본 버퍼에서 모든 내용을 제거하거나 지우지만 헤더와 상태 코드는 지우지 않습니다.무효 리셋(): 이 함수는 상태 코드 및 헤더와 함께 버퍼에 있는 모든 데이터를 제거하거나 삭제합니다.무효 sendError(int sc, 문자열 메시지): 특정 상태의 오류 메시지를 생성하고 클라이언트로 보냅니다.무효 sendError(int sc): 이 함수는 또한 버퍼에서 데이터를 삭제하여 특정 상태 코드와 함께 오류 메시지를 클라이언트에 전송합니다.무효 setBufferSize(int 크기): 이 함수는 응답 본문의 버퍼 크기를 고정합니다.void setIntHeader(문자열 이름, 정수 값): 이 함수는 이름과 특정 정수 값으로 응답 헤더를 설정합니다.

HTTP 헤더 응답 예

다음은 Refresh 헤더를 설정하기 위해 setIntHeader() 함수를 사용하는 HTTP 헤더 응답의 예입니다.

예시:

|_+_|

위의 코드를 파일 이름으로 저장하고, 메인.jsp . 4초마다 아래와 같이 시스템의 현재 시간이 표시됩니다.

산출:

|_+_|

JSP의 HTTP 상태 코드

HTTP 요청 및 HTTP 응답은 다음과 같은 구조를 갖습니다.

  • 첫째, 상태 표시줄, CRLF(Carriage Return) 및 줄 바꿈이 포함됩니다. 줄 바꿈은 새 줄을 의미합니다.
  • 다음은 0개 이상의 헤더 행과 캐리지 리턴(CRLF)입니다.
  • 그런 다음 빈 줄 CRLF가 옵니다.
  • 마지막으로 메시지 본문은 선택 사항입니다. 메시지 본문에는 쿼리 출력, 쿼리 데이터 또는 파일이 포함될 수 있습니다.

위 섹션에서 응답 헤더가 어떻게 생겼는지 보았습니다.

웹 서버는 일부 HTTP 코드와 해당 메시지를 클라이언트에 반환합니다. 이러한 HTTP 상태 코드와 해당 메시지는 다음 섹션에 설명되어 있습니다.

암호 메세지
100계속하다
101스위칭 프로토콜
200확인
201만들어진
202수락됨
203비공인 정보
204콘텐츠 없음
205콘텐츠 재설정
206일부 콘텐츠
300객관식
301영구적으로 이동
302설립하다
303기타 보기
304수정되지 않음
305프록시 사용
306미사용
307임시 리디렉션
400잘못된 요청
401무단
402지불 필요
403금지
404찾을 수 없음
405비 허가 된 방식
406허용하지 않는다
407프록시 인증 필요
408요청 시간 초과
409갈등
410다 쓴
411필요한 길이
412전제 조건 실패
413엔터티가 너무 큼 요청
414요청 URL이 너무 깁니다.
415지원되지 않는 미디어 유형
417예상 실패
500인터넷 서버 오류
501구현되지 않음
502잘못된 게이트웨이
503서비스 불가
504게이트웨이 시간 초과
505HTTP 버전이 지원되지 않음

세 가지 다른 방법을 사용하여 아래와 같이 HTTP 상태 코드를 설정합니다.

    공개 무효 setStatus(int statusCode): 상태 코드에 대한 정수 값을 인수로 사용하는 상태 코드를 설정합니다.공개 무효 sendRedirect(문자열 URL): 이 함수는 302 코드를 갖는 응답을 생성합니다. 또한 새 문서의 URL을 지정하는 Location 헤더를 생성합니다.공개 무효 sendError(int 코드, 문자열 메시지): 이 기능은 404 HTTP 상태 코드를 짧은 메시지와 함께 브라우저에 전송합니다.

클라이언트에 407 오류 상태 코드를 표시하는 간단한 예를 살펴보겠습니다.

예시:

|_+_|

위의 코드는 다음과 함께 407 HTTP 상태 코드를 표시합니다. 인증 필요 메세지.

JSP의 양식 처리

많은 경우 브라우저에서 웹 서버로, 그리고 마지막으로 프로그램으로 데이터를 전송해야 합니다. 이 데이터를 웹 서버에 전송하기 위해 브라우저에서 사용하는 GET 및 POST의 두 가지 방법이 있습니다. JSP를 사용하여 데이터를 읽는 네 가지 방법이 사용됩니다. getParameter() , getParameterValues() , getParameterNames() , 그리고 getInputStream() .

GET 메서드

GET 메서드는 인코딩된 사용자 정보를 전송하고 페이지 요청에 추가하는 데 사용됩니다. 인코딩된 사용자 정보와 페이지 요청은 '?' 기호로 구분됩니다. 이 방법은 브라우저에서 웹 서버로 사용자 정보를 전송하기 위한 기본값입니다. 에 존재할 문자열을 반환합니다. 위치: 상자 브라우저의. 암호와 같은 기밀 데이터가 있는 경우 GET 방법을 사용하지 마십시오.

URL을 사용한 GET 메소드의 예

GET 메서드를 사용하여 GetURLForm 프로그램에 두 개의 다른 값을 전달할 URL을 생성해 보겠습니다.

|_+_|

main.jsp 파일에 아래 코드를 작성합니다. JSP를 사용하여 데이터를 읽기 위해 getParameter() 메소드를 사용했습니다.

예시:

|_+_|

산출:

|_+_|

쿠키 취급

쿠키란 무엇입니까? 쿠키는 클라이언트의 데스크탑에 존재하는 텍스트 파일이며 추적 목적으로 사용됩니다. HTTP 쿠키는 JSP에서 지원합니다. 여기서는 HTTP 쿠키의 구조, 쿠키를 설정하거나 재설정하는 방법, 쿠키의 메서드를 살펴보겠습니다.

쿠키의 해부학

쿠키는 항상 HTTP 헤더에 있습니다. JSP가 HTTP 헤더에 쿠키를 설정하면 다음과 같은 구조를 갖는다.

|_+_|

에서 Set-Cookie 헤더 위에서 관찰할 수 있는 이름 값 쌍, 데이트 GMT에서는 , 그리고 도메인 . 이 이름-값 쌍은 URL 형식으로 존재합니다. 위 쿠키의 또 다른 요소는 만료 , 지정된 날짜와 시간이 지나면 이 쿠키를 잊어버리도록 브라우저에 알립니다.

쿠키 방법

다음은 설명과 함께 쿠키와 관련된 몇 가지 중요한 방법입니다.

    공개 문자열 getDomain(): 이 함수는 쿠키의 도메인을 검색합니다.public void setDomain(문자열 패턴): 이 기능을 사용하여 쿠키의 도메인을 설정할 수 있습니다.공개 정수 getMaxAge(): 쿠키의 최대 유효기간을 가져옵니다. 나이는 초 단위로 표시됩니다.공개 무효 setMaxAge(int 만료): 이 함수는 쿠키가 만료되기 전의 경과 시간을 설정합니다.공개 문자열 getValue(): 쿠키의 값을 가져옵니다.공개 문자열 getName(): 쿠키의 이름을 가져옵니다. 쿠키 생성 후에는 쿠키 이름을 변경할 수 없습니다.공개 무효 setValue(문자열 newValue): 이 함수는 쿠키 값을 수정합니다.공개 문자열 getPath(): 쿠키와 관련된 경로를 생성합니다.공개 무효 setPath(문자열 URI): 이 함수는 쿠키의 경로를 설정합니다.공개 문자열 getComment(): 쿠키의 목적이나 용도를 명시하는 주석이 생성됩니다. 쿠키에 주석이 없으면 NULL을 반환합니다.공개 무효 setSecure(부울 플래그): 암호화된 연결을 통해 쿠키를 보낼지 여부를 정의하는 부울 값을 지정합니다.공개 무효 setComment(문자열 목적): 이 함수는 목적을 지정하는 쿠키에 대한 주석을 설정합니다.

쿠키 설정은 어떻게 하나요?

쿠키를 설정하는 세 가지 간단한 방법이 있습니다. 이러한 방법은 아래에 설명되어 있습니다.

  1. 먼저 쿠키 객체를 생성합니다. 쿠키 이름과 해당 값으로 쿠키 생성자를 호출합니다. 이름과 값은 모두 문자열로 표시됩니다.
|_+_|

쿠키를 생성하는 동안 이름과 값에 공백이나 특수 기호가 없어야 함을 기억해야 합니다.

  1. 쿠키를 생성한 후에는 다음을 사용하여 쿠키의 최대 연령을 설정합니다. setMaxAge 기능.
|_+_|

위의 기능은 최대 쿠키 사용 기간을 24시간으로 설정합니다.

  1. 마지막으로 response.addCookie를 사용하여 쿠키를 HTTP 응답 헤더에 추가합니다.
|_+_|

결론

JavaServer Pages 또는 JSP(Jakarta Server Pages)는 개발자가 동적 콘텐츠 또는 웹 페이지를 만들 수 있도록 하는 기술입니다. JSP는 유지 관리가 쉽고 서블릿보다 적은 코드가 필요하며 빠른 개발을 제공하므로 여러 가지 고급 이점이 있습니다. 이 기사는 초보 사용자를 위한 JSP 학습을 위한 빠른 가이드입니다.

우리는 초보 개발자가 배우는 데 필요한 JSP의 모든 측면을 다루었습니다. JSP 프로그램을 시작하기 전에 먼저 Java 환경과 Tomcat 클래스 경로를 설정하십시오. 다음은 모든 필수 JSP 요소에 대한 완전한 자습서입니다.

우리는 가지고 있습니다 그래프 이론 퀵 가이드 그래프 이론과 관련된 모든 세부 사항에 대해 자세히 설명합니다.