当前位置: 首页 > news >正文

在SpringBoot里面使用原生的Servlet

在SpringBoot里面使用Servlet

首先在主程序中添加注解主程序添加@ServletComponentScan

// 加上这个注解之后就可以使用原生的组件了

HttpServlet

  • 继承HttpServlet 重写方法

  • 添加@WebServlet

    • 第一种方式使用注解

      • @WebServlet(value = "/helsk")
        public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, 	IOException {PrintWriter writer = resp.getWriter();writer.write("hello,World");}
        }
        
    • 第二种方式注入bean

      • @Bean
        public ServletRegistrationBean servletRegistrationBean(){ServletRegistrationBean bean = new ServletRegistrationBean();// 指定servletbean.setServlet(new HelloServlet());// 指定url路径bean.setUrlMappings(Collections.singleton("/hellsss"));return bean;
        }
        

Filter

  • 实现Filter 重写方法

  • 添加@WebFilter

    • 第一种方式使用注解

      • @WebFilter("/api/*")
        @Slf4j
        public class Filess implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {Filter.super.init(filterConfig);}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest se = (HttpServletRequest) servletRequest;StringBuffer requestURL = se.getRequestURL();StopWatch sw = new StopWatch();sw.start();filterChain.doFilter(servletRequest,servletResponse);sw.stop();log.debug("接口:{},耗时:{}",String.valueOf(requestURL),sw.getLastTaskTimeMillis());}@Overridepublic void destroy() {Filter.super.destroy();}
        }
        
    • 第二种方式注入bean

      •     @Beanpublic FilterRegistrationBean filterRegistrationBean(){FilterRegistrationBean bean = new FilterRegistrationBean();bean.setFilter(new Filess());bean.addUrlPatterns("/api/*");return bean;}
        

Listener

  • 实现ServletRequestListener 重写方法

  • 添加@WebListener

    • 第一种方式使用注解

      • @WebListener
        @Slf4j
        public class ServletListener implements ServletRequestListener {@Overridepublic void requestDestroyed(ServletRequestEvent sre) {log.debug("ServletListener 消亡");}@Overridepublic void requestInitialized(ServletRequestEvent sre) {log.debug("ServletListener 初始化");}
        }
        
    • 第二种方式注入bean

      •     @Beanpublic ServletListenerRegistrationBean servletListenerRegistrationBean (){ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean();bean.setListener(new ServletListener());bean.setEnabled(true);return bean;}
        
http://www.lryc.cn/news/7755.html

相关文章:

  • 商标被驳回,先别慌!挽回商标有办法
  • VMware安装Linux虚拟机后忘记root密码处理方法
  • Centos安装OpenResty
  • 阿里云部署SpringBoot项目
  • EdgeCOM嵌入式边缘计算机的参数配置
  • 字节软件测试岗:惨不忍睹的三面,幸好做足了准备,月薪15k,拿到offer
  • 【编程基础之Python】5、安装Python第三方模块
  • JavaScript 教程导读
  • BigDecimal
  • 代码随想录【Day15】|102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树
  • Python学习笔记:快速上手:基础知识
  • excel学习笔记-导入外部文件,报错,数值格式变换,日期格式的转化,求和快捷键,冻结窗格
  • 06 OpenCV‘阈值处理、自适应处理与ostu方法
  • 月薪过万的那些人,大部分都是做什么工作的?
  • csgo搬砖项目,门槛最低的副业就是它(内附入门知识及选品技巧)
  • 【闲聊杂谈】高并发下基于LVS的负载均衡
  • Redis新数据类型
  • 使用Python绘制股票CCI指标曲线
  • 【C语言技能树】浮点数在内存中的存储
  • Spring框架源码(五) @configuration源码深度解析
  • gcc/g++从入门到精通(3)gcc头文件、库搜索路径方式全面盘点
  • Android Studio多渠道打包及自动化构建
  • 基于MATLAB的MIMO信道估计(附完整代码与分析)
  • Python代码游戏————星球大战
  • java向Word模板中替换书签数据,插入图片,插入复选框,插入Word中表格的行数据,删除表格行数据
  • Java基础知识快速盘点(二)
  • 企业降本增效的催化剂:敏捷迭代
  • MySQL入门篇-MySQL高级窗口函数简介
  • 什么是 API(应用程序接口)?
  • 如何在外网访问内网的 Nginx 服务?