一. servlet 3.0 的使用
1.1 环境搭建:
servlet跟spring没有任何关系,我创建一个servlet可以不依赖spring,现在搭建一个纯的servlet项目,并实现简单的类似springMVC的功能:
引入依赖:
<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>8.0.1</version> <scope>provided</scope> </dependency>
项目的结构:
1.2 servlet的创建方式:
自己创建的servlet可以直接实现Servlet接口,也可以继承HttpServlet
public class DispatcherServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().write("test"); } }
配置路径映射的三种方式:
方式1: 在web.xml中配置:
方式2: servlet3.0的方式,使用注解实现
方式3: 通过servletContex来注册:这里要用到servlet的3.0的一个SPI规范: tomcat容器在启动时,会找到类路径下: META-INF/services/javax.servlet.ServletContainerInitializer 这个文件,文件名是固定的,为ServletContainerInitializer类的全限定类名,
文件里面的内容,为实现ServletContainerInitializer该接口的类的全限定类名,tomcat会调用该类的onStartup方法:
那么我们可以定义一个类来实现它:
然后在类路径下:
原文:https://www.cnblogs.com/yangxiaohui227/p/13187719.html