ホームページ  >  記事  >  Java  >  Javaのサーブレット

Javaのサーブレット

WBOY
WBOYオリジナル
2024-08-30 16:23:24961ブラウズ

Java のサーブレットはさまざまな方法で記述できます。テクノロジーとして、サーブレットは Web ページの作成に使用されます。インターフェイスなどを提供する API として使用されます。要求/応答プログラミング モデルでアプリケーションをホストするサーバーの機能を拡張するために使用されます。サーブレットは、コンポーネントベースでプラットフォームに依存しない方法を提供し、パフォーマンスの制限なく Web ベースのアプリケーションを構築します。 Java のサーブレットは、Java API および JDBC を介してエンタープライズ データベースにアクセスする完全なアクセス権を持っています。これらのサーブレットとは何か、サーブレットが使用される理由、その利点と制限、およびサーブレットが実際に Java でどのように動作するかについて詳しく見ていきます。

広告 このカテゴリーの人気コース JAVA サーブレット - 専門分野 | 18 コース シリーズ | 6 つの模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

サーブレットは他にもさまざまな方法で記述できます。

  • サーブレットは、Web アプリケーションの作成に使用されるテクノロジーです
  • サーブレットは、ドキュメントとともに多くのインターフェイスとクラスを提供する API です
  • Javaでサーブレットを作成するために実装されたインターフェースです
  • これはサーバーの機能を拡張し、受信リクエストに応答するクラスです。どのような種類のリクエストでもかまいません。
  • これは、動的な Web ページを作成するためにサーバーにデプロイされる Web コンポーネントでもあります。

なぜ Java にサーブレットが必要なのでしょうか?

テクノロジーが成長するにつれて、私たちは毎日最新のアップデートや最新のテクノロジースタックを知る必要があります。 サーブレットは、インターフェイス、テクノロジー、Web コンポーネント、クラス、または API として機能します。 サーブレットを使用すると、Web ページ/フォーム、データベース、その他のデータ ソースを通じてユーザー情報を収集し、Web ページを作成できます。

  • Java のサーブレットは、Common Gateway Interface (CGI) を使用して実装されたプログラムに似ていますが、サーブレットには CGI に比べて追加の利点があります。
  • パフォーマンスの点では、サーブレットは CGI よりも大幅に優れています。
  • サーブレットは Java で記述されているため、プラットフォームに依存しません。
  • これらは Web サーバーの空間内で実行されます。クライアントのリクエストを処理する際に別のプロセスを作成する必要はありません。
  • Java セキュリティは、サーバー マシンのリソースを保護する際に一連の厳格な制限を適用するため、サーブレットは信頼されます。
  • サーブレットは、ソケットや RMI メカニズムを介してデータベース、アプレット、またはその他のソフトウェアと通信できます。

Java でサーブレットはどのように動作しますか?

Java のサーブレットは、通信インターフェイス、クライアントとサーバーの要件、使用されるプロトコル、プログラミング言語、および関連するソフトウェアをチェックします。サーブレットは次の手順で実行されます。

ステップ 1: クライアントはウェブサーバーにリクエストを送信し、HTML フォーム、アプレット、カスタム HTTP クライアント プログラムなど、クライアントから送信された明示的なデータを読み取ります。

ステップ 2: 次に、Web サーバーがリクエストを受信します。

ステップ 3: 次に、Web サーバーはリクエストを対応するサーブレットに渡します。処理リクエストには、データベースとの通信、Web サービスの呼び出し、または直接応答が含まれる場合があります。

ステップ 4: 次に、サーブレットはリクエストを処理し、出力の形式で応答を生成します。 HTML や XML、画像の場合は GIF、Excel など、任意の形式を使用できます。

ステップ 5: これらのサーブレットはサーバーに応答を送り返します

ステップ 6: 次に、Web サーバーは、ブラウザーの UI 表示として、クライアントとクライアントに応答を送り返します。

サーブレットのアーキテクチャ

上記のサーブレット アーキテクチャでは、次のような Java メソッドが使用されています。

Javaのサーブレット

  • Servlet.init(): サーブレットによって呼び出され、サーブレット インスタンスが正常に実行され、サービスが呼び出されたことを示します。次に、サーブレットは service() メソッドを呼び出してクライアントのリクエストを処理します。その後、 destroy() メソッドを使用してサービスが完了すると終了します
  • Servlet.destroy(): メソッドはライフサイクル全体で 1 回だけ実行され、サーブレット インスタンスが終了したことを知らせます。

