ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring Boot之注册servlet三大组件

2020-12-19 17:33:53  阅读:130  来源: 互联网

标签:ServletRegistrationBean Spring void Boot 注册 FilterRegistrationBean servlet publi


由于Spring Boot默认是以jar包的形式启动嵌入式的Servlet容器来启动Spring Boot的web应用是,没有web.xml配置文件
注册三大组件用以下方式

ServletRegistrationBean
FilterRegistrationBean
ServletListenerRegistrationBean



一、注册一个ServletRegistrationBean

1.定义一个Servlet类

//向页面输出一句hello
public class HttpServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("hello");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

2.编写一个Servlet配置类

@Configuration
public class MyServerConfig {
    //注册三大组件
    //注意加上@Bean注解,否者无法加入到容器中
    @Bean
    public ServletRegistrationBean myServlet(){
        ServletRegistrationBean servlet = new ServletRegistrationBean(new HttpServlet(), "/myServlet");
        return servlet;
    }
   

3.Spring Boot配置文件

server.port=8081
server.servlet.context-path=/boot
server.tomcat.uri-encoding=UTF-8

4.启动主配置文件访问http://localhost:8081/boot/myServlet
在这里插入图片描述

这样就生效了



二、注册一个FilterRegistrationBean

1.定义一个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("success");
        filterChain.doFilter(servletRequest,servletResponse);
    }

    @Override
    public void destroy() {

    }
}

2.编写一个filter配置类

@Configuration
public class MyServerConfig {
    //注册三大组件

    @Bean
    public FilterRegistrationBean filterRegistrationBean(){
        FilterRegistrationBean re = new FilterRegistrationBean();
        re.setFilter(new MyFilter());
        re.setUrlPatterns(Arrays.asList("/hello","/filter"));
        return re;
    }

3.启动访问http://localhost:8081/boot/filter

在这里插入图片描述


ServletListenerRegistrationBean的使用类似于以上两种组件

Spring Boot 帮我们自动注册了SpringMVC的核心控制器DispatcherServlet,其注册方式类似于以上两种注册

标签:ServletRegistrationBean,Spring,void,Boot,注册,FilterRegistrationBean,servlet,publi
来源: https://blog.csdn.net/Kevinnsm/article/details/111407240

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有