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容器内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程图解

    配置嵌入式Servlet容器 SpringBoot默认使用Tomcat作为嵌入式的Servlet容器: 问题? 1).如何定制和修改Servlet容器的相关配置: 1.修改和server有关的配置(ServerProperties[也是EmbeddedServletContainerCustomizer]): server.port=8081 server.context-path=/crud server.tomcat.uri-encoding=UTF-8 //通用的Servlet容器设置 s

  • springboot2.3.1替换为其他的嵌入式servlet容器的详细方法

    现阶段,springboot内嵌了Tomcat服务器,如果你不想使用Tomcat,springboot也是支持其他的服务器切换的. 如果你想了解底层springboot所支持的服务器你可以使用idea的快捷键快速按两次shift查询一个ServerProperties 的类,通过这个类你可以知道你想要了解的情况: springboot里面支持的服务器有Jetty.Netty-等等,大家有兴趣的话可以百度一下. 接着通过在pom文件的视图依赖分析可以得知: springboot里面的Tomcat是

  • 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容

  • SpringBoot如何切换成其它的嵌入式Servlet容器(Jetty和Undertow)

    目录 如何切换成其它的嵌入式Servlet容器(Jetty和Undertow) SpringBoot默认使用的内置Servlet容器是Tomcat SpringBoot还支持Jetty和Undertow SpringBoot web开发_嵌入式Servlet容器 1.切换嵌入式Servlet容器 2.定制Servlet容器 如何切换成其它的嵌入式Servlet容器(Jetty和Undertow) SpringBoot默认使用的内置Servlet容器是Tomcat 然而 SpringBoot还支持

  • SpringBoot嵌入式Servlet容器与定制化组件超详细讲解

    目录 嵌入式Servlet容器 1.原理分析 2.Servlet容器切换 3.定制Servlet容器配置 定制化组件 嵌入式Servlet容器 在Spring Boot中,默认支持的web容器有 Tomcat, Jetty, 和 Undertow 1.原理分析 那么这些web容器是怎么注入的呢?我们一起来分析一下 当SpringBoot应用启动发现当前是Web应用,它会创建一个web版的ioc容器ServletWebServerApplicationContext 这个类下面有一个createW

  • Spring Boot 中嵌入式 Servlet 容器自动配置原理解析

    目录 1.参照 Spring Boot 自动配置包里面的web模块 2.EmbeddedServletContainerFactory(嵌入式Servlet容器工厂) 3.EmbeddedServletContainer(嵌入式的Servlet容器) 4.以TomcatEmbeddedServletContainerFactory为例 5.嵌入式容器的配置修改生效原理 1.参照 Spring Boot 自动配置包里面的web模块 EmbeddedServletContainerAutoConfi

  • SpringBoot配置MongoDB多数据源的方法步骤

    1.项目构建 添加 pom 文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> 2.在 application.properties 中添加配置 ##start mongodb for basic #-------------

  • springboot配置mongodb连接池的方法步骤

    application.yml 配置 mongodb: address: localhost:27017 database: soms username: admin password: 123456 # 连接池配置 clientName: soms-task # 客户端的标识,用于定位请求来源等 connectionTimeoutMs: 10000 # TCP连接超时,毫秒 readTimeoutMs: 15000 # TCP读取超时,毫秒 poolMaxWaitTimeMs: 3000 #当

  • springboot配置https安全连接的方法

    1.项目上线,以前没有配置过https的安全连接...刚刚申请了一个https免费证书.(我使用的是unbantu16系统) Let's Encrypt 是属于介绍性质的,而真正用到的工具是 Certbot,去 https://certbot.eff.org/ 下载合适自己系统的Certbot. 2. 下载Certbot sudo apt-get install software-properties-common sudo add-apt-repository ppa:certbot/cert

  • Spring Boot如何支持嵌入式Servlet容器

    Spring Boot支持Tomcat.Jetty和Undertow三种Servlet容器嵌入到Web应用程序中,开发者使用starter即可方便嵌入,默认情况下,嵌入服务器的访问端口为8080. Servlets.Filters & Listeners 这些组件可以同组件扫描注册,即把他们定义为Spring Bean. 默认情况下,如果只有一个servlet,则把它映射到/:如果有多个servlet,则加上bean name作为前缀然后映射到/*. 如果默认策略不能满足你,你可以通过Servl

随机推荐