Servlet入门基础(知识点笔记)

Servlet(笔记知识点)

  1. Servlet概述
  2. 执行原理
  3. 配置
  4. 生命周期

Servlet

Servlet全称server applet(java Servlet),用于java编写的服务器程序。主要功能未交互式地浏览和修改数据,生成动态地Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。
Servlet运行于支持Java的应用服务器中,用来扩展基于HTTP协议的Web服务器。

执行原理

1.客户端发送一个http协议至服务器让其接收响应信息
2.服务器启动调用servlet,servlet根据http请求生成响应内容并传给服务器
3.服务器将响应放回给客户端展示

在这里插入图片描述
编写一个servlet步骤:

  • 定义一个类,实现Servlet接口(或继承HttpServlet)

  • 实现接口中的抽象方法(覆写doPost()和doGet)

  • 配置Servlet
    在这里插入图片描述

    为了不覆盖不需要的方法,简便代码书写,方便程序员编写,就有了HttpServlet,HttpServlet在应用程序中被广泛使用。
    HttpServlet抽象类是继承于GenericServlet抽象类而来的,而GenericServlet又实现了Servlet和ServletConfig接口。使用HttpServlet抽象类时,还需要借助分别代表Servlet请求和Servlet响应的HttpServletRequest和HttpServletResponse对象。

代码实现如下:

package cn.sunzoom.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/ServletDemo2")
public class ServletDemo2 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().write("<h1>hello world</h1>");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

浏览器访问
在这里插入图片描述
输出:
在这里插入图片描述

配置

两种配置方法:

  1. 在web.xml中配置
  <!--配置Servlet-->
    <servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>cn.srgzoom.web.servlet.ServletDemo1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>
  1. 用注释来配置
    @WebServlet() -------Servlet3.0之后支持注解配置
    @WebServlet("/demo1")

生命周期

(Servlet生命周期的三个方法:init(),servive(),destroy())

  1. init():当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,我们可以利用init( )方法来执行相应的初始化工作。
  2. service( ):每当请求Servlet时,Servlet容器就会调用这个方法。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。
  3. destory():当要销毁Servlet时,Servlet容器就会调用这个方法,在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。
package cn.sunzoom.servlet;

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

public class ServletDemo1 implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("Servlet初始划.....");
    }

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

    @Override
    public void destroy() {
        System.out.println("Servlet销毁......");
    }

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

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

运行结果顺序如下:
在这里插入图片描述
运行结果

参考https://blog.csdn.net/qq_19782019/article/details/80292110

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Davin Sun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值