Java でサーブレットを作成する例

まず、Java、Eclipse、Tomcat をインストールする必要があります:

1. ファイル -> を使用して動的 Web プロジェクトを作成します。新規->動的 Web プロジェクト。

Javaのサーブレット

2. プロジェクト名を入力し、ターゲット ランタイムを選択し、[次へ] をクリックして、「web.xml の生成」にチェックマークを付けて完了します

3. プロジェクトの構造は以下のようになります。

Javaのサーブレット

4. 次に、「ファイル」>「>」をクリックします。新しいサーブレットを作成します。

Javaのサーブレット

Javaのサーブレット

5. 上の [完了] をクリックします。これで、Eclipse は前のステップで行われた入力または構成に基づいてサーブレット クラスを生成します。

コード:

FirstProgram.java

package com.srccode.example;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class FirstProgram
*/
@WebServlet("/FirstProgram")
public class FirstProgram extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FirstProgram() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}

サーブレット クラスのコードを以下のように変更します。

パッケージ com.srccode.example;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class FirstProgram
*/
@WebServlet("/FirstProgram")
public class FirstProgram extends HttpServlet {
private static final long <em>serialVersionUID</em> = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FirstProgram() {
super();
// TODO Auto-generated constructor stub
}
private String mymsg;
public void init() throws ServletException {
mymsg = "Hi eduCBA Team! We are working on Java Servlet Tutorial! This is the first Servlet Program!";
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter printWriter = response.getWriter();
printWriter.println("<h1>" + mymsg + "</h1>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}

web.xml 内

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>ServletExample</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

index.html 内

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>BeginnersBook Servlet Demo</title>
</head>
<body>
<a href="welcome">Click to call Servlet</a>
</body>
</html>

出力:

右、プロジェクトをクリックし、[名前を付けて実行] を選択します。>サーバー上で実行します。

ブラウザを開くと、以下の出力が表示されます。サーバーはローカルホストで実行されます:<ポート番号>

http://localhost:8080/ServletExample/FirstProgram

Javaのサーブレット

Javaのサーブレット

Java におけるサーブレットの利点

Java のサーブレットには多くの利点があります。サーブレットは、サーバー側で実行されるアプレットとして受け取ることができます:

  • サーブレットは永続的です: サーブレットは、destroy() メソッドで破棄されるまでメモリ内に残ります。これは、受信リクエストの処理に役立ちます。データベースとの接続は 1 回だけ確立され、同じデータベース上で多くのリクエストを処理できます。データベースまたはその他のソースへの接続に使用される時間とリソースの削減
  • サーブレットは移植可能です: つまり、サーブレットはすべてのオペレーティング システムと互換性があります。つまり、あるオペレーティング システムで書かれたプログラムは他のオペレーティング システムでも実行できます
  • サーブレットはサーバーから独立しています: サーブレットは、市場で入手可能なあらゆる Web サーバーと互換性があります
  • サーブレットはプロトコルに依存しません: サーブレットは、FTP、Telnet などのあらゆるプロトコルをサポートできます。HTTP プロトコルの拡張サポートを提供します
  • サーブレットは安全です: これらのサーブレットはサーバー側プログラムであり、Web サーバーのみによって呼び出されるため、Web サーバーによって講じられたすべてのセキュリティ対策が継承されます
  • サーブレットは拡張可能: サーブレットは、ユーザーの要件に基づいて拡張し、オブジェクトにポリモーフィングできます
  • サーブレットは高速です: これらのサーブレットはバイトコードにコンパイルされるため、他のスクリプト言語と比較してより高速に実行されます。また、型チェックと強力なエラーも提供します。
  • サーブレットは安価です: 個人用でも商用でも、あらゆる用途に利用できる無料の Web サーバーが多数あります。

これで、「Java のサーブレット」のトピックは終了です。 Java におけるサーブレットとは何か、そしてそれらがどのように使用されるのかを例を挙げて説明しました。また、その利点を確認し、使用するサーブレット アーキテクチャとサーブレット メソッドを使用して、サーブレットを段階的に使用する方法を学びました。 Java でサーブレットが使用される理由と、CGI に対するサーブレットの利点もご覧ください。サーブレットについてはさらに詳しく調べる必要があります。利用可能なサーブレットの種類もあり、今後のチュートリアルでさらに詳しく説明します。

以上がJavaのサーブレットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javaのメタデータ次の記事:Javaのメタデータ