java框架 - Servlet基础框架

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

一,servlet定义

        Servlet(Server Applet)是Java Servlet的简称,称为服务器端小程序、小服务程序或服务连接器,是一种使用 Java 语言来开发动态网站的技术(用Java编写的服务器端程序),具有独立于平台和协议的特性,Servlet是sun公司提供的一门用于开发动态web资源的技术。Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
        1、编写一个Java类,实现servlet接口。(通常我们也把实现了servlet接口的java程序,称之为Servlet)
        2、把开发好的Java类部署到web服务器中。

        狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。即:
        1、Serviet是JavaEE规范之一。规范就是接口
        2、Servlet是JavaWeb三大组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。
        3、Servlet是运行在服务器上的一个 java小程序,它可以接收客户端发送过来的请求,并响应数据给客户端,是一种独立于操作系统和网络传输协议的服务器端的Java应用程序,用来拓展服务器的功能,生成动态的web页面。

注意:Servlet不是从命令行启动的,而是由包含Java虚拟机的Web服务器进行加载 ;(没有main方法)

二,Servlet实现过程

        最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:
         1、客户端发送请求至服务器端;
         2、服务器将请求信息发送至 Servlet;
         3、Servlet 生成响应内容并将其传给服务器。
         4、响应内容动态生成,通常取决于客户端的请求;服务器将响应返回给客户端。

        Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。因为是对象字节码,可动态地从网络加载,可以说 Servlet 对 Server 就如同 Applet对 Client 一样,但是,由于 Servlet 运行于 Server 中,它们并不需要一个图形用户界面。从这个角度讲,Servlet 也被称为 FacelessObject。

        一个 Servlet 就是 Java 编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然 Servlet 可以对任何类型的请求产生响应,但通常只用来扩展 Web 服务器的应用程序。

三,Servlet封装框架

        Java 可以处理 HTTP 请求、访问数据库、生成 HTML 代码,也可以完全使用原生 Java 来开发动态网站。但是,会非常麻烦,需要自己解析 HTTP 请求的报头,需要自己分析用户的请求参数,需要自己加载数据库组件,需要 ... 。(从零造轮子)

        正是基于这种原因,Java 官方后来推出了 Servlet 技术,它对开发动态网站需要使用的原生 Java API 进行了封装,形成了一套新的 API,称为 Servlet API。所以Servlet 基于 Java,可以使用几乎全部的 Java API,它的功能异常强大,完全可以胜任企业级开发,能够处理那些高并发、大吞吐量、业务逻辑复杂的应用场景。Servlet 规范其实就是对 HTTP 协议做面向对象的封装。

        Servlet 只是一套 Java Web 开发的规范,或者说是一套 Java Web 开发的技术标准。Servlet 规范是开放的,除了 Sun 公司,其它公司也可以实现 Servlet 规范,目前常见的实现了 Servlet 规范的产品包括 Tomcat、Weblogic、Jetty、Jboss、WebSphere 等,它们都被称为“Servlet 容器”。Servlet 容器用来管理程序员编写的 Servlet 类。

        Spring MVC 是基于 servlet API 构建的原始 web 框架,所以也可以使用原生的 Servlet API。简单的理解springmvc框架是对servlet的再封装和扩展。虽然已经用到servlet技术了,但是你写的代码都是springmvc的代码标准。

        Springboot本身默认封装了tomcat,所以本质上还是用到了servlet技术。只不过是通过框架继续使用。虽然已经用到servlet技术了,但是你写的代码都是新框架的代码标准。springboot是为了简化各个java框架之间的配置应运而生的。所以springboot不会特别要求开发者必须使用特定的框架组合。你既可以使用springframework、springmvc、mybatis;也可以使用springframework、springmvc、jpa等等等各种方案。

四,JSP

        Servlet 是第一代 Java Web 开发技术,它将 HTML 代码以字符串的形式向外输出,编写 HTML 文档就是在拼接字符串,非常麻烦,所以 Java 官方又推出了第二代 Web 开发技术——JSP

        JSP 才是现代化的 Web 开发技术,它允许 HTML 代码和 JSP 代码分离,让程序员能够在 HTML 文档中直接嵌入 JSP 代码。现在没有人直接使用 Servlet 开发动态网站,大家都转向了 JSP 阵营。但是 JSP 依赖于 Servlet,用户访问 JSP 页面时,JSP 代码会被翻译成 Servlet 代码,最终,HTML 代码还是以字符串的形式向外输出的。您看,JSP 只是在 Servlet 的基础上做了进一步封装。

         JSP 代码可以调用 Servlet 类,程序员可以将部分功能在 Servlet 中实现,然后在 JSP 中调用即可。

        总之,Servlet 是 JSP 的基础,Servlet 虽然不直接面向用户,但是它依然是 JSP 的后台支撑,想玩转 JSP,必须先玩转 Servlet。学习 JSP 的正确顺序是:Java --> Servlet --> JSP。

五,Servlet任务

Servlet 执行以下主要任务:

  • 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。
  • 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。
  • 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

六,Servlet组成

        一个最基本的 Java Web 项目使用所需的 jar 包只需要一个 servlet-api.jar ,这个 jar 是由2个包组成:javax.servlet和javax.servlet.http,在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类,在javax.servlet.http包中定义了支持HTTP通信协议的HttpServlet类工具类,Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。 

        Servlet 是 J2EE 最重要的一部分,J2EE 的其他方面的内容择需采用。而 Servlet 规范你需要掌握的就是 servlet 和 filter 这两项技术。绝大多数框架不是基于 servlet 就是基于 filter,如果它要在 Servlet 容器上运行,就永远也脱离不开这个模型。

        Servlet被设计成请求驱动(根据请求来调用Servlet)。Servlet的请求可能包含多个数据项,当Web容器接收到某个Servlet请求时,Servlet把请求封装成一个HttpServletRequest对象,然后把对象传给Servlet的对应的服务方法。

七,Servlet创有三种方式

直接实现 Servlet 接口比较麻烦,需要实现很多方法,所以 Servlet 规范又提供了两个抽象类,分别是 GenericServlet 类和 HttpServlet 类,它们都实现了 Servlet 接口的很多常用功能。和 GenericServlet 类相比,HttpServlet 类更加方便,所以实际开发中一般都继承自 HttpServlet 类。Servlet 简介 | 菜鸟教程

        1、实现 Servlet 接口
        2、继承 GenericServlet 类
        3、继承 HttpServlet 方法

八,Servlet工作原理

1. Servlet运行原理

        ①. WebApplication的标准目录结构:

                webapp/WEB-INF/classes 文件夹下是项目中用到的类文件,均由JDK编译成了.class文件

                webapp/WEB-INF/lib文件夹是我们项目中引用的jar包

                webapp/WEB-INF/Web.xmls是整个web应用程序的配置文档。

        ②. Tomcat解析URL

                a) 首先来看URL中包含的信息:”协议” + “端口号” + “路径(项目名称+文件路径)”

                        Tomcat启动后,监听我们的8080端口,当有Url请求发过来之后,解析出项目名称 abingtest,然后到webapps目录下搜索到该项目文件夹。

                b) 项目文件找到后,开始寻找类文件。

                        这个时候Tomcat去Web.xml文件中寻找 配置节中包含”servlet/FirstServlet”字符串,进而找到该类文件所在的位置。

        ③. Servelt中的doGet() 和 doPost() 方法

                我们写的FirstServlet 继承了HttpServlet ,重写了HttpServlet中的doGet() 方法,HttpServlet中还有一个doPost()方法。这两个方法都是用来处理Http请求的。Servlet会根据我们提交表单的方法 (method=post/get)调用service方法来自动选择。

2、一个servlet运行流程图:

java框架 - Servlet基础框架

九,Servlet容器

Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。
Servlet容器也称为JavaWeb应用容器,或者Servlet/JSP容器。
目前最流行的Servlet容器软件包括:Tomcat、Resin、J2EE服务器(如Weblogic)中也提供了内置的Servlet容器

