• web项目继承ServletContainerInitializer进行访问HttpServlet(WebServlet)


    java使用web项目不需要加web.xml

    配置javax.servlet.ServletContainerInitializer

    1、在src目录创建META-INF,META-INF目录下创建services,在services目录下创建javax.servlet.ServletContainerInitializer文件

    2、配置引用接口ServletContainerInitializer

    创建类MyWebConfig
    package myWeb;
    
    import javax.servlet.ServletContainerInitializer;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.HandlesTypes;
    import java.util.Set;
    
    @HandlesTypes(value = SpringWeb.class)
    public class MyWebConfig implements ServletContainerInitializer {
        @Override
        public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {
            System.out.println("sadsa");
            for (Class<?> aClass : set) {
                SpringWeb o = null;
                try {
                    o = (SpringWeb) aClass.newInstance();
                    o.config();
                } catch (InstantiationException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    View Code

    3、接口

    package myWeb;
    
    public interface SpringWeb {
        void config();
    }

    4、实现类

    package myWeb;
    
    public class SpringWebInitializer implements SpringWeb {
        //配置
        @Override
        public void config() {
            System.out.println("初始化");
        }
    }

    5、访问地址HttpServlet

    @WebServlet("/asd")
    public class ServletWeb extends HttpServlet {
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("Asdds");
        }
    }

    6、tomcat测试:

     

    demo:https://github.com/weibanggang/serviceWebConfig

  • 相关阅读:
    手头上的几本关于实现程序设计语言的书
    Ubuntu 16.04 搭建KVM环境
    调用RESTful GET方法
    Ubuntu 16.04 安装Docker
    Ubuntu 16.04安装Java 8
    SecureCRT 多个会话显示在同一窗口
    Ubuntu 16.04 安装Maven3.3.9
    Python标准类型的分类
    Ubuntu 16.04 更改apt源
    LVM术语及相互关系
  • 原文地址:https://www.cnblogs.com/weibanggang/p/10157030.html
Copyright © 2020-2023  润新知