首页 > 其他分享 >Servlet学习

Servlet学习

时间:2022-10-31 22:44:59浏览次数:30  
标签:容器 调用 对象 servlet 方法 学习 Servlet

什么是Servlet     Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。     Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 Servlet的工作模式   客户端发送请求至服务器 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 服务器将响应返回客户端 Servlet API 概览     Servlet API 包含以下4个Java包: 1.javax.servlet   其中包含定义servlet和servlet容器之间契约的类和接口。 2.javax.servlet.http   其中包含定义HTTP Servlet 和Servlet容器之间的关系。 3.javax.servlet.annotation   其中包含标注servlet,Filter,Listener的标注。它还为被标注元件定义元数据。 4.javax.servlet.descriptor,其中包含提供程序化登录Web应用程序的配置信息的类Servlet 的使用方法 Servlet技术的核心是Servlet,它是所有Servlet类必须直接或者间接实现的一个接口。在编写实现Servlet的Servlet类时,直接实现它。在扩展实现这个这个接口的类时,间接实现它。 Servlet 的工作原理      Servlet接口定义了Servlet与servlet容器之间的契约。这个契约是:Servlet容器将Servlet类载入内存,并产生Servlet实例和调用它具体的方法。但是要注意的是,在一个应用程序中,每种Servlet类型只能有一个实例。      用户请求致使Servlet容器调用Servlet的Service()方法,并传入一个ServletRequest对象和一个ServletResponse对象。ServletRequest对象和ServletResponse对象都是由Servlet容器(例如TomCat)封装好的,并不需要程序员去实现,程序员可以直接使用这两个对象。     ServletRequest中封装了当前的Http请求,因此,开发人员不必解析和操作原始的Http数据。ServletResponse表示当前用户的Http响应,程序员只需直接操作ServletResponse对象就能把响应轻松的发回给用户。     对于每一个应用程序,Servlet容器还会创建一个ServletContext对象。这个对象中封装了上下文(应用程序)的环境详情。每个应用程序只有一个ServletContext。每个Servlet对象也都有一个封装Servlet配置的ServletConfig对象。 public interface Servlet {     void init(ServletConfig var1) throws ServletException;       ServletConfig getServletConfig();       void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;       String getServletInfo();       void destroy(); } Servlet 的生命周期 其中,init( ),service( ),destroy( )是Servlet生命周期的方法。代表了Servlet从“出生”到“工作”再到“死亡 ”的过程。Servlet容器(例如TomCat)会根据下面的规则来调用这三个方法:   1.init( ),当Servlet第一次被请求时,Servlet容器就会开始调用这个方法来初始化一个Servlet对象出来,但是这个方法在后续请求中不会在被Servlet容器调用,就像人只能“出生”一次一样。我们可以利用init( )方法来执行相应的初始化工作。调用这个方法时,Servlet容器会传入一个ServletConfig对象进来从而对Servlet对象进行初始化。   2.service( )方法,每当请求Servlet时,Servlet容器就会调用这个方法。就像人一样,需要不停的接受老板的指令并且“工作”。第一次请求时,Servlet容器会先调用init( )方法初始化一个Servlet对象出来,然后会调用它的service( )方法进行工作,但在后续的请求中,Servlet容器只会调用service方法了。   3.destory,当要销毁Servlet时,Servlet容器就会调用这个方法,就如人一样,到时期了就得死亡。在卸载应用程序或者关闭Servlet容器时,就会发生这种情况,一般在这个方法中会写一些清除代码。 xml正确配置映射关系,在浏览器中访问Servlet可用下面代码来测试Serlvet的生命周期           getServletInfo( ),这个方法会返回Servlet的一段描述,可以返回一段字符串。       getServletConfig( ),这个方法会返回由Servlet容器传给init( )方法的ServletConfig对象。 public interface ServletRequest {          int getContentLength();//返回请求主体的字节数       String getContentType();//返回主体的MIME类型       String getParameter(String var1);//返回请求参数的值   }getParameter是在ServletRequest中最常用的方法,可用于获取查询字符串的值 

标签:容器,调用,对象,servlet,方法,学习,Servlet
From: https://www.cnblogs.com/azwz/p/16846146.html

相关文章

  • 队列与栈——数据结构与算法学习
    栈与队列队列队列的定义其实队列这个数据结构就是计算机模拟现实生活中的体现,就跟一个人排队一样,先排上就先走,拿最新很火的梨泰院的例子来说:走在前面的人就应该尽快出去......
  • Oracle 19C学习 - 15. 同义词
    同义词(Synonym)是什么可以把它理解为视图,都是对表的映射,同义词不占用数据存储空间。对于不同Schema下的表,可以映射为一个同义词。易于引用其他用户所拥有的表。还可以缩......
  • Vue学习-05
    Vue项目目录介绍myfirstvue          叫什么都可以项目名字node_modules        文件夹,内部有很多当前项目依赖的模块,好多小文件运行起来非常慢,可......
  • vue学习笔记
    今日内容概要vue项目目录介绍es6的导入导出语法vue项目开发规范vue项目集成axiovue项目前后端打通props配置项混入插件scoped样式localStorage和sessionStora......
  • HCIA学习笔记三十七:OSPF多区域配置
    一、OSPF多区域二、OSPF多区域配置实验>>>沿用上一节的实验拓扑及配置,让AR1和AR2的连接放在Area0里面,AR2和AR3的连接放在Area1里面。这样,AR2就成了区域边界路由器ABR......
  • 监听器学习
    监听器1.什么是监听器web监听器是Servlet中一种特殊的类,能帮助开发者监听Web中的特定事件,比如ServletContext,HttpSession,ServletRequest的创建和销毁;变量的创建、销毁......
  • 学习笔记——美多商城——1 美多商城项目准备
    2022-10-23步骤:一、创建工程仓库(1)在“码云”上创建一个仓库,在本地盘符中创建一个文件夹,右击,使用git,将远程仓库的内容克隆到本地仓库中,点击“GitBashHere”。将刚刚创......
  • 点分治学习笔记
    点分治点分治用于求解树上路径有关的问题。其具体思想,对于当前处理的这一个分治区域,我们计算所有区域内跨过分治中心这一个点的所有路径的贡献,然后将分治中心及与其相邻......
  • 线性基学习笔记
    线性基概念:线性基就是一组基(啊说通俗一点点就是一组数字),这一组基相互进行异或操作能够表示出给定原集合的所有异或和,我们一般选择最简单的一组。可用于每一个亦或和的排......
  • 2022.10.31python学习第二天
    python集合(数组)1.列表:是一种有序和可更改的集合,允许重复的成员   列表用 []来编号  可通过索引号来访问列表项  ......