Servlet
4326 ワード
1)サーブレットとは?
📎 Java Webアプリケーション
WASにインストール(配備)して実行するアプリケーション.
HTML、CSS、画像、Java作成クラス(サーブレット、パッケージ、インタフェースなどを含む)、各種設定ファイルなどを含む
🔍 Java Webアプリケーションのフォルダ構造
Java Webアプリケーションのフォルダ構造
libフォルダにjarファイルを入れることができます.
classesフォルダにはjavaのpackageとclassが含まれています.
🔍 サーブレットとは?
Java Webアプリケーションのコンポーネントで動的に処理するプログラムの役割
サーブレットを定義する場合、WASに役立つJAVAクラスです.
サーブレットはHttpサーブレットクラスを継承する必要があります.
サーブレットとJSPから最適な結果を得るには、Webページを開発する際に、これらの2つ(JSP、サーブレット)を調整して使用する必要があります.
2)サーブレットの作成方法
📎 バージョンに基づいてサーブレットを作成する方法
1.サーブレット3.0 spec以降の使用方法
web.xmlファイルは使用しません.
Java宣言の使用(annotation)
2.サーブレット3.0仕様不足時の使用方法
servletを登録するときにwebを使用します.xmlファイルに登録
👀 3.0以降の練習コード
package exam;
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 TenServlet
*/
@WebServlet("/ten")
public class TenServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TenServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out =response.getWriter();
out.print("<h1>1~10까지 출력</h1>");
for(int i =1; i <= 10; i++) {
out.print(i+"<br>");
}
out.close();
}
}
実行画面
3.0未満の場合はwebを使用します。xmlファイルを追加して登録します。
3)Servlet Life Cycle
🔍 LifecycleServlet
package exam;
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 TenServlet
*/
@WebServlet("/ten")
public class TenServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TenServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out =response.getWriter();
out.print("<h1>1~10까지 출력</h1>");
for(int i =1; i <= 10; i++) {
out.print(i+"<br>");
}
out.close();
}
}
🔍 LifecycleServlet
HttpServeretを上書きする3つの方法
init()
サーブレットが最初に呼び出されると、initメソッドが呼び出されます.
service(request, response)
リクエストが到着すると、応答が必要なコンテンツがサービスメソッドを呼び出す.
destroy()
Webアプリケーションの更新とWASの終了時にdestroyメソッドを呼び出します.
servletは、サーバ上に複数のオブジェクトを作成しません.
Servlet
🔍 サーブレットライフサイクル
WASは、サーブレット要求を受信すると、そのサーブレットがメモリ内にあるかどうかを確認します.
if(メモリにありません){
対応するサーブレットクラスをメモリにアップロード
Init()メソッドの実行
}
サービス()メソッドの実行
閉じる場合、またはWebアプリケーションが新しい更新を行った場合、destroy()メソッドが実行されます.
🔍 サービスメソッド
HttpServiceletのサービスメソッドはテンプレートメソッドモードで実現される.
クライアント要求がGETの場合、クライアントが所有するdoGet(request,response)メソッドが呼び出されます.
クライアントの要求がPostである場合、クライアントが所有するdoPost(request,response)が呼び出されます.
4)リクエスト・レスポンス・オブジェクトの理解
🔍 リクエストとレスポンス
Webブラウザからサーブレットリクエストを受信すると、WASは次のようになります.
🔍 HttpServletRequest
🔍 HttpServletResponse
Reference
この問題について(Servlet), 我々は、より多くの情報をここで見つけました https://velog.io/@jahommer/Servletテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol