첫 번째 기사는 객체 지향 프로그래밍 및 그 기능, Java 및 그 기능에 대한 일반적인 질문, Java 컬렉션 클래스, 쓰레기 수집기,이 장에서는 주로 예외 처리, Java 애플릿, 스윙, JDBC, 원격 메소드 호출 (RMI), 서블릿 및 JSP에 대해 설명합니다.
예외 처리
자바 애플릿 (애플릿)
그네
JDBC
원격 방법 호출 (RMI)
서틀
JSP
예외 처리
43. Java의 두 가지 예외 유형은 무엇입니까? 그들 사이의 차이점은 무엇입니까?
Java에는 두 가지 유형의 예외가 있습니다 : 확인 된 예외와 선택되지 않은 예외. 검사되지 않은 예외는 방법이나 생성자에 대해 선언 할 필요가 없습니다. 방법이나 생성자의 실행이 그러한 예외를 던질 수있는 경우에도 검사되지 않은 예외는 방법이나 생성자 외부에서 전파 될 수 있습니다. 반대로, 검사 된 예외는 Throws 문을 사용하여 메소드 또는 생성자에 대해 선언해야합니다. 다음은 Java 예외를 처리하기위한 몇 가지 팁입니다.
44. Java의 예외와 오류의 차이점은 무엇입니까?
예외와 오류는 모두 던질 수있는 서브 클래스입니다. 예외는 사용자 프로그램에 의해 잡힐 수있는 예외에 사용됩니다. 오류는 사용자 프로그램에 의해 잡히지 않을 예외를 정의합니다.
45. 던지기와 던지기의 차이점은 무엇입니까?
던지기 키워드는 프로그램에서 명시 적으로 예외를 제외하는 데 사용됩니다. 반대로, 던지기 진술은 메소드가 처리 할 수없는 예외를 나타내는 데 사용됩니다. 각 방법은 처리 할 수없는 예외를 지정해야하므로 방법의 발신자는 가능한 예외가 처리되고 여러 예외가 쉼표로 분리되도록 할 수 있습니다.
45. 예외를 처리 할 때 마침내 코드 블록의 중요성은 무엇입니까? (번역기 주 : 저자의 제목 번호가 잘못되었습니다)
예외가 발생하든 아니든, 마지막으로 코드 블록은 항상 실행됩니다. 캐치 명령문이없고 예외가 발생하더라도 최종 코드 블록이 여전히 실행됩니다. 마지막으로, 마지막으로 코드 블록은 주로 I/O 버퍼, 데이터베이스 연결과 같은 자유 리소스에 사용된다고 말하고 싶습니다.
46. 예외 처리가 완료된 후에 예외 객체는 어떤 변화가 발생합니까?
예외 객체는 다음 쓰레기 수집 과정에서 재활용됩니다.
47. 마지막으로 코드 블록과 마무리 () 메소드의 차이점은 무엇입니까?
예외가 발생하든 아니든 마지막 코드 블록이 실행되며, 이는 주로 응용 프로그램이 차지하는 리소스를 확보하는 데 사용됩니다. Finalize () 메소드는 객체 클래스의 보호 된 메소드입니다. 객체가 수집되기 전에 Java 가상 머신에서 호출됩니다.
자바 애플릿 (애플릿)
48. 애플릿은 무엇입니까?
Java Applet은 HTML 페이지에 포함될 수 있으며 Java 활성화 된 클라이언트 브라우저에서 실행할 수있는 프로그램입니다. 애플릿은 주로 동적 대화 형 웹 응용 프로그램을 만드는 데 사용됩니다.
49. 애플릿의 수명주기를 설명하십시오
애플릿은 다음 상태를 경험할 수 있습니다.
50. 애플릿을로드하면 어떻게됩니까?
먼저 애플릿 제어 클래스의 인스턴스를 작성한 다음 애플릿을 초기화 한 다음 마침내 실행을 시작하십시오.
51. 애플릿과 일반 Java 응용 프로그램의 차이점은 무엇입니까?
Applet은 Java 지원 브라우저이며 Java 응용 프로그램은 브라우저 밖에서 실행할 수있는 독립적 인 Java 프로그램입니다. 그러나 모두 Java 가상 머신을 가져야합니다.
또한 Java 응용 프로그램에는 특정 메소드 서명이있는 주요 기능이 필요합니다. Java 애플릿은 실행을 시작하기 위해 그러한 기능이 필요하지 않습니다.
마지막으로, Java 애플릿은 일반적으로 매우 엄격한 보안 정책을 사용하는 반면 Java 응용 프로그램은 일반적으로 비교적 느슨한 보안 정책을 사용합니다.
52. 자바 애플릿의 제한은 무엇입니까?
주로 보안상의 이유로, 애플릿에 다음과 같은 제한이 부과됩니다.
53. 신뢰할 수없는 애플릿은 무엇입니까?
신뢰할 수없는 애플릿은 로컬 시스템 파일에 액세스하거나 실행할 수없는 자바 애플릿입니다. 기본적으로 다운로드 된 모든 애플릿은 신뢰할 수 없습니다.
54. 네트워크에로드 된 애플릿과 로컬 파일 시스템에서로드 된 애플릿의 차이점은 무엇입니까?
애플릿이 네트워크에서로드되면 애플릿 클래스 로더에 의해 애플릿이로드되며, 이는 애플릿 보안 관리자에 의해 제한됩니다.
애플릿이 클라이언트의 로컬 디스크에서로드되면 애플릿은 파일 시스템 로더에 의해로드됩니다.
파일 시스템에서로드 된 애플릿은 클라이언트 측에서 읽기, 쓰기, 클래스 라이브러리를로드 할 수 있으며 다른 프로그램을 실행할 수 있지만 바이트 코드 확인을 통과 할 수는 없습니다.
55. 애플릿 클래스 로더는 무엇입니까? 어떤 일을합니까?
애플릿이 네트워크에서로드되면 애플릿 클래스 로더에 의해로드됩니다. 클래스 로더에는 자체 자바 네임 스페이스 계층이 있습니다. 클래스 로더는 파일 시스템의 클래스에 고유 한 네임 스페이스가 있으며 네트워크 리소스의 클래스에 고유 한 네임 스페이스가 있습니다.
브라우저가 네트워크를 통해 애플릿을로드하면 애플릿 클래스는 애플릿 소스와 관련된 개인 네임 스페이스에 배치됩니다. 그런 다음 클래스 로더가로드 한 클래스는 모두 유효성 검사기에 의해 확인됩니다. 유효성 검사기는 클래스 파일 형식이 스택 오버플로 또는 언더 플로우가 없는지 확인하기 위해 Java 언어 사양을 준수하는지 확인합니다. 바이트 코드 명령으로 전달 된 매개 변수가 정확합니다.
56. 애플릿 보안 관리자는 무엇입니까? 어떤 일을합니까?
애플릿 보안 관리자는 애플릿에 제한을 부과하는 메커니즘입니다. 브라우저에는 하나의 보안 관리자 만 가질 수 있습니다. 보안 관리자는 스타트 업에서 생성되며 나중에 교체하거나 확장 할 수 없습니다.
그네
57. 팝업 선택 메뉴 (선택)와 목록 (목록)의 차이점은 무엇입니까?
선택은 컴팩트 한 형태로 제공되며 모든 옵션을보기 위해 풀다운이 필요합니다. 선택한 한 번에 하나의 옵션 만 선택할 수 있습니다. 목록에는 여러 요소가 동시에 표시 될 수 있으며 하나 이상의 요소를 선택하는 것이 지원됩니다.
58. 레이아웃 관리자는 무엇입니까?
레이아웃 관리자는 컨테이너의 구성 요소를 구성하는 데 사용됩니다.
59. 스크롤 바와 스크롤 패널 (jscrollpane)의 차이점은 무엇입니까?
스크롤 바는 컨테이너가 아닌 구성 요소입니다. 스크롤 페인은 컨테이너입니다. 스크롤 페인은 스크롤 이벤트 자체를 처리합니다.
60. 스레드 안전은 어떤 스윙 방법입니까?
REPAINT (), Revalidate () 및 Invalidate ()의 3 가지 스레드 안전 방법 만 있습니다.
61. 다시 그리기를 지원하는 세 가지 구성 요소의 이름을 지정하십시오.
캔버스, 프레임, 패널 및 애플릿 지원 리 그리기.
62. 클리핑이란 무엇입니까?
주어진 영역 또는 모양으로 제한되는 드로잉 작동을 자르십시오.
63. Menuitem과 CheckboxMenuitem의 차이점은 무엇입니까?
CheckboxMenuitem 클래스는 Menuitem 클래스에서 상속되고 선택하거나 선택할 수없는 메뉴 옵션을 지원합니다.
64. 가장자리 레이아웃 (Borderlayout)의 요소는 어떻게 배치됩니까?
Borderlayout의 요소는 컨테이너의 동쪽, 서쪽, 남쪽, 북쪽 및 중간에 따라 배열됩니다.
65. 그리드 패키지 레이아웃 (Gridbaglayout)의 요소는 어떻게 배치됩니까?
Gridbaglayout의 요소는 그리드에 따라 배치됩니다. 크기가 다른 요소는 그리드의 1 행 이상 또는 열을 차지할 수 있습니다. 따라서 행과 열의 수는 크기가 다를 수 있습니다.
66. 창과 프레임의 차이점은 무엇입니까?
프레임 클래스는 메뉴 표시 줄을 가질 수있는 기본 응용 프로그램 창을 정의하는 창 클래스를 상속합니다.
67. 클리핑과 페인팅의 관계는 무엇입니까?
AWT Redraw 스레드에 의해 창이 다시 그리기되면 농작물 영역을 다시 그려야하는 창의 영역으로 설정합니다.
68. 이벤트 리스너 인터페이스와 이벤트 어댑터의 관계는 무엇입니까?
이벤트 리스너 인터페이스는 이벤트 프로세서가 특정 이벤트에 대해 구현 해야하는 메소드를 정의합니다. 이벤트 어댑터는 이벤트 리스너 인터페이스에 대한 기본 구현을 제공합니다.
69. GUI 구성 요소는 어떻게 자체 이벤트를 처리합니까?
GUI 구성 요소는 해당 이벤트 리스너 인터페이스를 구현하고 이벤트 리스너로 간주하는 한 자체 이벤트를 처리 할 수 있습니다.
70. 전통적인 창 시스템에 대한 Java 레이아웃 관리자의 장점은 무엇입니까?
Java는 레이아웃 관리자를 사용하여 모든 창 플랫폼에 구성 요소를 일관된 방식으로 배치합니다. 레이아웃 관리자는 구성 요소의 절대 크기와 위치에 구속되지 않기 때문에 창 시스템의 특정 플랫폼 간의 차이점에 적응할 수 있습니다.
71. Java의 스윙 구성 요소는 어떤 디자인 패턴을 사용합니까?
Java의 스윙 구성 요소는 MVC (View-Model-Controller) 설계 패턴을 사용합니다.
JDBC
72. JDBC는 무엇입니까?
JDBC는 사용자가 다른 데이터베이스 중에서 선택할 수있는 추상화 계층입니다. JDBC를 통해 개발자는 기본 데이터베이스의 세부 사항에 관심을 갖지 않고 Java로 데이터베이스 응용 프로그램을 작성할 수 있습니다.
73. JDBC에서 드라이버 (드라이버)의 역할을 설명하십시오.
JDBC 드라이버는 특정 제조업체가 JDBC API 인터페이스 클래스의 구현을 제공합니다. 드라이버는 다음 클래스의 Java.SQL 패키지를 제공해야합니다. 연결, 명세서, 준비된 상태, CallableStatement, Resultset 및 드라이버.
74. 클래스의 기능은 무엇입니까 .forname () 메소드는 무엇입니까?
이 방법은 데이터베이스에 연결을 설정하는 드라이버를로드하는 데 사용됩니다.
75. 진술에 대한 준비된 상태의 장점은 무엇입니까?
준비된 상태는 사전 컴파일되므로 성능이 향상됩니다. 동시에, 다른 쿼리 매개 변수 값에 대해 준비된 상태를 재사용 할 수 있습니다.
76. CallableStatement를 언제 사용해야합니까? CallableStatement를 준비하는 데 사용되는 방법은 무엇입니까?
CallAbleStatement는 저장된 절차를 실행하는 데 사용됩니다. 저장된 절차는 데이터베이스에서 저장 및 제공됩니다. 저장된 절차는 입력 매개 변수 또는 반환 결과를 수락 할 수 있습니다. 저장된 절차의 사용은 보안 및 모듈성을 제공하기 때문에 적극 권장됩니다. CallableStatement를 준비하는 방법은 다음과 같습니다.
CallableStament.preparecall ();
77. 데이터베이스 연결 풀은 무엇을 의미합니까?
데이터베이스 연결을 열고 닫는 것과 같은 데이터베이스와의 상호 작용은 시간이 소요될 수 있습니다. 특히 클라이언트 수가 증가 할 때 많은 리소스를 소비하고 비용이 많이 듭니다. 애플리케이션 서버가 시작될 때 많은 데이터베이스 연결을 풀에서 설정하고 유지 관리 할 수 있습니다. 연결 요청은 풀의 연결에 의해 제공됩니다. 연결을 사용한 후에는 더 많은 향후 요청을 충족시키기 위해 풀에 연결을 반환하십시오.
원격 방법 호출 (RMI)
78. RMI는 무엇입니까?
Java Remote Method Call (Java RMI)은 Java API가 원격 프로 시저 호출 (RPC)을 위해 제공하는 객체 지향적 등가 양식입니다. 직렬화 된 Java 물체 및 분산 가비지 컬렉션의 직접 전송을 지원합니다. 원격 메소드 호출은 원격 실행중인 객체에서 메소드를 활성화하는 단계로 간주 될 수 있습니다. 발신자는 메소드가 로컬로 실행되는 객체에서 메소드가 실행된다고 생각하기 때문에 RMI는 위치 적으로 발신자에게 투명합니다. RMI에 대한 몇 가지 예방 조치를 살펴보십시오.
79. RMI 아키텍처의 기본 원칙은 무엇입니까?
RMI 아키텍처는 행동 정의의 분리 및 행동 실현의 매우 중요한 원리를 기반으로합니다. RMI를 사용하면 동작을 정의하는 코드가 동작을 구현하고 다른 JVM에서 실행되는 코드와 분리 될 수 있습니다.
80. RMI 아키텍처의 레이어는 무엇입니까?
RMI 아키텍처는 다음 레이어로 나뉩니다.
스터브 및 골격 층 :이 층은 프로그래머에게 투명합니다. 주로 클라이언트가 발행 한 메소드 통화 요청을 가로 채고 원격 RMI 서비스로 요청을 리디렉션하는 일이 있습니다.
원격 기준 계층 : RMI 아키텍처의 두 번째 레이어는 서버 측 원격 개체에 대한 클라이언트 참조를 해결하는 데 사용됩니다. 이 레이어는 서버 측 원격 개체에 대한 클라이언트 참조를 구문 분석하고 관리합니다. 연결은 지점 간입니다.
전송 계층 :이 레이어는 서비스에 참여하는 두 개의 JVM을 연결하는 데 도움이됩니다. 이 레이어는 네트워크의 기계 간의 TCP/IP 연결을 기반으로합니다. 기본 연결 서비스와 일부 방화벽 침투 정책을 제공합니다.
81. 원격 인터페이스 (원격 인터페이스)는 RMI에서 어떤 역할을합니까?
원격 인터페이스는 비 국소 가상 머신에서 호출 할 수있는 인터페이스인지 식별하는 데 사용됩니다. 원격 객체는 원격 인터페이스를 직접 또는 간접적으로 구현해야합니다. 원격 인터페이스를 구현하는 클래스는 구현 된 원격 인터페이스를 선언하고 각 원격 개체의 생성자를 정의하며 모든 원격 인터페이스 메소드에 구현을 제공해야합니다.
82. java.rmi.naming 클래스는 어떤 역할을합니까?
java.rmi.naming 클래스는 원격 객체 레지스트리의 원격 객체에 대한 참조를 저장하고 얻는 데 사용됩니다. 이름 지정 클래스의 각 메소드는 URL 형식의 문자열 객체를 매개 변수로 수신합니다.
83. RMI 결합은 무엇을 의미합니까?
바인딩은 원격 객체를 쿼리하고 찾기 위해 등록 후 원격 객체를 연결하거나 이름을 등록하는 프로세스입니다. 원격 개체는 이름 지정 클래스의 bind () 또는 rebind () 메소드를 사용하여 이름과 연관 될 수 있습니다.
84. 이름 지정 클래스의 bind ()와 Rebind () 방법의 차이점은 무엇입니까?
bind () 메소드는 지정된 이름을 원격 객체에 바인딩하는 역할을하며 Rebind () 메소드는 지정된 이름을 새 원격 객체로 다시 반짝이게합니다. 해당 이름이 바인딩되면 이전 바인딩이 대체됩니다.
85. RMI 프로그램이 올바르게 실행될 수있는 단계는 무엇입니까?
RMI 프로그램이 올바르게 실행 되려면 다음 단계가 포함되어야합니다.
86. RMI의 스터브는 어떤 역할을합니까?
원격 물체의 스텁은 원격 객체의 대표 또는 프록시의 역할을 수행합니다. 발신자는 로컬 스터브에서 메소드를 호출하여 원격 객체에서 메소드를 실행하는 데 도움이됩니다. 스텁 방법이 호출되면 다음 단계가 진행됩니다.
87. 분산 가비지 컬렉션 (DGC)이란 무엇입니까? 어떻게 작동합니까?
DGC를 분산 쓰레기 수집이라고합니다. RMI는 자동 쓰레기 수집에 DGC를 사용합니다. RMI에는 가상 머신의 원격 객체에 대한 참조가 포함되어 있기 때문에 쓰레기 수집이 어렵습니다. DGC는 참조 계산 알고리즘을 사용하여 원격 객체에 자동 메모리 관리를 제공합니다.
88. RMI에서 RMI 보안 관리자 (RMISCURITYMANAGER)를 사용하는 목적은 무엇입니까?
RMisecurityManager는 다운로드 된 코드를 사용하여 RMI 응용 프로그램에서 사용할 수있는 보안 관리자를 제공합니다. 보안 관리자가 없으면 RMI의 클래스 로더는 원격으로 클래스를 다운로드하지 않습니다.
89. 마샬링과 경계를 설명하십시오.
응용 프로그램이 네트워크를 가로 질러 메모리 객체를 다른 호스트로 전달하거나 스토리지로 지속하려면 메모리의 객체 표현을 적절한 형식으로 변환해야합니다. 이 과정을 마샬링이라고합니다. 그렇지 않으면 무시할 수 있습니다.
90. 직렬화 및 사제화를 설명하십시오.
Java는 Object Serialization이라는 메커니즘을 제공합니다. 객체를 객체의 데이터, 객체 유형 정보, 객체 내부의 데이터 등을 포함하여 일련의 바이트로 나타납니다. 따라서 직렬화는 디스크에서 저장하거나 읽고 재건하기 위해 물체를 평평하게하는 방법으로 볼 수 있습니다. 사제화는 객체를 평평한 상태에서 살아있는 물체로 변환하는 반대 단계입니다.
서틀
91. 서블릿은 무엇입니까?
Servlet은 클라이언트 요청을 처리하고 동적 웹 컨텐츠를 생성하는 데 사용되는 Java 클래스입니다. 서블릿은 주로 HTML 양식에 의해 제출 된 데이터를 처리하거나 저장하는 데 사용됩니다. 동적 컨텐츠를 생성하며 Stationeles HTTP 프로토콜에 따라 상태 정보를 관리합니다.
92. 서블릿의 아키텍처에 대해 이야기합시다.
모든 서블릿이 구현 해야하는 핵심 인터페이스는 javax.servlet.servlet입니다. 각 서블릿은이 인터페이스를 직접 또는 간접적으로 구현하거나 javax.servlet.genericservlet 또는 javax.servlet.http.httpservlet를 상속해야합니다. 마지막으로 서블릿은 여러 스레드를 사용하여 여러 요청을 병렬로 제공 할 수 있습니다.
93. 애플릿과 서블릿의 차이점은 무엇입니까?
애플릿은 클라이언트 호스트 브라우저에서 실행되는 클라이언트 Java 프로그램입니다. Servlet은 웹 서버에서 실행되는 서버의 구성 요소입니다. 애플릿은 사용자 인터페이스 클래스를 사용할 수 있지만 서블릿에는 사용자 인터페이스가 없습니다. 대신 서블릿은 클라이언트의 HTTP 요청을 기다린 다음 요청에 대한 응답을 생성합니다.
94. 제네릭 서비스와 httpservlet의 차이점은 무엇입니까?
GenericServlet은 서블릿 및 서블릿 콘피드 인터페이스를 구현하는 일반적인 프로토콜 독립적 인 서블릿입니다. GenericServlet에서 상속 된 서블릿은 Service () 메소드를 무시해야합니다. 마지막으로, HTTP 요청을 제공하기 위해 웹 페이지에서 사용될 수있는 서블릿을 개발하려면 서블릿을 httpservlet에서 상속해야합니다. 다음은 서블릿의 예입니다.
95. 서블릿의 수명주기를 설명하십시오.
각 클라이언트 요청에 대해 서블릿 엔진은 서블릿을로드하고 init () 메소드를 호출하고 서블릿의 초기화를 완료합니다. 그런 다음 Servlet 객체는 각 요청에 대해 Service () 메소드를 개별적으로 호출하여 클라이언트의 모든 후속 요청을 처리합니다. 마지막으로, 서블릿의 Destrove () 메소드는 서블릿을 삭제하기위한 (번역기 주 : 서버 대신 서블릿이어야 함)라고합니다.
96. doget () 메소드와 dopost () 메소드의 차이점은 무엇입니까?
doget : get 메소드는 요청 된 URL 이후 이름 값 쌍에 추가됩니다. URL은 문자 수를 제한하기 때문에 클라이언트 요청에 사용되는 매개 변수 값 수는 제한됩니다. 요청의 매개 변수 값이 표시되므로 민감한 정보는 이러한 방식으로 전달할 수 없습니다.
DOPOST : POST 메소드는 요청 본문에 요청 매개 변수 값을 배치하여 GET 메소드의 제한을 극복하므로 전송할 수있는 매개 변수 수에는 제한이 없습니다. 마지막으로, 사후 요청을 통해 전달되는 민감한 정보는 외부 고객에게는 보이지 않습니다.
97. 웹 응용 프로그램이란 무엇입니까?
웹 응용 프로그램은 웹 또는 응용 프로그램 서버의 동적 확장입니다. 웹 애플리케이션에는 두 가지 유형의 웹 응용 프로그램이 있습니다 : 프레젠테이션 지향 및 서비스 지향. Performance-Oriented Web Applications는 요청에 대한 응답으로 많은 마크 업 언어와 동적 컨텐츠의 대화식 상호 작용을 포함하는 웹 페이지를 생성합니다. 서비스 지향 웹 응용 프로그램은 웹 서비스의 엔드 포인트를 구현합니다. 일반적으로 웹 응용 프로그램은 서버 URL 네임 스페이스의 특정 하위 집합에 설치된 서블릿 모음으로 간주 될 수 있습니다.
98. 서버 측은 무엇을 포함합니까?
SSI (Server-Side Inclusion)는 간단한 해석 된 서버 측 스크립팅 언어로, 주로 웹에서만 사용되며 서블릿 태그와 함께 포함됩니다. SSI에서 가장 일반적으로 사용되는 시나리오에는 웹 서버의 웹 페이지에 하나 이상의 파일이 포함됩니다. 브라우저가 웹 페이지에 액세스하면 웹 서버가 웹 페이지의 서블릿 태그를 해당 서블릿에서 생성 한 텍스트로 바꿉니다.
99. 서블릿 체인은 무엇입니까?
서블릿 체인은 하나의 서블릿의 출력을 다른 서블릿으로 보내는 방법입니다. 두 번째 서블릿의 출력은 세 번째 서블릿 등으로 보낼 수 있습니다. 체인의 마지막 서블릿은 클라이언트에게 응답을 보내는 일을 담당합니다.
100. 서비스를 요청하는 클라이언트 머신을 아는 방법은 무엇입니까?
ServletRequest 클래스는 클라이언트 시스템의 IP 주소 또는 호스트 이름을 찾을 수 있습니다. getRemoteaddr () 메소드 클라이언트 호스트의 IP 주소를 가져옵니다. getRemoteHost ()는 호스트 이름을 얻을 수 있습니다. 여기 예를 살펴보십시오.
101. HTTP 응답의 구조는 무엇입니까?
HTTP 응답은 세 부분으로 구성됩니다.
상태 코드 : 응답 상태를 설명합니다. 요청이 성공적으로 완료되었는지 확인하는 데 사용할 수 있습니다. 요청 실패의 경우 상태 코드를 사용하여 실패의 원인을 찾을 수 있습니다. 서블릿이 상태 코드를 반환하지 않으면 성공적인 상태 코드 httpservletresponse.sc_ok가 기본적으로 반환됩니다.
HTTP 헤더 : 응답에 대한 자세한 정보가 포함되어 있습니다. 예를 들어, 헤더는 응답이 만료 된 것으로 간주되는 만료 날짜를 지정하거나 엔티티 컨텐츠를 사용자에게 단단히 전송하는 데 사용되는 인코딩 형식을 지정할 수 있습니다. Serlet에서 HTTP 헤더를 검색하는 방법은 여기를 참조하십시오.
본문 : 응답의 내용이 포함되어 있습니다. HTML 코드, 사진 등을 포함 할 수 있습니다. 본문은 HTTP 메시지에서 헤더 직후에 전송되는 데이터 바이트로 구성됩니다.
102. 쿠키는 무엇입니까? 세션과 쿠키의 차이점은 무엇입니까?
쿠키는 웹 서버가 브라우저로 전송 된 정보입니다. 브라우저는 각 웹 서버의 쿠키를 로컬 파일에 저장합니다. 앞으로 브라우저가 특정 웹 서버에 요청을 보내면 서버에 저장된 모든 쿠키도 보냅니다. 다음은 세션과 쿠키의 차이점을 나열합니다.
클라이언트 브라우저가 어떤 설정을하든 세션은 정상적으로 작동해야합니다. 클라이언트는 쿠키를 비활성화하도록 선택할 수 있지만 클라이언트가 서버 세션을 비활성화 할 수 없기 때문에 세션은 여전히 작동합니다.
세션과 쿠키는 저장된 데이터의 양과 다릅니다. 세션은 Java 객체를 저장할 수 있으며 쿠키는 문자열 유형의 객체 만 저장할 수 있습니다.
103. 브라우저와 서블릿은 어떤 프로토콜을 사용합니까?
브라우저 및 서블릿 통신은 HTTP 프로토콜을 사용합니다.
104. HTTP 터널이란 무엇입니까?
HTTP 터널링은 HTTP 또는 HTTPS를 사용하여 통신을 위해 여러 네트워크 프로토콜을 캡슐화하는 기술입니다. 따라서 HTTP 프로토콜은 통신을위한 네트워크 프로토콜을위한 파이프 라인을 열어주는 래퍼의 역할을 수행합니다. 다른 프로토콜의 HTTP에 대한 요청을 포함하는 요청은 HTTP 터널입니다.
105. SendRedirect () 방법의 차이점은 무엇입니까?
sendReDirect () 메소드는 새 요청을 생성하고 Forward () 메소드는 요청을 새 대상으로 전달합니다. 리디렉션 후 새 요청이 생성되므로 이전 요청 범위 내의 객체가 유효하지 않습니다. 전달 후 이전 요청 범위 내의 객체는 여전히 액세스 할 수 있습니다. 일반적으로 sendRedirect ()가 Forward ()보다 느리다고 생각됩니다.
106. URL 인코딩 및 URL 디코딩이란 무엇입니까?
URL 인코딩은 URL의 공백 및 기타 특수 문자를 해당 16 진수 표현으로 대체하는 데 도움이됩니다. 그렇지 않으면 디코딩됩니다.
JSP
107. JSP 페이지는 무엇입니까?
JSP 페이지는 정적 데이터와 JSP 요소의 두 가지 유형의 텍스트를 포함하는 텍스트 문서입니다. 정적 데이터는 HTML 또는 XML과 같은 모든 텍스트 기반 형식으로 표시 될 수 있습니다. JSP는 정적 및 동적으로 생성 된 컨텐츠를 혼합하는 기술입니다. 다음은 JSP 예입니다.
108. JSP 요청은 어떻게 처리됩니까?
브라우저는 먼저 .jsp Extension으로 끝나는 페이지를 요청하고 JSP 요청을 시작한 다음 웹 서버는 요청을 읽고 JSP 컴파일러를 사용하여 JSP 페이지를 서블릿 클래스로 변환합니다. JSP 파일은 첫 번째 요청 페이지 또는 JSP 파일이 변경 될 때만 컴파일되며 서버는 Servlet 클래스를 호출하여 브라우저의 요청을 처리합니다. 요청 실행이 완료되면 서블릿은 클라이언트에게 응답을 보냅니다. 여기서 우리는 JSP에서 요청 매개 변수를 얻는 방법을 봅니다.
109. JSP의 장점은 무엇입니까?
JSP 사용의 장점은 다음과 같습니다.
110. JSP 지침은 무엇입니까? JSP의 다른 유형의 지침은 무엇입니까?
Directive는 JSP 페이지가 서블릿으로 컴파일 될 때 JSP 엔진이 처리해야한다는 명령입니다. 지시문은 페이지 수준 지침을 설정하고 외부 파일에서 데이터를 삽입하고 사용자 정의 태그 라이브러리를 지정하는 데 사용됩니다. 지침은 < %@와 %> 사이에 정의됩니다. 다음은 다양한 유형의 지침입니다.
지침 포함 : 파일을 포함하고 파일 내용을 현재 페이지에 병합하는 데 사용됩니다.
Page Directive : 오류 페이지 및 버퍼와 같은 JSP 페이지의 특정 속성을 정의하는 데 사용됩니다.
Taglib Directive : 페이지에 사용 된 사용자 정의 태그 라이브러리를 선언하는 데 사용됩니다.
111. JSP 조치는 무엇입니까?
JSP 동작은 XML 구문 구조로 서블릿 엔진의 동작을 제어합니다. JSP 페이지가 요청되면 JSP 작업이 실행됩니다. 파일에 동적으로 삽입, Javabean 구성 요소 재사용, 다른 페이지로 사용자를 전달하거나 Java 플러그인 용 HTML 코드를 생성 할 수 있습니다. 사용 가능한 조치는 다음과 같습니다.
112. 스크립트 렛은 무엇입니까?
JSP 기술에서 Scriptlets는 JSP 페이지에 포함 된 Java 코드입니다. 스크립트는 태그 내부에있는 모든 것입니다. 태그 사이에 사용자는 유효한 스크립트를 추가 할 수 있습니다.
113. 선언은 어디에 있습니까?
선언은 Java의 변수 선언과 매우 유사하며 표현식이나 스크립트가 사용하도록 변수를 선언하는 데 사용됩니다. 추가 된 명령문은 시작 및 엔드 태그로 포장되어야합니다.
114. 표현이란 무엇입니까?
[목록은 매우 길며 상단, 중간 및 하위 레벨에서 게시 할 수 있습니다]
JSP 표현식은 스크립트 언어 표현식의 값을 문자열 객체로 변환하여 클라이언트에 반환 된 데이터 스트림에 삽입하는 웹 서버입니다. 표현식은 두 태그 < %= 및 %> 사이에 정의됩니다.
115. 암시 적 객체는 무엇을 의미합니까? 숨겨진 물체는 무엇입니까?
JSP 함정 객체는 페이지의 일부 Java 객체이며 JSP 컨테이너를 사용하면 이러한 Java 객체를 개발자가 사용할 수 있습니다. 개발자는 명시적인 선언없이 직접 사용할 수 있습니다. JSP 함정 객체를 사전 정의 된 변수라고도합니다. 다음은 JSP 페이지에 암시 적 개체를 나열합니다.
위는 Java 인터뷰 질문에 대한 정보를 편집 한 것입니다. 이 사이트를 지원 해주셔서 감사합니다!