J2EE--Servlet

2020-08-17  本文已影响0人  RicherYY
  1. 什么是Servlet?
  2. 如何使用Servler?
  3. Servlet生命周期
  4. Servlet方法体系
  5. Servlet3.0 注解

1. 什么是Servlet?

image.png

2. 如何使用Servler?

Servlet 本身不能独立运行,需要在一个web应用中运行的,而一个web应用是部署在tomcat中的。

所以开发一个servlet需要如下几个步骤:

  1. 创建普通的java类并继承HTTPServlet
  2. 覆写service方法
  3. 在service方法中书写逻辑代码
  4. 在webapp下的WEB-INF文件夹下的web。xml文件中配置servlet

示例代码 (前三步)

package servlet;

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

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

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("hello,Servlet");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

示例代码(配置xml)

<?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>demo</servlet-name>
        <servlet-class>servlet.ServletDemo</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>demo</servlet-name>
        <url-pattern>/demo</url-pattern>
    </servlet-mapping>
    
</web-app>

运行项目地址

image.png

控制台打印输出结果

image.png

解释:


3.Servlet 生命周期

  1. 加载Servlet类。
  2. 创建Servlet实例。调用Servlet类的init()方法。
  3. 调用Servlet类的service()方法。
  4. 调用Servlet类的destroy()方法

Servlet 生命周期流程图

Servlet生命周期.png

如上图所显示,servlet有三种状态模式:新建、就绪、结束

分步骤解释生命周期

3.1 加载Servlet类

访问方式 <load-on-startup>
第一次被访问时创建 负数
在服务器启动时创建 0或正整数

3.2 创建Servlet实例

3.3 调用init方法

它是javax.servlet.Servlet接口的生命周期方法。init方法的语法如下:

public void init(ServletConfig config) throws ServletException

3.4 调用service方法

Servlet接口的service方法的语法如下:

public void service(ServletRequest request, ServletResponse response)   
  throws ServletException, IOException

3.5 调用destroy方法

Servlet接口的destroy方法的语法如下:

public void destroy()
  • servlet仅初始化一次
  • Servlet的init方法,只执行一次,说明一个Servlet在内存中只存在一个对象,Servlet是单例的
    多个用户同时访问时,可能存在线程安全问题。
    解决:尽量不要在Servlet中定义成员变量。即使定义了成员变量,也不要对修改值

4.Servlet体系介绍

image.png image.png doPOST.png

5.Servlet3.0 注解

上一篇 下一篇

猜你喜欢

热点阅读