初识Servlet

一、 什么是Servlet


    这里所讨论的Servlet,准确的说,应该是javax.servlet.http.HttpServlet,它是服务器收到请求之后调用的,专门用来响应HTTP请求,并且提供了响应请求的doGet()和doPost()方法. 它本质上来说就是一个java类,只不过它是运行在服务器上的java类.它具有独立于平台和协议的特性,可以生成动态的Web页面. 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。


    Java Servlet API 定义了一个servlet 和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。  Servlet 通过创建一个框架来扩展服务器的能力,以提供在 Web 上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet,并让 Servlet 建立起服务器返回给客户机的响应。 当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet。装入后, Servlet 继续运行直到其它客户机发出请求。


二、 Servlet生命周期

  先上图:

 

b) 生命全过程


    i. 加载Servlet并实例化(new),同时初始化(init)

       servlet第一次被请求加载时,服务器初始化这个servlet,即创建一个servlet对象,这对象调用init方法完成必要的初始化工作。 


    ii. 处理请求(service→doGet/doPost)

        诞生的servlet对象再调用service方法响应客户的请求。根据请求,service会调用doGet()或doPost()进行处理.


    iii. 退出服务(destroy)

         当服务器关闭时,调用destroy方法,消灭servlet对象。


c) 注意事项

    i. Servlet只实例化一次

    ii. Init方法也只执行一次

    iii. Servlet不是线程安全的


     即init方法只被调用一次,即在servlet第一次被请求加载时调用该方法。当后续的客户请求servlet服务时,Web服务将启动一个新的线程,在该线程中,servlet调用service方法响应客户的请求,也就是说,每个客户的每次请求都导致service方法被调用执行。


三、 Servlet类与普通Java类的区别


    Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机,下面对Servlet类与普通Java类进行了一个简单的对比:

 

 

四、总结


    新知识的学习我们总是想方设法与现有的旧知识进行类比,再高明一点的话可以直接用生活化的语言解释清楚。而我学习java不久,只能从现在的知识中寻找以前的影子,下面的这张图是近来学习Servlet时想到的将.NET与JAVA对比,不足之处还请大家不吝指教:


    上图一对比就会发现它们虽然属于不同的平台,使用不同的语言,但本质就很相像了,。依样画葫芦,以后上手的话就可以快很多了。本篇博客只限于对servlet的浅显认知,下篇将使用一个小例子说明Servlet的基本原理,敬请期待~

基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。 智能教学辅助系统 这是一个智能教学辅助系统的前端项目,基于 Vue3+TypeScript 开发,使用 Ant Design Vue 作为 UI 组件库。 功能模块 用户模块 登录/注册功能,支持学生和教师角色 毛玻璃效果的登录界面 教师模块 备课与设计:根据课程大纲自动设计教学内容 考核内容生成:自动生成多样化考核题目及参考答案 学情数据分析:自动化检测学生答案,提供数据分析 学生模块 在线学习助手:结合教学内容解答问题 实时练习评测助手:生成随练题目并纠错 管理模块 用户管理:管理员/教师/学生等用户基本管理 课件资源管理:按学科列表管理教师备课资源 大屏概览:使用统计、效率指数、学习效果等 技术栈 Vue3 TypeScript Pinia 状态管理 Ant Design Vue 组件库 Axios 请求库 ByteMD 编辑器 ECharts 图表库 Monaco 编辑器 双主题支持(专业科技风/暗黑风) 开发指南 # 安装依赖 npm install # 启动开发服务器 npm run dev # 构建生产版本 npm run build 简介 本项目旨在开发一个基于开源大模型的教学实训智能体软件,帮助教师生成课前备课设计、课后检测问答,提升效率与效果,提供学生全时在线练习与指导,实现教学相长。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值