1.servlet的概述

  a.什么是servlet

    --servlet是javaWeb的三大组件(Listener,Filter)之一,他属于动态资源

    --servlet的作用是(10086): 服务器会把接收到的请求交给servlet来处理,接收请求数据, 处理请求, 完成响应

  b.实现servlet的方式(三种):每一个servlet都直接或间接的实现了servlet接口

    --实现javax.servlet.Servlet 接口

    --继承javax.servlet.GenericServlet 抽象类

    --继承javax.servlet.http.HttpServlet 抽象类(通常会继承HttpServlet)

2.servlet接口

  a.servlet的生命周期

      --Servlet接口中的5个方法(其中生命周期方法占3个)

        所谓xxx的生命周期,就是说xxx的出生、服务、死亡,servlet的生命周期也是如此

        -- void init(ServletConfig config)

        -- void service(ServletRequest req, ServletResponse resp)

        -- void destory()

        -- void getServletConfig()

        -- String getServletInfo() 没用

      (1)servlet的出生

        默认情况下,servlet是在第一次被访问的时候,由服务器创建

        还有也可以在web.xml中的<servlet>元素下<load-on-startup>配置一个大于0的整数!!!,就可以让它随着服务器的启动而创建,而且一个servlet类型

        服务器只创建一个实例对象(单列模式),在servlet被创建后,服务器马上会调用init(servletConfig config)方法,一个servlet一生只能调用一次,

        所以我们可以把一些初始化的工放到init方法中去

      (2)servlet的服务

        当服务器每次接收到请求后,都会去调用servlet的service方法来处理请求,服务器接收到一次请求

        就会去调用一次service方法一次,所以servic方法是会被调用多次的,正因为如此,所以我们把需要把 

        处理请求的代码写到service()方法中

      (3)Servlet的离去

        在服务器被关闭时,服务器会去销毁Servlet,在销毁Servlet之前服务器会先去调用Servlet的destory()

        方法,我们可以把Servlet的遗言放在destory()方法中,例如对某些资源的释放可以放到destory()中

  b.Servlet接口中的ServletConfig接口

    ServletConfig接口是对应web.xml中的<servlet>元素,它下面的内容都可以通过如下方法获取到

    1.getInitParameter(String name)

    2.Enumeration getInitParameterNames()

    3.getServletName()

    4.getServletContext()  获取servlet上下文

3.GenericServlet概述

  GenericServlet是Servlet接口的实现类

  对下面这段的话的理解,可以去看看GenericServlet的源码,它自己有一个没有带参数的init()方法

  GenericServlet的init()方法

  在GenericServlet中,定义了一个ServletConfig config实例变量,他是在从Servlet接口实现的init(ServletConfig   config)生命周期方法,把参数ServletConfig赋给了实例变量,然后在该类的很多方法使用了实例变量config

  如果子类覆盖了GenericServlet的init(ServletConfig)方法,那么this config = config,这条语句就会被覆盖了

  也就是说GenericServlet的实例变量的值为null,那么所有依赖config的方法都不能使用了,如果真的希望完成一些

  初始化操作,那么去覆盖GenericServlet中的无参的init()方法,他会在init(ServletConfig)中被调用

  GenericServlet还实现了ServletConfig接口,所以可以直接调用getInitParameter(), getServletContext()等

  ServletConfig接口中的方法

4.HttpServlet概述

  HttpServlet抽象类是GenericServlet抽象类的子类,他提供了对http请求的支持,所以我们通过继承HttpServlet

  来完成自定义的servlet

  (1)HttpServlet覆盖了service()方法

  HttpServlet类中提供了service(HttpServletRequest,HttpServletResponse)方法,这个方法是HttpServlet自己的

  方法,不是从Servlet继承来的,在HttpServlet的service(ServletRequest,ServletResponse)方法中会把这两个参数

  强转为HttpServletRequest,HttpServletResponse,然后再调用本类自己的 

  service(HttpServletRequest,HttpServletResponse)方法,这说明继承HttpServlet的子类,去覆盖

  service(HttpServletRequest,HttpServletResponse)方法即可,这就不用自己强转请求和响应对象了

  其实子类也不用去覆盖service(HttpServletRequest,HttpServletResponse)方法

  因为HttpServlet还要做另一步简化操作就是doGet()和doPost()了

  (2)doGet()和doPost()

  在HttpServlet的service(HttpServletRequest,HttpServletResponse)方法会判断当前请求是get还是

  post,如果是get请求,那么会去调用本类的doGet()方法,如果是post请求则会调用doPost()方法,

  这说明我们在子类中去覆盖doGet()或doPost()方法即可

 

    

