JavaWeb-Servlet【内含思维导图】

这篇具有很好参考价值的文章主要介绍了JavaWeb-Servlet【内含思维导图】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Servlet思维导图​编辑

1.什么是Servlet

2.Servelt概述

3.Servlet-Quickstart Your Project

3.1创建一个Web项目,导入Servlet依赖

3.1.1 选择Servlet导入依赖      

3.1.2 导入Servlet依赖

3.2 在Web项目,定义类,实现Servlet接口,并重写其方法

 3.2.1 Servlet 方法介绍

4. Servlet 执行流程

 5. Servlet 生命周期

6. Servlet 生命周期

6.1 HttpServlet 原理

6.2 HttpServlet 使用步骤

7.Servlet urlPattern配置

 7.1.一个Servlet,可以配置多个 urlPattern

7.2 urlPattern 配置规则


Servlet思维导图

1.什么是Servlet

【摘自百度百科】        

        Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
        狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
        最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

2.Servelt概述

        Servlet:Java提供的一门动态web资源开发技术

        Servlet 是JavaEE 规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet

JavaWeb-Servlet【内含思维导图】

        Defines methods that all servlets must implement. 
        A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP, the HyperText Transfer Protocol. 

        To implement this interface, you can write a generic servlet that extends javax.servlet.GenericServlet or an HTTP servlet that extends javax.servlet.http.HttpServlet.

        定义所有servlet必须实现的方法。

        servlet是一个在Web服务器中运行的小型Java程序。Servlet通常通过HTTP(超文本传输协议)接收和响应来自Web客户端的请求。

        为了实现这个接口,您可以编写一个扩展javax.servlet.GenericServlet的通用servlet,或者编写一个延伸javax.servlets.HTTP.HttpServlet的HttpServlet。

3.Servlet-Quickstart Your Project

        前置知识:JavaEE 、Maven、Tomcat

3.1创建一个Web项目,导入Servlet依赖

JavaWeb-Servlet【内含思维导图】3.1.1 选择Servlet导入依赖      

        可以先去Maven厂库,查询Servlet的依赖

        Mevam厂库官网:https://mvnrepository.com/

JavaWeb-Servlet【内含思维导图】

 JavaWeb-Servlet【内含思维导图】

发现,Servlet的依赖,目前 Servlet依赖版本的3.0.1 、3.1.0、4.0.1的使用次数最多,我们就在这3个版本选择其中一个即可

3.1.2 导入Servlet依赖

        以导入Servlet 3.1.0的版本为例

JavaWeb-Servlet【内含思维导图】

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

3.2 在Web项目,定义类,实现Servlet接口,并重写其方法

        以Serlvet的service()方法为例

JavaWeb-Servlet【内含思维导图】

 3.2.1 Servlet 方法介绍

        初始化方法,在Servlet被创建时执行,只执行一次

void init(ServletConfig config) 

        提供服务方法, 每次Servlet被访问,都会调用该方法

void service(ServletRequest req, ServletResponse res)

        销毁方法,当Servlet被销毁时,调用该方法。在内存释放或服务器关闭时销毁Servlet

void destroy()

        获取ServletConfig对象

ServletConfig getServletConfig()

        获取Servlet信息

String getServletInfo()

4. Servlet 执行流程

JavaWeb-Servlet【内含思维导图】

 5. Servlet 生命周期

Servlet 生命周期:对象的生命周期指一个对象从被创建到被销毁的整个过程 

       

        Servlet运行在Servlet容器(web服务器)中,其生命周期由容器来管理,

分为4个阶段: 加载和实例化 、初始化、请求处理、服务终止

        1.加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象

        2.初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次

        3.请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理。

        4.服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收

6. Servlet 生命周期

JavaWeb-Servlet【内含思维导图】

         开发B/S架构的web项目,都是针对HTTP协议,所以我们自定义Servlet,会继承HttpServlet

