私たちのほとんどは、通常のアプリケーションは、コアJavaの概念を使用して簡単に構築できることを しかし、WEBアプリケーションの開発に関しては、JSP、サーブレット、JDBCなどの高度なJavaの基礎があります。、アプリケーションの機能や機能に追加することができ、したがって、開発者のために不可欠です。 高度なJavaチュートリアルに関するこのブログの媒体を通じて、私はあなたに高度なJavaの基本的な概念への完全な洞察を与えることになります。
-
- 高度なJava入門
- JDBC
- JDBCとは何ですか?
- JDBCアーキテクチャ
- JDBCアプリケーションを作成する手順
- JDBCドライバタイプ&接続
- Javaサーブレット
- Javaサーブレットの概要
- サーブレットのライフサイクル
- サーブレットを作成する手順
- サーブレットでのセッション追跡
- JSP
- JSPの概要
- Jspのライフサイクル
- JSPスクリプト要素
また、あなたがでトピックを理解することができ、高度なJavaチュートリアルのこの記録を通過することができます 例を用いた詳細な方法。
アドバンスJavaチュートリアル|J2EE、Javaサーブレット、JSP、JDBC|Java認定トレーニング|Edureka
高度なJavaチュートリアル: 高度なJavaの紹介
高度なJavaは、コアJavaを超えて行くすべてです–最も重要なのは、Java Enterprise Editionで定義されたApiは、サーブレットプログラミング、Webサービス、永続化API これは、基本的にクライアント&サーバーアーキテクチャに従うWeb&エンタープライズアプリケーション開発プラッ
高度なJavaチュートリアル:事前のJavaの必要性
以下、私は事前のJavaのいくつかの主要な利点を下にリストされています:
- アドバンスト-ジャワ-イ… JEE(Java Enterprise Edition)は、コアJavaがサポートしていないWebアプリケーション開発のためのクライアントサーバーアーキテクチャを理解するためのライブラリを提供します。
- J2EEは、プラットフォームに依存せず、Webベースのアプリケーションをオンラインで展開する&を開発、構築するためのJava中心の環境です。 また、サービス、Api、およびプロトコルのセットで構成され、多層のwebベースのアプリケーションを開発するために必要な機能を提供します。
- Apache Tomcat、GlassfishなどのWebサーバーやアプリケーションサーバーで作業し、HTTPプロトコルを介した通信を理解することができます。 しかし、コアJavaでは不可能です。
- Spring、JSF、Strutsなどの先進的なJavaフレームワークがたくさんあります。 これは、電子商取引、銀行、法律、金融、医療、在庫などのようなドメインのための安全なトランザクションベースのwebアプリを開発することができます。
- Hadoopやクラウド-サービスのようなホット-テクノロジーを動作させ、理解するには、コアと高度なJavaの概念を備えている必要があります。
なぜ高度なJavaが不可欠なのか理解していただければ幸いです。 あなたのよりよい理解のために、私は3つのセクションにこの記事を分けた。 これらの各セクションでは、高度なJavaの最も重要な概念の1つを扱います:
- JDBC(Javaデータベース接続)
- Javaサーブレット
- JSP(Javaサーブレットページ)
それでは、ここから議論を始めて、データベースと対話するのに役立つツールであるJava Database Connectivityの概念を理解しましょう。
高度なJavaチュートリアル: JDBC入門
JDBCは、Javaプログラミング言語と広範囲のデータベースとの間のデータベースに依存しない接続のための標準Java APIです。 このアプリケーション-プログラム-インターフェースを使用すると、構造化照会言語(SQL)でアクセス要求文をエンコードできます。 その後、データベースを管理するプログラムに渡されます。 これは主に、接続を開き、SQLデータベースを作成し、SQLクエリを実行してから出力に到達することを含みます。
JDBC APIを使用して、任意のリレーショナルデータベースに格納されている表形式のデータにアクセスできます。 JDBC APIの助けを借りて、データベースからデータを保存、更新、削除、フェッチすることができます。 これは、Microsoftが提供するOpen Database Connectivity(ODBC)に似ています。
JDBCの動作をよりよく理解するために、トピックをより深く掘り下げ、Javaデータベース接続の背後にあるアーキテクチャを理解しましょう。
Advanced Java Tutorial:JDBC Architecture
JDBC APIは、データベース-アクセスのための二層処理モデルと三層処理モデルの両方をサポートしていますが、一般に、JDBC Architectureは二つの層で構成されています−
- JDBC API: これにより、アプリケーションとJDBCマネージャ間の接続が提供されます。
- JDBC Driver API:JDBC Manager-To-Driver接続をサポートします。
JDBC APIは、ドライバー-マネージャーとデータベース固有のドライバーを使用して、異種データベースへの透過的な接続を提供します。 JDBCドライバ・マネージャは、各データ・ソースへのアクセスに正しいドライバが使用されることを保証します。 ドライバマネージャは、複数の異種データベースに接続された複数の同時ドライバをサポートすることができます。
Advanced Java Tutorial:Common JDBC Components
JDBC APIには、次のインターフェイスとクラスが用意されています−
- DriverManagerは、データベースドライバのリストを管理するために使用されます。 JDBCの下で特定のサブプロトコルを認識する最初のドライバは、データベース接続を確立するために使用されます。
- ドライバーは、データベースサーバーとの通信を処理するインターフェイスです。 また、ドライバオブジェクトの操作に関連する詳細も抽象化されます。
- Connectionは、データベースへの接続に必要なすべてのメソッドで構成されるインターフェイスです。 つまり、データベースとのすべての通信はconnectionオブジェクトのみを介して行われます。
次のトピックに進み、JDBCアプリケーションを作成するために必要な手順を見てみましょう。
Advanced Java Tutorial:JDBCアプリケーションを作成する手順
JDBCアプリケーションを作成するには、いくつかの手順に従う必要があります。 彼らが何であるか見てみましょう。
- パッケージのインポート:データベースプログラミングに必要なJDBCクラスを含むパッケージを含める必要があります。 ほとんどの場合、import javaを使用します。sqlです。*で十分です。
- JDBCドライバの登録:ここでは、データベースとの通信チャネルを開くためにドライバを初期化する必要があります。
- 接続を開く:ここでは、getConnection()メソッドを使用して、データベースとの物理的な接続を表すConnectionオブジェクトを作成できます。
- クエリの実行:SQLステートメントを構築してデータベースに送信するには、Statement型のオブジェクトを使用する必要があります。
- 結果セットからデータを抽出する:適切なgetXXX()メソッドを使用して結果セットからデータを取得する必要があります。
- 環境のクリーンアップ:JVMのガベージ-コレクションに依存するのではなく、すべてのデータベース-リソースを明示的に閉じる必要があります。
JDBCアプリケーションを作成するためのさまざまな手順を見てきましたが、データベースを作成して接続を確立するためのコード例を見てみましょう。
package Edureka;import java.sql.*;import java.sql.DriverManager;public class Example {// JDBC driver name and database URLstatic final String JDBC_DRIVER = "com.mysql.jdbc.Driver";static final String DB_URL = "jdbc:mysql://localhost/emp";// Database credentialsstatic final String USER = "root";static final String PASS = "";public static void main(String args) {Connection conn = null;Statement stmt = null;try{//STEP 2: Register JDBC driverClass.forName("com.mysql.cj.jdbc.Driver");//STEP 3: Open a connectionSystem.out.println("Connecting to database...");conn = DriverManager.getConnection(DB_URL,"root","");//STEP 4: Execute a querySystem.out.println("Creating statement...");stmt = conn.createStatement();String sql;sql = "SELECT id, first, last, age FROM Employees";ResultSet rs = stmt.executeQuery(sql);//STEP 5: Extract data from result setwhile(rs.next()){//Retrieve by column nameint id = rs.getInt("id");int age = rs.getInt("age");String first = rs.getString("first");String last = rs.getString("last");//Display valuesSystem.out.print("ID: " + id);System.out.print(", Age: " + age);System.out.print(", First: " + first);System.out.println(", Last: " + last);}//STEP 6: Clean-up environmentrs.close();stmt.close();conn.close();}catch(SQLException se){//Handle errors for JDBCse.printStackTrace();}catch(Exception e){//Handle errors for Class.forNamee.printStackTrace();}finally{//finally block used to close resourcestry{if(stmt!=null)stmt.close()}catch(SQLException se2){}// nothing can be donetry{if(conn!=null)conn.close();}catch(SQLException se){se.printStackTrace();}//end finally try}//end trySystem.out.println("Goodbye!");}//end main} // end Example
上記のコードは、localhostデータベースにテーブルを作成します。 作成されたデータベースに値を挿入するには、以下のコードを参照してください。 私はステップ4のためだけにコードを書いています。 残りのコードは上記と同じままです。
//STEP 4: Execute a querySystem.out.println("Creating table in given database...");stmt = conn.createStatement();String sql = "CREATE TABLE EMPLOYEES " +"(id INTEGER not NULL, " +" first VARCHAR(255), " +" last VARCHAR(255), " +" age INTEGER, " +" PRIMARY KEY ( id ))";stmt.executeUpdate(sql);System.out.println("Created table in given database...");System.out.println("Inserting records into the table...");stmt =conn.createStatement();String sql ="INSERT INTO Employees VALUES (100, 'Kriss', 'Kurian', 18)";stmt.executeUpdate(sql);sql = "INSERT INTO Employees VALUES (101, 'Enrique', 'John', 25)";stmt.executeUpdate(sql);sql= "INSERT INTO Employees (102, 'Taylor', 'Swift', 30)";stmt.executeUpdate(sql);sql= "INSERT INTO Employees VALUES(103, 'Linkin', 'Park', 28)";stmt.executeUpdate(sql);System.out.println("Inserted records into the table...");
これは、データベースへの接続を確立し、テーブルに値を挿入する方法です。 それでは、さらに移動し、様々なJDBCドライバの種類を理解してみましょう
高度なJavaチュートリアル: JDBCドライバータイプ
JDBCドライバーは、データベースサーバーと対話するために、JDBC APIで定義されたインターフェイスを実装します。 基本的に、JDBCドライバは3つのことを可能にします。
1。 データソースとの接続を確立します。
2. クエリとupdateステートメントをデータソースに送信します。
3. 結果を処理します。
たとえば、JDBCドライバを使用すると、SQLまたはデータベースコマンドを送信することによって、データベース接続を開いて対話することができます。
ドライバには、
タイプ1の4種類があります。: JDBC-ODBC Bridge Diver
タイプ1ドライバでは、JDBC bridgeは各クライアントマシンにインストールされているODBCドライバにアクセスします。 さらに、ODBCは、ターゲットデータベースを表すデータソース名(DSN)を構成します。
Javaが最初に登場したとき、ほとんどのデータベースはODBCアクセスのみをサポートしていたため、これは便利なドライバでしたが、今ではこのタイプのドライバは実験的な使用や他の代替手段が利用できない場合にのみ推奨されています。
2型: JDBC-Native API
タイプ2ドライバでは、JDBC APIコールは、データベースに固有のネイティブC/C++APIコールに変換されます。 これらのドライバは、通常、データベースベンダーによって提供され、JDBC-ODBCブリッジと同じ方法で使用されます。 ベンダ固有のドライバは、各クライアントマシンにインストールする必要があります。タイプ2JDBCドライバ-Advanced Java-Edurekaタイプ2JDBCドライバの例は、Oracle Call Interface(OCI)ドライバです。
タイプ3:JDBC-Net pure Java
タイプ3ドライバでは、データベースにアクセスするために三層アプローチが使用されます。 JDBCクライアントは、標準のネットワークソケットを使用してミドルウェアアプリケーショ ソケット情報は、ミドルウェアアプリケーションサーバーによってDBMSで必要な呼び出し形式に変換され、データベースサーバーに転送されます。
この種のドライバは、クライアントにインストールされたコードを必要とせず、単一のドライバが実際に複数のデータベースへのアクセスを提供できるため、非常に柔軟性があります。 アプリケーションサーバーはJDBCの”プロキシ”と考えることができます。 そのため、このドライバタイプを効果的に使用するには、アプリケーションサーバーの構成に関するある程度の知識が必要です。 アプリケーションサーバーは、タイプ1、2、または4のドライバを使用してデータベースと通信する場合があります。
タイプ4:100%純粋なJava
タイプ4ドライバでは、純粋なJavaベースのドライバはソケット接続を介してベンダーのデータベースと直接通信します。 これは、データベースで利用可能な最高のパフォーマンスドライバーであり、通常はベンダー自身によって提供されます。
この種のドライバは非常に柔軟で、クライアントやサーバーに特別なソフトウェアをインストールする必要はありません。 さらに、これらのドライバは動的にダウンロードすることができます。
MySQLのConnector/Jドライバはタイプ4ドライバです。 ネットワークプロトコルの独自の性質のため、データベースベンダーは通常、タイプ4ドライバを提供します。
新しい更新を得るために私達のyoutubeチャンネルを購読してください。.!
だからここで質問が来る、どのドライバを使用する必要がありますか?
- Oracle、Sybase、IBMなど、あるタイプのデータベースにアクセスしている場合、推奨されるドライバタイプは4です。
- Javaアプリケーションが複数のタイプのデータベースに同時にアクセスしている場合は、タイプ3が推奨されるドライバです。
- タイプ2ドライバは、タイプ3またはタイプ4ドライバがデータベースでまだ使用できない状況で便利です。
- タイプ1ドライバーは、展開レベルのドライバーとは見なされず、通常は開発とテストの目的でのみ使用されます。
さて、最後のJDBCのトピックにジャンプして、さまざまなタイプの接続を理解しましょう。
Advanced Java Tutorial:JDBC Connections
- JDBCパッケージのインポート:importステートメントをJavaプログラムに追加して、Javaコードに必要なクラスをインポートします。
- JDBCドライバの登録:このステップにより、JVMはJDBC要求を満たすことができるように、目的のドライバ実装をメモリにロードします。 ドライバを登録するには2つの方法があります。
- ドライバを登録する最も一般的な方法は、JavaのforName()メソッドを使用してドライバのクラスファイルをメモリに動的にロードし、自動的に登録するこ この方法では、ドライバ登録を構成可能で移植可能にすることができるため、この方法をお勧めします。 以下のコードを参照してください。
try {Class.forName("oracle.jdbc.driver.OracleDriver");}catch(ClassNotFoundException ex) {System.out.println("Error: unable to load driver class!");System.exit(1);}
- ドライバを登録するために使用できる第二のアプローチは、静的なregisterDriver()メソッドを使用することです。
try { Driver myDriver = new oracle.jdbc.driver.OracleDriver(); DriverManager.registerDriver( myDriver ); }catch(ClassNotFoundException ex){ System.out.println("Error: unable to load driver class!");System.exit(1);}
- ドライバを登録する最も一般的な方法は、JavaのforName()メソッドを使用してドライバのクラスファイルをメモリに動的にロードし、自動的に登録するこ この方法では、ドライバ登録を構成可能で移植可能にすることができるため、この方法をお勧めします。 以下のコードを参照してください。
MICROSOFTが提供するJVMなど、JDKに準拠していないJVMを使用している場合は、registerDriver()メソッドを使用する必要があります。
- データベースURLの定式化:これは、接続するデータベースを指す適切なフォーマットのアドレスを作成することです。 ドライバをロードした後、DriverManagerを使用して接続を確立できます。getConnection()メソッド。 DriverManager。getConnection()メソッドは次のとおりです-
- getConnection(String url)
- getConnection(String url,Properties prop)
- getConnection(String url,String user,String password)
ここでは、各フォームにデータベースURLが必要です。 データベースURLは、データベースを指すアドレスです。
A table lists down the popular JDBC driver names and database URL.
RDBMS | JDBC Driver Name | URL |
1. MYSQL | com.mysql.jdbc.Driver | jdbc:mysql://hostname/ databaseName |
2. Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:@hostname:port Number:databaseName |
3. Sybase | com.Sybase.jdbc.SybDriver | jdbc:sybase:Tds:hostname: ポート番号/データベース名 |
- 接続オブジェクトの作成
データベースurl、ユーザー名、パスワード、およびpropertiesオブジェクトを使用して接続を作成または開くことができます。 Propertiesオブジェクトは、キーワードと値のペアのセットを保持します。 これは、getConnection()メソッドの呼び出し中にドライバのプロパティをドライバに渡すために使用されます。
- Close
JDBCプログラムの最後に、各データベースセッションを終了するためにすべてのデータベース接続を閉じる必要があります。 ただし、忘れた場合、Javaのガベージコレクタは古いオブジェクトをクリーンアップするときに接続を閉じます。
conn.close();// Used to close the connection
それはすべてJavaデータベース接続に関するものでした。 JDBCについてもっと知りたい場合は、これらのインタビューの質問を参照してください。 今すぐ先に移動し、サーブレットを学びます。
Advanced Java Tutorial:Introduction to Servlets
サーブレットは、要求-応答プログラミング-モデルによってアクセスされるアプリケーションをホストするサーバーの機能を拡張するために使 サーブレットは任意のタイプの要求に応答できますが、webサーバーによってホストされるアプリケーションを拡張するために一般的に使用されます。
サーブレットは次のように記述できます:
-
- サーブレットは、webアプリケーションを作成するために使用される技術です。
- ドキュメントを含む多くのインターフェイスとクラスを提供するAPIです。
- サーブレットは、サーブレットを作成するために実装する必要があるインターフェイスです。
- サーバーの機能を拡張し、着信要求に応答するクラスでもあります。 これは、任意の要求に応答することができます。
- サーブレットは、webアプリケーションを作成するために使用される技術です。
Advanced Java Tutorial:Servlet Life Cycle
サーブレットのライフサイクル全体は、javaxを使用するサーブレットコンテナによって管理されます。サーブレットサーブレットオブジェクトを理解し、それを管理するためのサーブレットインターフェイ
サーブレットのライフサイクルの段階:サーブレットのライフサイクルは主に四つの段階を経ます,
- サーブレットをロードします。
- サーブレットを初期化します。
- リクエスト処理
- サーブレットを破棄します。
これらの各段階を詳細に見てみましょう:
- サーブレットのロード:サーブレットのライフサイクルの最初の段階では、サーブレット-コンテナによるサーブレットのロードと初期化が行われます。 Webコンテナまたはサーブレットコンテナは、次のいずれかの段階でサーブレットをロードできます。
- コンテキストの初期化、ゼロまたは正の整数値でサーブレ
- サーブレットがステージの前にない場合、Webコンテナが要求を処理するためにこのサーブレットが必要であると判断するまで、ロードプロセスを遅延させる
- サーブレットの初期化:サーブレットが正常にインスタンス化されると、サーブレットコンテナはインスタンス化されたサーブレットオブジェク コンテナは、ServletConfigオブジェクト参照をパラメータとして受け入れるinit(ServletConfig)メソッドを呼び出して、Servletオブジェクトを初期化します。
- : 初期化後、サーブレットインスタンスはクライアント要求を処理する準備ができています。 サーブレットコンテナは、要求を処理するためにサーブレットインスタンスが配置されているときに次の操作を実行します。
- ServletRequestとServletResponseを作成します。 この場合、これがHTTP要求の場合、WebコンテナはそれぞれServletRequestオブジェクトとServletResponseオブジェクトのサブタイプであるHttpServletRequestオブジェクトとHttpServletResponseオブジェクトを作成
- サーブレットの破棄: サーブレットコンテナがサーブレットを破棄することを決定すると、次の操作を実行します。
- サーブレットインスタンスのserviceメソッドで現在実行されているすべてのスレッドがジョブを完了して解放されることを許可します。
- 現在実行中のスレッドがジョブを完了した後、サーブレットコンテナはサーブレットインスタンスのdestroy()メソッドを呼び出します。
destroy()メソッドが実行された後、サーブレットコンテナはこのサーブレットインスタンスのすべての参照を解放し、ガベージコレクションの対象となります。
サーブレットの基本を理解したので、さらに進んで、サーブレット-アプリケーションを作成するために必要な手順を理解しましょう。
高度なJavaチュートリアル:サーブレットを作成する手順
- ディレクトリ構造を作成する
- サーブレットを作成する
- サーブレットをコンパイルする
- xmlファイル
- サーバーを起動してプロジェクトをデプロイ
- サーブレットにアクセス
さて、上記の手順に基づいて、プログラムを記述し、サーブレットがどのように動作するかを理解しましょう。
ステップ1: サーブレットプログラムを実行するには、Apache tomcat serverをインストールして設定する必要があります。 サーバーが構成されたら、プログラムから始めることができます。
ステップ2:サーブレットプログラムの場合、3つのファイル–インデックスが必要です。htmlファイル、Javaクラスファイル、およびweb。xmlファイル。 最初のステップは、動的Webプロジェクトを作成し、さらに
ステップ3:今度は、サーブレットを使用して2つの数値を追加し、ブラウザに出力を表示する方
まず、インデックスを書きます。htmlファイル
<!DOCTYPE html><html><body><form action ="add"> Enter 1st number: <input type="text" name="num1"> Enter 2nd number: <input type="text" name="num2"><input type ="submit"> </form></body></html>
上記のプログラムは、加算操作のための数字を入力するフォームを作成します。ステップ4:Javaクラスファイルがなければ、2つの数値に加算を実行することはできません。 それでは、クラスファイルを書いてみましょう。
import java.io.IOException;import java.io.PrintWriter;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Add extends HttpServlet{ public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { int i = Integer.parseInt(req.getParameter("num1")); int j = Integer.parseInt(req.getParameter("num2"); int k= i+j; PrintWriter out = res.getWriter(); out.println("Result is"+k); }}
ステップ5:Javaクラスファイルを書き込んだ後、最後のステップはwebにマッピングを追加することです。xmlファイル。 それを行う方法を見てみましょう。
ステップ6:ウェブ。xmlファイルは、webコンテンツのWEB-INFフォルダに存在します。 存在しない場合は、[Deployment Descriptor]をクリックし、[Generate Deployment Descriptor Stub]をクリックします。
ステップ7:その後、さらに進んでマッピングを追加することができます。
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=<"http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"</em> version=<em>"3.0"</em>> <display-name>Basic</display-name> <servlet> <servlet-name>Addition</servlet-name> <servlet-class>edureka.Add</servlet-class> </servlet> <servlet-mapping> <servlet-name>Addition</servlet-name> <url-pattern>/add</url-pattern></servlet-mapping><welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list></web-app>
ステップ8: この後、サーバーを起動してプログラムを実行できます。 ブラウザで目的の出力が得られます。
基本的には、これがサーブレットの設定方法です。 次に、さらに移動し、セッション追跡の概念を理解してみましょう。
セッショントラッキング
セッションは単に特定の時間間隔を意味します。 セッション追跡は、ユーザーの状態(データ)を維持する方法です。 サーブレットではセッション管理とも呼ばれます。 Httpプロトコルはステートレスであることがわかっているので、セッション追跡技術を使用して状態を維持する必要があります。 ユーザーがサーバーに要求するたびに、サーバーはその要求を新しい要求として扱います。 そのため、特定のユーザーを認識するためにユーザーの状態を維持する必要があります。
図に示すように、リクエストを送信すると新しいリクエストとみなされます。
特定のユーザーを認識するには、セッション追跡が必要です。 これはすべてサーブレットに関するものでした。
さて、ブログの最後のセクションに飛び込み、JSPとは何かを理解しましょう。
高度なJavaチュートリアル: JAVA Server Pages
JSPまたはJava Server Pagesは、サーブレット技術と同じようにwebアプリケーションを作成するために使用される技術です。 これは、式言語、JSTLなどのservletよりも多くの機能を提供するため、Servletの拡張機能です。 JSPページは、HTMLタグとJSPタグで構成されます。 JSPページは、設計と開発を分離できるため、サーブレットよりも保守が簡単です。 これは、式言語、カスタムタグなどのいくつかの追加機能を提供します。
次に、下の図の助けを借りてJSPのさまざまな機能を見てみましょう。
- Portable:JSPタグはサーバー側のwebコンテナによって処理および実行されるため、ブラウザに依存せず、J2EEサーバーに依存しません。
- 強力:JSPはバイトコードで構成されているため、堅牢で動的で安全でプラットフォームに依存しないJSPの場合には、すべてのJava機能が適用されます。
- 柔軟性:開発者がJSPで任意の種類のフレームワークベースのマークアップタグを使用するためにconferrableを埋めることができるように、カスタムタグを定義するこ
- : JSPページが変更された場合、プロジェクトを再コンパイルして再デプロイする必要はありません。 アプリケーションの外観を変更する必要がある場合は、サーブレットコードを更新して再コンパイルする必要があります。
- ユーザーの追跡:JSPは、セッションまたはcookieの情報を維持することにより、ウェブサイトとのユーザーの対話中にユーザーが行った選択を追跡することができます
- 簡単:JSPは学びやすく、理解しやすく、開発が容易です。 JSPは、JavaコードをHTMLページに直接埋め込むことができるため、サーブレットよりも記述が便利です。
JSPとは何かを理解したので、JSPとサーブレットがどのように異なるのか、下の表の助けを借りてJSPがサーブレットよりも優れている理由を見てみましょう。
JSP | サーブレット |
サーブレットへの拡張 | サーブレットへの拡張ではありません |
維持しやすい | ビット複雑 |
コードを再コンパイルまたは再展開する必要はありません | コードを再コンパイルする必要があります |
サーブレットよりも少ないコード | JSPと比較してより多くのコード |
ここでは、Javaサーバーページを深く掘り下げ、JSPのライフサイクルを理解しましょう。
高度なJavaチュートリアル: JSPのライフサイクル
JSPページは次のフェーズに従います:
- JSPページの翻訳
- JSPページのコンパイル
- Classloading(classloaderはクラスファイルをロードします)
- インスタンス化(生成されたサーブレットのオブジェクトが作成されます)
- 初期化(_jspservice()を呼び出します)
- Destroy(コンテナはJspdestroyを呼び出します())
上の図に示すように、JSPページはJSP translatorの助けを借りてサーブレットに変換されます。 そして、JSP translatorは、JSPページをサーブレットに翻訳する責任があるwebサーバーの一部です。 その後、サーブレットページはコンパイラによってコンパイルされ、クラスファイルに変換されます。 さらに、サーブレットで発生するすべてのプロセスは、初期化、ブラウザへの応答のコミット、破棄など、後でJSPで実行されます。
高度なJavaチュートリアル:JSPスクリプト要素:
スクリプト要素は、JSP内にjavaコードを挿入する機能を提供します。 スクリプト要素には、次の3つのタイプがあります。:
- scriptletタグ–scriptletタグは、JSPでJavaソースコードを実行するために使用されます。
構文は次のとおりです。<%javaソースコード%> - 式タグ-JSP式タグ内に配置されたコードは、応答の出力ストリームに書き込まれます。 だからあなたは書き出す必要はありません。データを書き込むにはprint()を使用します。 これは主に変数またはメソッドの値を印刷するために使用されます。
構文:<%=ステートメント%> - 宣言タグ-JSP宣言タグは、フィールドとメソッドを宣言するために使用されます。 JSP宣言タグ内に記述されたコードは、自動生成されたサーブレットのservice()メソッドの外側に配置されます。 したがって、各要求でメモリを取得しません。
構文:<%! フィールドまたはメソッドの宣言%>
JSPについてもっと知りたい場合は、これらのインタビューの質問を参照することができます。
これで、高度なJavaチュートリアルに関するブログの最後になります。 私はあなたがこのブログが有益で、あなたの知識に付加価値を見つけたことを願っています。
世界中に250,000人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社EdurekaによるJava認定トレーニングをチェックしてください。 EdurekaのJava J2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生や専門家のために設計されています。 このコースは、Javaプログラミングに頭のスタートを与え、Hibernate&Springのような様々なJavaフレームワークとともに、コアと高度なJavaの概念の両方を訓練するように設計さ