• 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的依赖,其实不用。

  • 相关阅读:
    21.Android之SQLite数据库学习
    20.(转)Android的样式(Style)和主题(Theme)
    19.Android之文件存储方法学习
    18.Android之SharedPreferences数据存储学习
    17.(转) Android之四大基本组件介绍与生命周期
    16.(转) Android之Support v4、v7、v13的区别和应用场景
    15.Android中LinearLayout布局一些小记录
    14.Android之Layout布局学习
    13. (转) Android一些布局属性详解
    12.Android之Tabhost组件学习
  • 原文地址:https://www.cnblogs.com/elnimo/p/10099222.html
Copyright © 2020-2023  润新知