JavaEE:Servlet创建和使用及生命周期介绍

简介: JavaEE:Servlet创建和使用及生命周期介绍

Servlet概述


•  Servlet是Server Applet的简称,意思是 用Java编写的服务器端的程序,Servlet被部署在服务器中,而服务器负责管理并调用Servlet.

 Servlet的作用 :

  1. 接收用户发送的请求
  2. 调用其他java程序进行处理
  3. 向前端做出响应

Servlet的创建和使用

•  自己创建一个类,并继承HttpServlet,这样我们的类也就遵守了JavaEE规范

•  重写父类中的方法

•  在web.xml文件中配置Servlet

 让类继承HttpServlet,并重写父类方法(也就是前两步)

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
 
/*
 创建Servlet:
 1. 自己创建一个类,并继承HttpServlet,这样我们的类也就遵守了JavaEE规范
 2. 重写父类中的方法
 3. 在web.xml文件中配置Servlet
 */
public class LoginServlet_back2 extends HttpServlet {
    @Override
    public void init() throws ServletException {
        System.out.println("init");
 
    }
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("service");
    }
 
    @Override
    public void destroy() {
        System.out.println("destory");
    }
 
}

 在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>
        <servlet-name>login</servlet-name> <!-- 为Servlet对象定义名称-->
<!--   配置Servlet类名,服务器启动时会创建此类的对象,只创建一次-->
        <servlet-class>webserver.servlet.LoginServlet_back2</servlet-class>
    </servlet>
<!--    为Servlet配置访问地址-->
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern> <!-- 前端访问地址,必须/开头-->
    </servlet-mapping>
 
</web-app>

🔖知识补充


xml文件: 也是属于一种标记语言,但与html不同,xml主要用来存储配置数据的


web.xml文件:存储当前项目配置信息,例如配置Servlet,过滤器,监听器...

                       此文件是服务器启动时由服务器读取,名字和位置不能修改!


▐ Servlet中方法介绍

无参构造:  用来初始化Servlet,可以不写,只被调用一次.


 init( ):      也是用来初始化Servlet的,在构造方法执行完毕后执行,只执行一次。


server( ):   多次被执行,是提供服务的.


destory( ):  在服务器关闭时调用.

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
 
public class LoginServlet_back2 extends HttpServlet {
    /*
     不写也会存在,只被调用一次/一个Servlet类只被创建一个对象
     什么时候调用:
     1. 第一次向Servlet程序发起请求时
     2. 服务器启动时创建,需要在web.xml中配置
     */
    public LoginServlet_back2() {
        System.out.println("无参构造方法");
    }
 
    /*
    也是用来初始化Servlet的在构造方法执行完毕后执行,只执行一次
    是Servlet规范中必须调用的方法,若不重写默认调用父类的init方法
     */
    @Override
    public void init() throws ServletException {
        System.out.println("init");
    }
 
    /*
    多次被执行,是提供服务的
    ServletRequest:前端发送的数据都被包装到此对象中
    ServletResponse:表示响应
     */
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("service");
    }
 
    /*
    在服务器关闭时调用
     */
    @Override
    public void destroy() {
        System.out.println("destory");
    }
 
}

 如果要服务器启动时就创建Servlet,需要在web.xml中配置 </load-on-startup>

<load-on-startup>1</load-on-startup>

Servlet的生命周期

通过对Servlet中方法的介绍,其实我们对它生命周期已然大致了解,那再总结下吧!

实例化:在第一次访问/服务器启动时创建,调用无参构造,只调用一次。(开始)

初始化:在构造方法被执行完后执行,可以不重写,会自动调用父类的 ,同样也只调一次。

服务:多次调用,每次请求都会调用service()

销毁:在服务器关闭时执行,执行一些必要的操作,只被调用一次。

相关文章
|
2月前
Servlet生命周期
Servlet生命周期
20 1
|
2月前
|
Java 数据库连接 容器
Servlet的生命周期
Servlet的生命周期
|
2月前
|
Java 数据库连接 容器
8:Servlet生命周期-Java Web
8:Servlet生命周期-Java Web
34 0
|
5天前
|
前端开发 应用服务中间件
servlet执行流程&生命周期
servlet执行流程&生命周期
|
7天前
Servlet的生命周期
Servlet的生命周期
12 2
|
12天前
|
Java
servlet生命周期面试题
servlet生命周期面试题
|
1天前
|
前端开发 Java 应用服务中间件
JavaEE:Servlet后端搭建部署 一条龙全教程
JavaEE:Servlet后端搭建部署 一条龙全教程
|
2月前
|
存储 Java 应用服务中间件
Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解(2)
Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解
28 2
|
2月前
|
Web App开发 XML Java
Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解(1)
Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解
37 2
|
2月前
|
XML 网络协议 Java
JavaEE精选-Servlet
JavaEE精选-Servlet
26 0