1. 因为servlet是一个接口,所以要想实现Servlet功能,需要实现Servlet接口,实现接口后还要重写该接口的所有抽象方法 ```java import javax.servlet.*; import java.io.IOException;

public class test implements Servlet {

  1. @Override
  2. public void init(ServletConfig servletConfig) throws ServletException {
  3. }
  4. @Override
  5. public ServletConfig getServletConfig() {
  6. return null;
  7. }
  8. @Override
  9. public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
  10. System.out.println("helloServlet");
  11. }
  12. @Override
  13. public String getServletInfo() {
  14. return null;
  15. }
  16. @Override
  17. public void destroy() {
  18. }

}

  1. 其中的service方法是最主要的,我令这个方法在控制台打印一句话。
  2. 2. 接下来,需要到web项目中的web.xml文件中配置Servlet程序
  3. ```java
  4. <!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
  5. <servlet>
  6. <!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
  7. <servlet-name>HelloServlet</servlet-name>
  8. <!--servlet-class 是 Servlet 程序的全类名-->
  9. <servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>
  10. </servlet>
  11. <!--servlet-mapping 标签给 servlet 程序配置访问地址-->
  12. <servlet-mapping>
  13. <!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用--><servlet-name>HelloServlet</servlet-name>
  14. <!--url-pattern 标签配置访问地址 <br/>
  15. / 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径<br/>/hello 表示地址为:http://ip:port/工程路径/hello <br/>
  16. -->
  17. <url-pattern>/hello</url-pattern>
  18. </servlet-mapping>
  1. 启动Tomcat(服务器)

image.png

  1. 具体的访问原理如下:

image.png

  1. Servlet 的生命周期

1、执行 Servlet 构造器方法
2、执行 init 初始化方法
第一、二步,是在第一次访问,的时候创建 Servlet 程序会调用。
3、执行 service 方法
第三步,每次访问都会调用。
4、执行 destroy 销毁方法
第四步,在 web 工程停止的时候调用。

通过继承Servlet子类(HttpServlet)实现Servlet程序

在实际开发过程中,很少用实现Servlet接口的方法实现Servlet程序,一般是通过继承Servlet的子类—-HttpServlet,来实现Servlet程序
image.png
1、编写一个类去继承 HttpServlet 类
2、根据业务需要重写 doGet 或 doPost 方法
、到 web.xml 中的配置 Servlet 程序的访问地址

  1. public class HelloServlet2 extends HttpServlet {
  2. /**
  3. * doGet()在 get 请求的时候调用
  4. * @param req
  5. * @param resp
  6. * @throws ServletException
  7. * @throws IOException
  8. */
  9. @Override
  10. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
  11. System.out.println("HelloServlet2 的 doGet 方法");
  12. }
  13. /**
  14. * doPost()在 post 请求的时候调用
  15. * @param req
  16. * @param resp
  17. * @throws ServletException
  18. * @throws IOException
  19. */
  20. @Override
  21. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,IOException {
  22. System.out.println("HelloServlet2 的 doPost 方法");
  23. }
  24. }

使用 IDEA创建Servlet程序

需要注意的一点是,创建完以后还需要到web.xml中配置mapping

Servlet的继承体系

image.png