6.1 HttpServlet 原理

        HTTP的请求方式包括DELETE,GET,OPTIONS,POST,PUT和TRACE,在HttpServlet类中分别提供了相应的服务方法,它们是,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace().
    HttpServlet容器响应Web客户请求流程如下:
        1)Web客户向Servlet容器发出Http请求;
        2)Servlet容器解析Web客户的Http请求;
        3)Servlet容器创建一个HttpServletRequest对象(继承于ServletRequest),在这个对象中封装Http请求信息;
        4)Servlet容器创建一个HttpServletResponse对象;
        5)Servlet容器调用HttpServlet的service方法,把HttpServletRequest和HttpServletResponse对象作为service方法的参数传给HttpServlet对象;
        6)HttpServlet调用HttpServletRequest的有关方法,获取HTTP请求信息;
        7)HttpServlet调用HttpServletResponse的有关方法,生成响应数据;
        8)Servlet容器把HttpServlet的响应结果传给Web客户。

        HTTP 协议中,GET 和 POST 请求方式的数据格式不一样,将来要想在Servlet中处理请求参数,得在service方法中判断请求方式,并且根据请求方式的不同,分别进行处理

6.2 HttpServlet 使用步骤

       1. 继承HttpServlet

       2.重写doGet和doPost方法

JavaWeb-Servlet【内含思维导图】

7.Servlet urlPattern配置

         Servlet 要想被访问,必须配置其访问路径(urlPattern)

源码分析 

JavaWeb-Servlet【内含思维导图】

7.1.一个Servlet,可以配置多个 urlPattern

//一个Servlet,可以配置多个 urlPattern
@WebServlet(urlPatterns={"/HttpServletDemo5","/HttpServletDemo6","/HttpServletDemo7"} )


public class HttpServletDemo5 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("/HttpServletDemo5 , /HttpServletDemo6");
    }

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

7.2 urlPattern 配置规则

JavaWeb-Servlet【内含思维导图】

/**
 * 精确匹配
 * 访问路径:http://localhost:8080/JavaWeb_Servlet_Demo/HttpServletDemo5
 */
@WebServlet("/HttpServletDemo5")

/**
 * 目录匹配
 * 访问路径:http://localhost:8080/JavaWeb_Servlet_Demo/HttpServletDemo5
 *         http://localhost:8080/JavaWeb_Servlet_Demo/HttpServletDemo6
 *         http://localhost:8080/JavaWeb_Servlet_Demo/HttpServletDemo7
 */
@WebServlet("JavaWeb_Servlet_Demo/*")

/**
 * 扩展名匹配
 * 访问路径:http://localhost:8080/JavaWeb_Servlet_Demo/aaa.do
 *         http://localhost:8080/JavaWeb_Servlet_Demo/bbb.do
 *         http://localhost:8080/JavaWeb_Servlet_Demo/ccc.do
 */
@WebServlet("*.do")

/**
 * 任意匹配
 * 访问路径:http://localhost:8080/JavaWeb_Servlet_Demo/abc
 *         http://localhost:8080/JavaWeb_Servlet_Demo/qwe
 *         http://localhost:8080/JavaWeb_Servlet_Demo/zxc
 *         
 *  / 和 /* 区别:
 * 当项目中的Servlet配置了“/”,会覆盖掉tomcat中的DefaultServlet,当其他的 url-pattern都匹配不上时都会走这个Servlet
 * 当项目中配置了“/*”,意味着匹配任意访问路径
 */
@WebServlet("/*")
@WebServlet("/")

/**
 * 优先级:
 *        精确路径 > 目录路径 > 扩展名路径 > /* > /
 */

感谢关注

未完,待更新文章来源地址https://www.toymoban.com/news/detail-431709.html

