2021-01-31


什么是Servlet

(1)Servlet是sun公司提供的一门用于开发动态web资源的技术。
  Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
  1、编写一个Java类,实现servlet接口。
  2、把开发好的Java类部署到web服务器中。
  按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。
(2) Servlet工作模式:
① 客户端发送请求至服务器
② 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器
③ 服务器将响应返回客户端


一、Servlet API

在这里插入图片描述

二、tomcat和servlet的关系

Tomcat 是Web应用服务器,是一个Servlet/JSP容器。Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。


三、第一个Servlet

  1. 创建一个MyServlet类实现Servlet接口,重写方法,或继承HttpServlet亦可。我们选择继承HttpServlet并重写doGet和doPost方法,也就是看请求的方式是get还是post,然后用不同的处理方式来处理请求。
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("get");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("post");
    }
}
  1. 在web.xml文档中配置映射关系。为什么需要配置?让浏览器发出的请求知道到达哪个servlet,也就是让tomcat将封装好的request找到对应的servlet让其使用。
<servlet>
    <servlet-name>aa</servlet-name> //自定义名称
    <servlet-class>com.web.MyServlet</servlet-class> //处理请求的类的完整路径
</servlet>
<servlet-mapping><!-- mapping 表示映射 -->
    <servlet-name>aa</servlet-name> //自定义名称
    <url-pattern>/MyServlet</url-pattern> //请求名,浏览器通过该url找到servlet
</servlet-mapping>
  1. 实验,验证上面配置成功。
    在这里插入图片描述

在这里插入图片描述

四、Servlet的生命周期

  • 当客户端首次发送第一次请求后,由容器(web服务器(tomcat))去解析请求, 根据请求找到对应的servlet,判断该类的对象是否存在,不存在则创建servlet实例,调取init()方法 进行初始化操作,初始化完成后调取service()方法,由service()判断客户端的请求方式,如果是get,则执行doGet(),如果是post则执行doPost().处理方法完成后,作出相应结果给客户端.单次请求处理完毕。*
  • 当用户发送第二次以后的请求时,会判断对象是否存在,但是不再执行init(),而直接执行service方法,调取doGet()/doPost()方法。*
  • 当服务器关闭时调取destroy()方法进行销毁。*
  • 四个过程:
    (1)实例化 --先创建servlet实例
    (2)初始化 --init()
    (3)处理请求 —service()
    (4)服务终止 --destory()
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值