springboot配置嵌入式servlet容器的方法

 更新时间:2020年10月10日 17:08:34   作者:某刘姓男子i  
这篇文章主要介绍了springboot配置嵌入式servlet容器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

配置嵌入式Servlet容器

springboot默认tomcat嵌入式servlet容器,所以不用在配置tomcat。

1.如何定制修改servlet容器?

1.在applicatio.properties里修改和server有关的配置(推荐)
如:

server.tomcat
server.tomcat.connection-timeout=  连接超时时间
server.tomcat.uri-encoding=UTF-8 修改编码

server.servlet.XXX 通用servlet容器设置
server.tomcatXXX 一般是Tomcat的设置

2.通过代码的方式修改配置

-编写一个配置类 @Configuration 注解即可
-在里面添加一个ConfigurableServletWebServerFactory定制器

@Bean
 public ConfigurableServletWebServerFactory configurableServletWebServerFactory(){
 TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();//这里是一个工厂
 factory.setPort(8088);//修改端口号
 //factory.setContextPath("/lanqiao518");
 return factory;
 }

-返回定制器,并注入到容器中 @Bean ,这个时候就配置好了

3.注册Servlet三大组件(servlet、Listener【监听器】,Filter【过滤器】)

首先要自己写一个类,分别实现三大组件自己的接口然后才能添加进容器中

这里以servlet为例:

在这里插入图片描述

Servlet:

public class MyServlet extends HttpServlet {//写好servlet下一步给他添加进容器中
 @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 {
  resp.setContentType("text/html;charset=utf-8");
  resp.setCharacterEncoding("utf-8");
  resp.getWriter().write("hello 你好");
 }
}

listener:

public class Mylistener implements ServletContextListener {
 @Override
 public void contextInitialized(ServletContextEvent sce) {

  System.out.println("项目启动了————————————————————————");
 }

 @Override
 public void contextDestroyed(ServletContextEvent sce) {
  System.out.println("项目关闭了————————————————————————");
 }
}

Filter:

public class MyFilter implements Filter {
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {

 }

 @Override
 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
  System.out.println("MyFilter拦截了----------------------");
  filterChain.doFilter(servletRequest,servletResponse);//然后放行
 }

 @Override
 public void destroy() {

 }
}

1.将自己写的servlet注入容器:

@Configuration
public class MyServletConfig {
 //将自己写的servlet添加进容器
@Bean
 public ServletRegistrationBean myServlet(){
  ServletRegistrationBean registrationBean=new ServletRegistrationBean(new MyServlet(),"/my");//将自己写的servlet添加进来,并给一个访问路径
  return registrationBean;
 }
}

2.将自己写的Linstener注入容器

@Bean
public ServletListenerRegistrationBean myListener() {
 ServletListenerRegistrationBean listenerRegistrationBean = new ServletListenerRegistrationBean(new Mylistener());//传一个自己写的监听器即可
 return listenerRegistrationBean;
}

3.将自己写的Filter注入容器

@Bean
public FilterRegistrationBean myFilter(){
 FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean(new MyFilter(),myServlet());//传一个自己写的Filter 和你要拦截的servlet 可以是多个
 return filterRegistrationBean;
}

注意:注入时的名称和自己编写的类名一致

在这里插入图片描述

到此这篇关于springboot配置嵌入式servlet容器的方法的文章就介绍到这了,更多相关springboot嵌入式servlet容器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现任务超时处理方法

    Java实现任务超时处理方法

    任务超时处理是比较常见的需求,Java中对超时任务的处理有两种方式,在文中给大家详细介绍,本文重点给大家介绍Java实现任务超时处理方法,需要的朋友可以参考下
    2019-06-06
  • SpringBoot+Ant Design Vue实现数据导出功能方式

    SpringBoot+Ant Design Vue实现数据导出功能方式

    这篇文章主要介绍了SpringBoot+Ant Design Vue实现数据导出功能方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • java实现求两个字符串最长公共子串的方法

    java实现求两个字符串最长公共子串的方法

    这篇文章主要介绍了java实现求两个字符串最长公共子串的方法,是一道华为OJ上的一道题目,涉及Java针对字符串的遍历、转换及流程控制等技巧,需要的朋友可以参考下
    2015-12-12
  • Bean实例化之前修改BeanDefinition示例详解

    Bean实例化之前修改BeanDefinition示例详解

    这篇文章主要为大家介绍了Bean实例化之前修改BeanDefinition示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Java_异常类(错误和异常,两者的区别介绍)

    Java_异常类(错误和异常,两者的区别介绍)

    下面小编就为大家带来一篇Java_异常类(错误和异常,两者的区别介绍) 。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 关于@RequestLine的使用及配置

    关于@RequestLine的使用及配置

    这篇文章主要介绍了关于@RequestLine的使用及配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Java单线程ThreadLocal串值问题解决方案

    Java单线程ThreadLocal串值问题解决方案

    这篇文章主要介绍了Java单线程ThreadLocal串值问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Mybatis日志参数快速替换占位符工具的详细步骤

    Mybatis日志参数快速替换占位符工具的详细步骤

    这篇文章主要介绍了Mybatis日志参数快速替换占位符工具的详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot项目打成War布署在Tomcat的详细步骤

    SpringBoot项目打成War布署在Tomcat的详细步骤

    这篇文章主要介绍了SpringBoot项目打成War布署在Tomcat,本文分步骤结合图文实例给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • Mybatis关联查询之一对多和多对一XML配置详解

    Mybatis关联查询之一对多和多对一XML配置详解

    这篇文章主要介绍了Mybatis关联查询之一对多和多对一XML配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10

最新评论