到了这里,关于JavaWeb-Servlet【内含思维导图】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微服务-Elasticsearch基础篇【内含思维导图】

    Elasticsearch官网:欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastic 注意:Elasticsearch官网访问和加载的耗时很长!!! Lucene官网:Apache Lucene - Welcome to Apache Lucene 目录 一、Elasticsearch入门 1. Elasticsearch介绍 2. Lucene介绍 3. 什么是Elasticsearch 4. 什么是elastic stack(ELK)? 5. 什

    2024年02月08日
    浏览(58)
  • 【数据结构】八大排序算法(内含思维导图和画图分析)

    作者主页: paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将javaSE基础知识一网打尽,希望可以帮到读者们哦。 其他专栏:

    2024年02月08日
    浏览(62)
  • Java—JDK8新特性—Lambda表达式【内含思维导图】

    目录 JDK8新特性 2.Lambda表达式 思维导图 2.1 什么是Lambda表达式 2.2 为什么使用Lamdba表达式 2.3 Lambda表达式基本语法 2.4 类型推断 2.5 Lambda练习 2.6 Lambda常用场景         官网提供网址:JDK 8 Features         Lamdba是一个 匿名函数 ,可以把Lamdba表达式理解为是一段可以传递的

    2024年02月03日
    浏览(47)
  • 思维导图怎么做?一份完整的思维导图绘制教程来了!

    在信息爆炸的时代,如何高效地整理和消化信息是每个人都需要面对的问题。思维导图作为一种能够高效组织和呈现信息的工具,凭借其直观、易理解的特性,备受学生、教师、企业管理者、商业团队等许多人的青睐。那么,如何制作思维导图呢?让我们一起来看看。 思维导

    2024年02月15日
    浏览(37)
  • Ribbon学习思维导图

    参考资料 1、OpenFeign与Ribbon源码分析总结与面试题 2、万字剖析OpenFeign整合Ribbon实现负载均衡的原理 3、扒一扒Nacos、OpenFeign、Ribbon、loadbalancer组件协调工作的原理 4、OpenFeign原来是这么基于Ribbon来实现负载均衡的

    2024年02月03日
    浏览(56)
  • 英语语法基础--思维导图

    思维导图通常用于可视化和整理信息,而英文语法非常广泛且复杂,无法在一个简单的思维导图中完整表示。然而,我可以提供一个简化版本的英文语法思维导图,列出一些主要的语法概念和部分示例。 请注意,这只是一个基本的概述,英文语法要复杂得多。以下是思维导图

    2024年02月09日
    浏览(42)
  • 高等数学(下)思维导图

    2024年02月11日
    浏览(61)
  • 操作系统思维导图

    复习提纲 1.操作系统的作用 1.用户和计算机硬件系统之间的接口 2.计算机系统资源的管理者 3.实现对计算机资源的抽象 2.操作系统的种类 1.单道批处理系统 2.多道批操作系统 3.分时系统 4.实时系统 3.操作系统的基本特性 1.并发 2.并行 3.共享 1.互斥访问 2.同时访问 4.虚拟 5.异步

    2024年02月07日
    浏览(44)
  • vue实现思维导图

    介绍 前景: 仿幕布实现思维导图效果 技术实现: jsmind 完整代码 :vue-jsmind 参考文章: 在vue中使用jsmind组织架构或思维导图 实现效果: 功能描述: 编辑、删除、插入、拖拽、展开/收起节点 分布结构切换(向左、向右和两边分布) 节点类型筛选 导出图片 鼠标左键拖拽 缩

    2023年04月13日
    浏览(58)
  • java思维导图 - -13张思维导图带你快速入门 --

    java!!!!!!!!! 13张思维导图带你快速入门 --满满干货(建议收藏) –怒肝一周,只求一赞!!! 囊括了java大部分的知识点,今天分享给大家,希望能帮助到各位友友! 分为电脑端和手机端! 手机端隐藏了部分分支,便于观看 电脑端是完整版,根据需求自行选择。

    2024年02月02日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包