java servlet 基础

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");
    }
}

 

posted on 2020-04-12 08:35  biind  阅读(138)  评论(0编辑  收藏  举报