Servlet3.0の使用

受信された抽象クラスのHttpServletフォーカスのHTTPリクエスト
のHttpServletRequestインターフェースは、HTTPリクエストのServletRequestを処理するインタフェースを拡張します

@WebServlet("/webServlet")  //请求路径
public class WebServlet3 extends HttpServlet {
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		resp.getWriter().write("@WebServlet HttpServlet");
	}
}

ServletContainerInitializer Webは、このようなフィルタのフィルタを追加するなど、サードパーティのコンポーネントの初期化作業へのコンテナの開始を提供し、前提は、ファイルをjarファイルのパッケージを、対応するMETA-INF / servicesディレクトリにjavax.servlet.ServletContainerInitializerファイルという名前のファイルを作成する必要があります@HandlesTypes宣言指定は、実装クラスは@HandlesTypesに渡されるパラメータとして関心のクラスを取得する方法をonStartup書き換え、サブクラスServletContainerInitializerインタフェースに基づいてパスを指定しました

@HandlesTypes(value={AService.class})
public class SpringServletContainerInitlializer implements ServletContainerInitializer {

	@Override
	public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("onStartup..");
		for (Class<?> clazz : c) {
			System.out.println(clazz); //实现或继承AService感兴趣类
		}
	}
	//添加自定义servlet组件
		Dynamic servlet = ctx.addServlet("myServlet", MyServlet.class);
		//添加listener监听器
		ctx.addListener(MyListenner.class);
		//添加过滤器
		javax.servlet.FilterRegistration.Dynamic filter = ctx.addFilter("myFilter", MyFilter.class);
		//设置过滤规则
		filter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");

}

インタフェースフィルタフィルタ
パブリッククラスmyFilterを実装フィルタ{

@Override
public void init(FilterConfig filterConfig) throws ServletException {
	// TODO Auto-generated method stub

}

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
		throws IOException, ServletException {
	// TODO Auto-generated method stub
	System.out.println("拦截过滤请求");
	//过滤请求放行
	chain.doFilter(request, response);
}

@Override
public void destroy() {
	// TODO Auto-generated method stub
	
}

インターフェイスのServletContextListenerコンテナリスナー
リッスンサーブレットを起動するか、カスタムコンポーネントを追加します

public class MyListenner implements ServletContextListener {

	@Override
	public void contextInitialized(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		ServletContext context = sce.getServletContext(); //servlet上下文 全局共享
		System.out.println("ServletContextListecontextInitializedner  contextInitialized");
	}

	@Override
	p8ublic void contextDestroyed(ServletContextEvent sce) {
		// TODO Auto-generated method stub
		System.out.println("ServletContextListecontextInitializedner  contextDestroyed");
	}
}

公開された19元の記事 ウォンの賞賛8 ビュー789

おすすめ

転載: blog.csdn.net/ysl_20190905/article/details/104245576