热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

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

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


推荐阅读
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
  • Lodop中特殊符号打印设计和预览样式不同的问题解析
    本文主要解析了在Lodop中使用特殊符号打印设计和预览样式不同的问题。由于调用的本机ie引擎版本可能不同,导致在不同浏览器下样式解析不同。同时,未指定文字字体和样式设置也会导致打印设计和预览的差异。文章提出了通过指定具体字体和样式来解决问题的方法,并强调了以打印预览和虚拟打印机测试为准。 ... [详细]
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
天呀你呀_778
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有