まず、の導入:
:(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を。