十,Servlet生命周期

        Servlet 的生命周期主要为三个步骤初始化 init() 、业务处理 service() 、 销毁 destory(); 在Servlet接口中定义了5个方法,其中有3个方法代表了Servlet的生命周期。

  1、init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问  Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。

  2、service():它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”    (ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。

  3、destroy(): 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会  产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

java框架 - Servlet基础框架

java框架 - Servlet基础框架

十一,URL和httpHTTP和URL详细分析_行走在软件开发路上的人的博客-CSDN博客_url和http

        HTTP:(Hypertext transfer protocol)超文本传输协议,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。

        URL:(Uniform Resource Locator)统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。

        url和http不能混合而谈,二者是两码事,url是一种资源定位的规则符号,而http则是网络信息传递的其中一个协议,http打比方就像英语交流一样,ftp下载就像法语交流一样,每一个都对应相应的用途,而url则是规范网络主机的ip,域名的一套规则

        由以冒号隔开的两大部分组成,并且在 URL 中的字符对大写或小写没有要求。URL 的一般形式是:(主机部分可以是IP地址或者域名,如果是域名的话,域名最终会被域名服务器解析成IP地址)

java框架 - Servlet基础框架

         HTTP协议中的请求和响应就是对应了 HttpServletRequest 和 HttpServletResponse 这两个接口。可以通过 HttpServletRequest 来获取所有请求相关的信息,包括 URI、Cookie、Header、请求参数等等,别无它路。因此当你使用某个框架时,你想获取HTTP请求的相关信息,只要拿到 HttpServletRequest 实例即可。 

        而 HttpServletResponse接口是用来生产 HTTP 回应,包含 Cookie、Header 以及回应的内容等等。

 HTTP的请求方式包括DELETE、GET、OPTIONS、POST、PUT和TRACE,在HttpServlet类中分别提供了相应的服务方法,它们是doDelete()、doGet()、doOptions()、doPost()、doPut()和doTrace()。不过目前很多服务器只支持get和post请求,所以通常自定义的Servlet中只需要重写doPost和doGet方法即可。

十二,SpringBoot中使用Servlet的两种方式

1.方式一(使用注解)
2.方式二(定义配置类)

SpringBoot——SpringBoot中使用Servlet的两种方式_张起灵-小哥的博客-CSDN博客_springboot 添加servlet文章来源地址https://www.toymoban.com/news/detail-442604.html

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

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

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

相关文章

  • [JAVA EE]创建Servlet——实现Servlet接口笔记1

    创建Servlet的方式之一:实现servlet接口 servlet的生命周期: 1、实例化:创建servlet实例对象 2、初始化:调用init方法完成初始化工作 3、服务:调用service方法来处理用户请求 4、销毁:调用destroy方法来释放占用的内存资源 通过service方法处理用户的请求: 通过request(servletReque

    2024年02月03日
    浏览(46)
  • Servlet基础

    快速入门 创建maven web项目,导入Servlet依赖坐标: 同时在pom.xml文件里配置tomcat插件:   创建一个类,实现Servlet接口,重写方法(service),添加访问路径: 如果成功访问Servlet,控制台输出service方法下的信息。 运行并访问路径:  此时控制台输出:      Servlet由Web服务器创

    2023年04月08日
    浏览(32)
  • java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.http不存在 java: 程序包javax.servlet.annotation不存在

    一般是JDK里没有servlet.api这个jar包,没有扫描到。可以先从你的tomcat的lib包下找,但我的这个里面是没有的,但我之前下过所以可以直接拷贝 然后找到你的jdk位置,不知道自己jdk位置的可以按照一下步骤打开      复制路径然后从文件夹打开,然后塞入你的jar即可。然后再编

    2024年02月10日
    浏览(42)
  • Javaweb基础-tomcat,servlet

    properties配置文件: 由键值对组成 键和值之间的符号是等号 每一行都必须顶格写,前面不能有空格之类的其他符号 xml配置文件:(xml语法=HTML语法+HTML约束)xml约束-DTD /  Schema DOM4J进行XML解析:(jar包 dom4j.jar ) web项目标准文件结构(Tomcat/webapps下): app 本应用根目录 stat

    2024年02月19日
    浏览(50)
  • java:Servlet

    我们访问浏览器访问一个地址,最终是访问到了这个 java 类,而 java 是运行在 Tomcat 上的,所以 Tomcat 作为一个服务器会把这个访问地址指向这个类中,这个类就是 Servlet,Servlet 就是一个具有一定规范的类,具体规范后面会说。 创建JavaEE项目 定义一个类,实现Servlet接口 pub

    2024年02月11日
    浏览(48)
  • Java Servlet 技术

    一、Servlet 简介 Servlet 是 JavaEE 的规范之一,通俗的来说就是 Java 接口,将来我们可以定义 Java 类来实现这个接口,并由 Web 服务器运行 Servlet ,所以 TomCat 又被称作 Servlet 容器。 Servlet 提供了动态 Web 资源开发技术,一种可以将网页数据提交到 Java 代码,并且将 Java 程序的数

    2024年02月11日
    浏览(40)
  • java # Servlet

    Servlet是javaEE规范之一。规范就是接口。JavaWeb三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。Servlet是运行在服务器上的一个Java小程序,它可以接收客户端发送来的请求,并响应数据给客户端。 执行Servlet构造器方法(只在第一次创建Servlet程序会调用) 执行init初始

    2024年02月13日
    浏览(45)
  • Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Servlet

    缺少jar包 jar包冲突 先查看pom文件中是否引入了对应的依赖,如果没有的话,需要引入: 如果是从 Maven Repository 上面获取的依赖记得要 删除scop 这一行,我就是网上找了几百种方法,才发现是这个问题!

    2024年02月13日
    浏览(49)
  • Servlet:实现动态页面的技术,看我从头到尾带你穿过servlet基础的海洋,使君有所获,有所悟

    什么是servlet ? Servlet 是一种实现动态页面的技术 . 换句话说,servlet是 java为实现web开发 提供的一些规范,而想要去参与web开发的一些软件,就要满足servlet的规范,而 这些满足servlet规范的软件我们称其为web开发的中间件(tomcat是一个常用的servlet容器) ,tomcat就是其中比较

    2024年02月06日
    浏览(46)
  • java: 无法访问jakarta.servlet.ServletContext 找不到jakarta.servlet.ServletContext的类文件

    今天在学习springmvc的时候发现了一个关系冲突的问题,首先我不是大神,我只是一个初学者。 问题是由javax和jakerta引出来的。我的tomcat版本是9,jdk是17,spring是6.0.11,然后tomcat9使用的应该还是javax,但是在使用spring自己封装好的WebApplicaitonUtils的  getWebApplicationContext方法去优

    2024年02月04日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包