• SpringBoot中使用Servlet,方法二


      上篇博文是在SpringBoot中通过@WebServlet注解来使用Servlet的,本篇介绍使用配置类来实现SpringBoot中使用Servlet。

    一、新建一个Servlet的配置类ServletConfig.java,内容如下:

    package cn.com.winson.config;
    
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import cn.com.winson.servlet.MyServlet;
    /*SpringBoot没有xml,@Configuration注解可以表示一个spring的xml配置文件*/
    @Configuration
    public class ServletConfig {
    
        /*@Bean注解:相当于Spring中的配置文件中的<bean>标签,下面的方法相当于如下配置:id为方法名,class为返回值
         * <bean id="myServletRegistrationBean" class="org.springframework.boot.web.servlet.ServletRegistrationBean;">
         * </bean>
         */
        @Bean
        public ServletRegistrationBean myServletRegistrationBean() {
            /*将Servlet注册为一个bean,设置访问路径*/
            ServletRegistrationBean registrationBean = new ServletRegistrationBean(new MyServlet(), "/myServlet");
            return registrationBean;
        }
    
    }

    二、新建一个Servlet类,继承HttpServlet,内容如下:

    package cn.com.winson.servlet;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class MyServlet extends HttpServlet{
    
        private static final long serialVersionUID = 1L;
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.getWriter().print("Hello World");
            resp.getWriter().flush();
            resp.getWriter().close();
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            this.doGet(req, resp);
        }
        
    }

    三、此时工程会报错:

     具体错误为:参考Problems选项卡下的错误信息,也就是说我们目前使用的Java Web Module需要版本为3.1,而目前使用的不是3.1,如何修改?

    具体操作:Window-》show view -》Navigator,切换工程查看目录为Navigator,打开箭头所指文件:

    将箭头所指改为3.1,修改后如下图:

     然后再更新工程:解除错误提示:

    四、运行程序,访问结果为:

    总结:

    一、SpringBoot通过配置类来使用Servlet相比使用注解来实现,要麻烦很多,所以推荐使用注解来使用。

    二、使用配置类来实现,程序启动入口类,不用再加Servlet扫描器。

    三、两种方式,pom.xml都不需要添加特殊的依赖,注意,有些博文还说要加Servlet的依赖,其实不用。

  • 相关阅读:
    2022 开年计划
    阿里云,华为云产品使用汇总
    git 连接gitlab
    golang 学习汇总
    mongodb分片集群的搭建总结
    2021 年终 总结,随想
    vue请求RSA加密
    sockjsnode/info请求失败
    rules校验
    [转]SPRINGBOOT启动流程及其原理
  • 原文地址:https://www.cnblogs.com/elnimo/p/10099222.html
Copyright © 2020-2023  润新知