日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web三大组件的注册——Servlet、Filter、Listener(监听三大作用域: ServletContext、HttpSession、ServletRequest )

發布時間:2025/4/16 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web三大组件的注册——Servlet、Filter、Listener(监听三大作用域: ServletContext、HttpSession、ServletRequest ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?Web三大組件的注冊



Servlet

@WebServlet(“/user.action”)


<servlet>

</servlet>

<servlet-mapping>

</servlet-mapping>



Filter

@WebFilter()


<filter>

</filter>

<filter-mapping>

</filter-mapping>



Listener

@WebListener


<listener>

<listener-class></listener-class>

</listener>





UserServlet.java

package com.sxt.controller;import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;public class UserServlet extends HttpServlet {@Overridepublic void init(ServletConfig config) throws ServletException {String env = config.getInitParameter("env");String hello = config.getInitParameter("hello");System.out.println(env+" "+hello);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("hello--UserServlet");} } /*** 創建UserServlet*/@Bean("userServlet")@ConditionalOnClass(value = {UserServlet.class})public UserServlet userServlet(){return new UserServlet();}/*** 注冊UserServlet*/@Bean@ConditionalOnBean(value = {UserServlet.class})public ServletRegistrationBean<UserServlet> servletRegistrationBeanUserServlet(UserServlet userServlet){ // public ServletRegistrationBean<UserServlet> servletRegistrationBeanUserServlet(){ // UserServlet userServlet=new UserServlet();//創建注冊器對象ServletRegistrationBean<UserServlet> registrationBean=new ServletRegistrationBean<>();//注入ServletregistrationBean.setServlet(userServlet);//設置參數registrationBean.addInitParameter("env","UTF-8");registrationBean.addInitParameter("hello","你好");//設置映射registrationBean.addUrlMappings("/user1.action","/user2.action");return registrationBean;}

AppFilter.java

package com.sxt.controller;import javax.servlet.*; import java.io.IOException;public class AppFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {String env = filterConfig.getInitParameter("env");String hello = filterConfig.getInitParameter("hello");System.out.println(env+" "+hello);}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {System.out.println("doFilter");chain.doFilter(request,response);}@Overridepublic void destroy() {} } /*** 創建Filter*/@Bean("appFilter")@ConditionalOnClass(value = {AppFilter.class})public AppFilter appFilter(){return new AppFilter();}/*** 注冊Filter*/@Bean@ConditionalOnBean(value = {AppFilter.class})public FilterRegistrationBean<AppFilter> filterFilterRegistrationBeanAppFilter(AppFilter appFilter){//創建注冊器FilterRegistrationBean<AppFilter> registrationBean=new FilterRegistrationBean<>();//注入filterregistrationBean.setFilter(appFilter);//設置參數registrationBean.addInitParameter("env","filter-UTF-8");registrationBean.addInitParameter("hello","filter-你好");//設置映射 // registrationBean.addUrlPatterns("/*");registrationBean.addServletNames("userServlet");return registrationBean;}

Listener的分類

監聽三大作用域

ServletContext

|--ServletContextListener ????ServletContextAttributeListener

HttpSession

|--HttpSessionListner ????HttpSessionAttributeListener

ServletRequest

|--ServletReqeustListener ??ServletRequestAttributeListener


AppListener.java

package com.sxt.controller;import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;public class AppListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {System.out.println("contextInitialized");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {} } package com.sxt.config;import com.sxt.controller.AppListener; import lombok.Data; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.web.servlet.ServletListenerRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component;@Configuration @Component @ConfigurationProperties(prefix = "web") @Data public class WebConfig {private Boolean applistenerEnable=true;/*** 創建Listener*/@Bean@ConditionalOnClass(value = {AppListener.class})public AppListener appListener(){return new AppListener();}@Bean@ConditionalOnBean(value = {AppListener.class})public ServletListenerRegistrationBean<AppListener> servletListenerRegistrationBeanAppListener(AppListener listener){//創建注冊器ServletListenerRegistrationBean<AppListener> bean=new ServletListenerRegistrationBean<AppListener>();//注入listenerbean.setListener(listener);bean.setEnabled(applistenerEnable);return bean;} }

總結

以上是生活随笔為你收集整理的Web三大组件的注册——Servlet、Filter、Listener(监听三大作用域: ServletContext、HttpSession、ServletRequest )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。