統合サーブレット - Springboot

まず、の導入:

:(JSP使用する前に、今、もはや開発が主流ですが、理解することができますが、次回の記事では、JSP、JSPの開発の歴史を説明していないhttps://zhuanlan.zhihu.com/p/42343690 +サーブレットテクノロジー・スタックをより完全にするために)中小プロジェクト、私はより簡単に使用を感じます。

しかし、春を使用した後、春のMVCフレームワークは、基本的には、サーブレット、フィルターにリスナーの別れを入札します。

しかし!いくつかの場所で私たちはサーブレットのシリーズを使用する必要があります(このようなサードパーティ製プラグインの統合が場合など)。

したがって:私たちはここである春ブーツこれらの基本的なWebコンポーネントの統合のためにも良いサポートを提供し、。

第二に、以下のステップ:

1. [追加] 3つのWebコンポーネント

サーブレット:

package com.kevin.springbootkevin1.web.servlet_filter_listener;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("name>>>" + req.getParameter("name"));
    }
}

フィルタ: 

package com.kevin.springbootkevin1.web.servlet_filter_listener;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter("/*")
public class MyFilter implements javax.servlet.Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out .println ("MyFilter >>> init") ;
    }

    @Override
    public void doFilter(ServletRequest req,
                         ServletResponse resp,
                         FilterChain chain) throws IOException, ServletException {
        System.out.println("MyFilter >>> doFilter");
        chain.doFilter(req,resp);
    }

    @Override
    public void destroy() {
        System.out.println("MyFilter >>> destroy");
    }
}

 リスナー:

package com.kevin.springbootkevin1.web.servlet_filter_listener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class MyListener implements ServletRequestListener {
    //销毁
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("MyListener >>> requestDestroyed");
    }

    //初始化
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("MyListener >>> requestInitialized");
    }
}

注意:

@ WebServlet、@ WebFilterと@WebListener 3注意:ここではA.が必要です。

B.

2.入口クラス上の項目を追加@ServletComponentScan達成するために、注釈3つのコンポーネントスキャンを

第三に、テスト:

ブラウザアクセス:HTTP:// localhostの:? 8080 / =私の名前ケビン  、要求:

次のようにログが出力されます。

注:以下のように実行順序は次のとおりです。

initの中myFilterを>>> requestInitialized-初期化関数でMyListener >>> requestDestroyed内のdoPost >>> MyListenerでのdoFilter >>>に、MyServletでmyFilterを。

公開された70元の記事 ウォン称賛22 ビュー6007

おすすめ

転載: blog.csdn.net/Kevin__Coder/article/details/104525714