| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 快速掌握————>Servlet -> 正文阅读 |
|
[Java知识库]快速掌握————>Servlet |
1. ServletServletServlet 的简称,是使用 Java 语言编写的运行在服务器端的程序。具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
Servlet 的请求首先会被 HTTP 服务器(如 Apache)接收,HTTP 服务器只负责静态 HTML 页面的解析,而 Servlet 的请求会转交给 Servlet 容器,Servlet 容器会根据 web.xml 文件中的映射关系,调用相应的 Servlet,Servlet 再将处理的结果返回给 Servlet 容器,并通过 HTTP 服务器将响应传输给客户端。 1)方便Servlet 提供了大量的实用工具例程,如处理很难完成的 HTML 表单数据、读取和设置 HTTP 头,以及处理 Cookie 和跟踪会话等。 2)跨平台Servlet 使用 Java 类编写,可以在不同的操作系统平台和不同的应用服务器平台运行。 3)灵活性和可扩展性强采用 Servlet 开发的 Web 应用程序,由于 Java 类的继承性及构造函数等特点,使得应用灵活,可随意扩展。 2. 在 Servlet 接口2.1)5 个抽象方法
2.2)针对 Servlet 的接口,Sun 公司提供了两个默认的接口实现类:GenericServlet 和 HttpServlet GenericServlet ? 是一个抽象类,该类为 Servlet 接口提供了部分实现,它并没有实现 HTTP 请求处理。 HttpServlet ? 是 GenericServlet 的子类,它继承了 GenericServlet 的所有方法,并且为 HTTP 请求中的 GET 和 POST 等类型提供了具体的操作方法。通常情况下,编写的 Servlet 类都继承自 HttpServlet
2.3)HttpServlet 主要有两大功能
3. Servlet生命周期详解[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-74tAQ4fv-1625925452558)(Q:\imaga\2.png)] 3.1)初始化阶段当客户端向 Servlet 容器发出 HTTP 请求要求访问 Servlet 时 ? Servlet 容器首先会解析请求,检查内存中是否已经有了该 Servlet 对象 ? 如果有,则直接使用该 Servlet 对象 ? 如果没有,则创建 Servlet 实例对象,然后通过调用 init() 方法实现 Servlet 的初始化工作 ? 注意,在 Servlet 的整个生命周期内,它的 init() 方法只能被调用一次 3.2)运行阶段1.这是 Servlet 生命周期中最重要的阶段,在这个阶段中 ? 1. Servlet 容器会为这个请求创建代表 HTTP 请求的 ServletRequest 对象 ? 2. Servlet 容器会为这个响应创建 代表 HTTP 响应的 ServletResponse 对象 ? 注意:然后将它们作为参数传递给 Servlet 的 service() 方法。 2.service() 方法从 ServletRequest 对象中获得客户请求信息并处理该请求,通过 ServletResponse 对象生成响应结果。 3.在 Servlet 的整个生命周期内,对于 Servlet 的每一次访问请求 ? 注意:Servlet 容器都会调用一次 Servlet 的 service() 方法,并且创建新的 ServletRequest 和 ServletResponse 对象,也就是说,service() 方法在 Servlet 的整个生命周期中会被调用多次。 3.3)销毁阶段1.当服务器关闭或 Web 应用被移除出容器时Servlet 随着 Web 应用的关闭而销毁。在销毁 Servlet 之前,Servlet 容器会调用 Servlet 的 destroy() 方法,以便让 Servlet 对象释放它所占用的资源。 ? 注意: ? 1.在 Servlet 的整个生命周期中,destroy() 方法也只能被调用一次。 ? 2.需要注意的是,Servlet 对象一旦创建就会驻留在内存中等待客户端的访问,直到服务器关闭或 Web 应用被移除出容器时,Servlet 对象才会销毁。 4. Servlet的多重映射Servlet 的多重映射指同一个 Servlet 可以被映射成多条虚拟路径,客户端可以通过多条路径实现对同一个 Servlet 的访问。 4.1) 配置多个实现多重映射
4.2)Servlet映射路径中使用通配符在实际开发过程中,开发者有时会希望某个目录下的所有路径都可以访问同一个 Servlet,这时,可以在 Servlet 映射的路径中使用通配符*。通配符的格式有两种,具体如下。
5. ServletConfig接口5.1)在运行 Servlet 程序时可能需要一些辅助信息,例如,文件使用的编码、使用 Servlet 程序的共享信息等 这些信息可以在 web.xml 文件中使用一个或多个 元素进行配置。 当 Tomcat 初始化一个 Servlet 时,会将该 Servlet 的配置信息封装到 ServletConfig 对象中,此时可以通过调用 init(ServletConfig config)方法将 ServletConfig 对象传递给 Servlet。 5.2)ServletConfig接口的方法
6. ServletContext接口6.1)当 Tomcat 启动时? Tomcat 会为每个 Web 应用创建一个唯一的 ServletContext 对象代表当前的 Web 应用,该对象封装了当前 Web 应用的所有信息。 ? 作用 ? 1. 可以利用该对象获取 Web 应用程序的初始化信息、 ? 2. 读取资源文件等。 对 ServletContext 接口的不同作用分别进行讲解。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GfjgLzpQ-1625925452560)(C:\Users\一个人\AppData\Roaming\Typora\typora-user-images\image-20210710031015617.png)]
6.2) 读取 Web 应用下的资源文件ServletContext接口的常用方法
7. servlet处理用户请求的完整流程7.1) 针对 Servlet 的每次请求? Web 服务器在调用 service() 方法之前 ? 创建 ? HttpServletRequest 和 HttpServletResponse 对象 ? 作用 ? HttpServletRequest 对象用于封装 HTTP 请求消息,简称 request 对象 ? HttpServletResponse 对象用于封装 HTTP 响应消息,简称 response 对象 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o9V6dUqM-1625925452562)(Q:\imaga\3.png)] 7.2) 需要注意的是在 Web 服务器运行阶段,每个 Servlet 都只会创建一个实例对象,针对每次 HTTP 请求,Web 服务器都会调用所请求 Servlet 实例的 service(HttpServletRequest request,HttpServletResponse response)方法,并重新创建一个 request 对象和一个 response 对象。 8. HttpServletRequestHttpServletRequest 发音:[r??kwest] HttpServletRequest 接口继承自 ServletRequest 接口 8.1)HTTP请求分为三部分
8.2) 获取请求行信息的相关方法请求行中包含
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CHco44em-1625925452563)(C:\Users\一个人\AppData\Roaming\Typora\typora-user-images\image-20210710134432177.png)] 8.3) 获取请求消息头的相关方法当浏览器发送 Servlet 请求时,需要通过请求消息头向服务器传递附加信息 9.Cookie,Session9.1)Sessionn会话[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gvhCoQps-1625925452565)(Q:\imaga\4.png)] 会话: ? 用户访问一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程称之为会话 有状态会话:访问过的浏览器,下次在访问,服务器端会自动这个客户曾经来过 9.2)保存会话的两种技术cookie:
session:
9.3)cookic
获取Cookie获取对象
获取Cookie的值
9.4) Session(重点)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4zCUKjfV-1625925452565)(Q:\imaga\5.png)] 什么是Session
创建:Session
Session方法
Session和cookie的区别 Cookie:是把用户的数据写给浏览器,浏览器保存(可以保存多个) Session:把用户的数据写到用户单独占Session中,服务器端保存,(保存重要的信息,减少服务器资源的浪费) 使用场景:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 20:47:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |