Web学習ノート-日付001

3301 ワード

Servlet
Javaプログラムで動的Webページを生成する場合、Javaプログラムはサーブレット仕様に従う必要があるので、サーブレットインタフェース(小サービス)サーブレット---サーブレット---小物を実現する
例:
@WebServlet(name="Hello", urlPatterns={"/hi", "*.do"}, loadOnStartup=1)
public class Hello implements Servlet {
    
    private List list = new ArrayList<>();

    @Override
    public void destroy() {
        //         Hello             -      
    }

    @Override
    public ServletConfig getServletConfig() {   
        return null;
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void init(ServletConfig arg0) throws ServletException {
        //           Hello            -    
        // System.out.println("Hello      !!!");
        
        list.add("  ");
        list.add("  ");
        list.add("  ");
        list.add("  ");
        list.add("  ");
        list.add("  ");
    }
    
    //                     
    //                     
    @Override
    public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
        resp.setCharacterEncoding("utf-8");
        PrintWriter writer = resp.getWriter();
        writer.write("");
        writer.write("");
        writer.write("");
        writer.write("");
        writer.write("");
        writer.write("

:

"); writer.write(list.get((int) (Math.random() * list.size()))); writer.write(""); writer.write(""); writer.close(); } }


Helloクラスはサーブレットインタフェースを実装するため、サーバ上で実行可能な小さなサービスです.これは、サーバがHelloクラスを作成するオブジェクトの小さなサービスの動作モードが通常、単一インスタンスのマルチスレッドであることを意味します.
サーブレットの配備:
WEB-INF/
  • web.xml
  •     
        
    
  • lib
  • classes

  • @WebServlet
  • urlPatterns
  • loadOnStartup

  • servletは単一インスタンスマルチスレッドです
    サーブレットの正しい使い方:
    コントローラとして
  • 1.ユーザー要求を処理し、対応するビジネスロジックを呼び出す
  • getParameter(String)

  • 2.適切な役割ドメインにデータをバインド
  • setAttribute(String, Object)

  • 3.ページにジャンプまたはリダイレクト
  • getRequestDispatcher(String)
  • forward(req, resp)

  • sendRedirect(String)


  • 方法destroy()サーバがHelloクラスオブジェクトを破棄する準備ができている場合、このメソッドは自動的に呼び出されます.init()このメソッドは、サーバがHelloクラスオブジェクトを作成した後に自動的に呼び出されるメソッド-初期化service(ServletRequest req, ServletResponse resp)最初のパラメータは、クライアントがサーバに送信する要求を表し、2番目のパラメータは、サーバがクライアントに送信する応答を表す.
    サービスメソッド
    サービスの方法では3つのことしかできません.ユーザの要求を処理する.バインドデータ(通常はリクエストにバインドする)3.JSPページに移動(テンプレート内の局番をデータで置換)
    getRequestDispatcherリクエストディスパッチを取得
    servletコンテキスト
    サーブレットContextは、現在Webプロジェクトを実行していることを示します.
    JSP
    サービスがユーザに要求された処理を完了したら、テンプレートページにジャンプし、得られたデータまたは処理の結果をこのテンプレートページに渡す.ここでテンプレートページはJSP(Java Server Page)がデータと要求を結合してテンプレートページ(result.jsp)にジャンプする.
    JSPの正しい使い方:
    ビューとして(View)
  • いかなる業務ロジックも処理せず、データ
  • の表示のみを担当する
    アプリケーションサーバ(サーブレットコンテナ)
  • Apache Tomcat
  • Redhat JBoss/WildFly
  • Oracle Weblogic
  • IBM Websphere