day04-Servlet介绍(1)的更多相关文章

  1. Servlet介绍(一)

    Servlet介绍(一) Servlet是一个执行在webserver上的小的Java程序,它通过接收和响应webclient的请求.在tomcatserver中有已经帮我们实现好了Servlet接口 ...

  2. Servlet(1):Servlet介绍

    一. Servlet介绍 Servlet 是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生 ...

  3. Java 之 Servlet介绍(Java之负基础实战)

    1.介绍 Servlet是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了 ...

  4. Servlet介绍以及简单实例

    一.背景介绍: HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收 HTM ...

  5. 1.Servlet介绍 和 HTTP协议简述

    1. Servlet是什么? sun公司制订的一种用来扩展web服务器功能的组件规范. (1)扩展web服务器功能 注: 早期的web服务器只能处理静态资源的请求,即需要事先将 html文件准备好,并 ...

  6. JAVA记录-Servlet介绍

    1.什么是Servlet Servlet是sun公司提供的一门用于开发动态web资源的技术.Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  7. Servlet 介绍

    JSP 的本质就是 Servlet,开发者把编写好的 JSP 页面部署在 Web 容器中后,Web 容器会将 JSP 编译成对应的 Servlet. Servlet 的开发 Servlet 是个特殊的 ...

  8. servlet介绍

    1.首先说Servlet API:servlet的命名:server+applet Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http. 在 ...

  9. JSP学习笔记(5)——Servlet、监听器、过滤器、MVC模式介绍

    MVC模式 在讲解Servlet前,先介绍一下MVC模式. M:model 模型,相当于数据层,用于存放数据,如一个Java中的一个bean类 V:view 视图,相当于页面层,用于显示数据,如一个网 ...

  10. JSP/Servlet相关

    1 简介 JSP(Java Server Page)和Servlet是JavaEE规范的两个基本成员,是JavaWeb开发的重点. JSP的本质是Servlet,当用户向指定的Servlet发送请求时 ...

随机推荐

  1. C# 面试知识点网络文档整理

    一 C# .NET技术 1.ASP.NET MVC如何控制权限? 2.C#.NET中的CTS.CLS和CLR? 3.什么是多线程,如何创建和如何使用?请写一个多线程单例模式? 4.什么是单例模式? 5 ...

  2. Exp1 PC平台逆向破解 20164311

    实验目标: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getSh ...

  3. 尚硅谷springboot学习36-自定义starter

    自定义一个starter要引一个依赖,即我们自己写的自动配置,在这个自动配置里写我们的自动配置类,属性类等 自动配置类开始类似这样 @Configuration //指定这个类是一个配置类 @Cond ...

  4. 恢复oracle 11g 的System及sys用户的密码

    进入E:\app\orcl\product\11.2.0\dbhome_1\database目录下找到PWDorcl.ora备份后删除文件,orcl是数据库的实例名 以管理员身份打开cmd,执行 or ...

  5. 【读书笔记】Segment Routing基础

  6. 20175213 2018-2019-2 《Java程序设计》第7周学习总结

    教材学习内容总结 (1)String (char a[])用一个字符数组a创建一个String对象. (2)String(char a[],int startIndex,int count) 提取字符 ...

  7. Linux实操篇

    一:用户管理.群组管理 增: 1.指定群组添加账户: groupadd test 创建test用户组useradd -g test(用户组) xiaoming(用户名)       ---- 创建us ...

  8. flex-grow,flex-shrink,flex-basis及flex

    flex-grow:默认值0:分配剩余空间的扩张比例: flex-basis:默认值auto:倘若设置了此属性,那么计算剩余空间之前要优先减去此属性,且它的层级比width高,会将width覆盖. 有 ...

  9. Codeforces Round #436 D. Make a Permutation!

    题意:给你n个数字,其中可能有相同的数字,要求你用其他的数字替换这些相同的数字,使得所得的序列字典序最小. Examples Input 43 2 2 3 Output 21 2 4 3 Input ...

  10. aop原理及理解

    概念 Aspect Oriented Programming,面向切面编程,实际上它是一个规范.一种设计思路,总之是抽象的. 先上图 使用目的 从项目结构上来说 对业务逻辑的各个部分进行隔离,降低业务 ...