1.新建servlet继承类
2.web.xml配置servlet
3.访问servlet
4.生命周期
1.新建servlet继承类
2.web.xml配置servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>servlet2</servlet-name> <servlet-class>com.jack.servlet2</servlet-class> <!-- 默认值-1,每次访问时创建 --> <!-- 正数1,服务器启动时创建 --> <!--<load-on-startup>-1</load-on-startup>--> <!--<load-on-startup>1</load-on-startup>--> </servlet> <servlet-mapping> <servlet-name>servlet2</servlet-name> <url-pattern>/demo2</url-pattern> </servlet-mapping> </web-app>
3.访问servlet
4.4.
4.生命周期
init 执行一次
service 每次访问都执行
destroy 中断部署后执行1次。说明只有1个对象被创建。
存在线程安全问题,所以尽量不定义类的成员变量,尽量在service方法内声明,局部变量。
定义了成员变量,不要修改值,可获取。
init1 hello,servlet hello,servlet hello,servlet destroy1
package com.jack; import javax.servlet.*; import java.io.IOException; public class servlet2 implements Servlet { private int Age = 0; @Override public void init(ServletConfig servletConfig) throws ServletException { System.out.println("init1"); } @Override public ServletConfig getServletConfig() { return null; } @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("hello,servlet"); //Age=2; //存在线程安全,成员变量,不修改,只获取 System.out.println("成员变量age:" + Age); //我只获取成员变量,不修改 } @Override public String getServletInfo() { return null; } @Override public void destroy() { System.out.println("destroy1"); } }