(1)概述

  • Server applet:运行在服务端的小程序
  • Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则
  • 将来我们自定义一个类,实现servlet的接口,复写方法

(2)基本使用

  • src下面新建HelloServlet.java ``` package com.code.web;

import javax.servlet.*; import java.io.IOException;

public class HelloServlet implements Servlet { @Override public void init(ServletConfig servletConfig) throws ServletException {

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

}

  1. - web.xml设置虚拟路径
  2. - servlet-class
  3. - servlet-name
  4. - url-pattern

<?xml version=”1.0” encoding=”UTF-8”?>

  1. <servlet>
  2. <servlet-name>HelloServlet</servlet-name>
  3. <servlet-class>com.code.web.HelloServlet</servlet-class>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>HelloServlet</servlet-name>
  7. <url-pattern>/hello</url-pattern>
  8. </servlet-mapping>

  1. <a name="es6oB"></a>
  2. ### (3)Servlet生命周期
  3. - 调用顺序
  4. - init()
  5. - 默认第一次访问的时候,执行一次
  6. - Servlet是单例,多个用户访问存在线程安全问题
  7. - 尽量不要在Servlet中成员变量,即使有也不要赋值
  8. - service()
  9. - 服务被调用时执行,可被多次调用
  10. - destroy()
  11. - Tomcat服务正常关闭时才会关闭

package com.code.web;

import javax.servlet.*; import java.io.IOException;

public class HelloServlet implements Servlet {

  1. /**
  2. * 被创建的时候,调用1次
  3. * @param servletConfig
  4. * @throws ServletException
  5. */
  6. @Override
  7. public void init(ServletConfig servletConfig) throws ServletException {
  8. System.out.println("init");
  9. }
  10. /**
  11. * 获取ServletConfig配置对象
  12. */
  13. @Override
  14. public ServletConfig getServletConfig() {
  15. System.out.println("getServletConfig");
  16. return null;
  17. }
  18. /**
  19. * 调用的时候,多次调用多次执行
  20. */
  21. @Override
  22. public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
  23. System.out.println("service");
  24. }
  25. @Override
  26. public String getServletInfo() {
  27. System.out.println("getServletInfo");
  28. return null;
  29. }
  30. /**
  31. * 销毁的时候,执行1次
  32. */
  33. @Override
  34. public void destroy() {
  35. System.out.println("destroy");
  36. }

}

  1. <a name="tOFc2"></a>
  2. #### load-on-startup
  3. - 修改init()是否在Tomcat服务启动时调用,正数代表Tomcat服务启动时启动,负数代表Tomcat服务启动时不启动
  1. <servlet>
  2. <servlet-name>HelloServlet</servlet-name>
  3. <servlet-class>com.code.web.HelloServlet</servlet-class>
  4. <load-on-startup>1</load-on-startup>
  5. </servlet>
  6. <servlet-mapping>
  7. <servlet-name>HelloServlet</servlet-name>
  8. <url-pattern>/hello</url-pattern>
  9. </servlet-mapping>

```