servlet学习(一)
Tomcat
注:以下资料摘自孙鑫的《sevlet/JSP深入详解》,仅用于个人学习使用。
一.web技术的发展
早期web是静态页面的浏览,使用HTML编写,放入服务器。

1.1浏览器请求静态页面的流程
随着发展,用户访问的资源不仅仅局限于静态网页,更多的应用需要根据用户的请求动态生成页面信息 ,复杂一些的还需要从数据库中提取数据,经过一定的运算,生成一个页面返回给客户。
早期使用的Web服务器扩展机制是CGI,它允许用户调用Web服务器上的CGI程序。CGI的全称是Common Gateway Interface,即公共网关接口。大多数的CGI程序使用Perl来编写,也有使用C、Python或PHP来编写的。CGI程序编写是非常困难的,对用户请求的响应时间较长、以进程方式运行导致性能受限等。由于CGI程序的这些缺点,开发人员需要其他的CGI方案。97年SUN公司推出了Servlet,作为Java的CGI解决方案。
Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,由Servlet容器(有时也称作Servlet引擎)所管理,用于生成动态的内容。Servlet不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法,Servlet容器在Servlet的生命周期内包容和管理Servlet。JSP技术推出后,管理和运行Servlet的容器也被称为Web容器。
那么在用户点击一个URL之后用户通过访问Servlet,Web服务器接收请求后,并非将请求直接交给Servlet,而是交给Servlet容器。Servlet容器实例化Servlet,调用Servlet的一个特定方法对请求进行处理,并产生一个响应。这个响应由Servlet容器返回给Web服务器,Web服务器包装这个响应,以HTTP响应的形式发送给Web浏览器。
servlet的特点:单实例多线程(每个请求在一个独立的线程中运行,而提供服务的Servlet实例只有一个);使用Java编写,具有Java的一切优点;可以访问Java平台丰富的类库,使得各种应用的开发更为容易,用了Java之后都会觉得Java的类库真的很方便,比c++更加受欢迎。
2.Tomcat(servlet的运行环境)
学习servlet技术首先需要servlet的运行环境,我们这里采用Tomcat容器

1.2 Tomcat服务器接受客户请求并做出响应的过程
1.客户端访问Web服务器,发送HTTP请求。
2.Web服务器接收到请求后,传递给Servlet容器。
3. Servlet容器加载Servlet,产生Servlet实例,向其传递表示请求和响应的对象。
4. Servlet实例使用请求对象(Request)得到客户端的请求信息,然后进行相应的处理。
5. Servlet实例将处理结果通过响应对象(Response)发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。
Tomcat是Web服务器和Servlet容器的结合。
Web服务器:是网络环境下为客户提供某种服务的专用计算机,简单的来说就是将计算机的资源映射为一个URL供外界访问
Servlet容器:Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。任何一个应用程序必然包括三个步骤:
1.接收请求
2.处理请求
3.响应请求
接收和响应请求是共性功能,没有差异性,所以把这两种步骤抽取成web服务器。处理请求逻辑上和这两个步骤不同,被抽取出来做成servlet,再到后来servlet被抽取成三层
servlet学习(一)的更多相关文章
- JSP&Servlet学习手册
JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...
- Servlet 学习笔记
Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...
- Servlet学习:(三)Servlet3.0 上传文件
转: Servlet学习:(三)Servlet3.0 上传文件 2018年08月03日 11:57:58 iDark_CSDN 阅读数:362 一.注意事项 客户端(浏览器) 表单的提交方法必须是 ...
- Servlet学习(九)——request
request运行流程在Servlet学习(四)——response已介绍,不再赘述 1.通过抓包工具获取Http请求 因为request代表请求,所以我们可以通过该对象分别获得Http请求的请求行, ...
- # jsp及servlet学习笔记
目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...
- Servlet学习笔记(四)
目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...
- Servlet学习笔记(三)
目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...
- Servlet学习笔记(二)
目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...
- servlet 学习(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
随机推荐
- XPath in Action
XPath in Action Python 爬虫 数据上报,可视化埋点 HTML / XHTML XML / XML Namespaces XPath XPath 是一门在 XML 文档中查找信息的 ...
- Vue & mobile UI components
Vue & mobile UI components https://github.com/vuejs/awesome-vue https://awesome-vue.js.org/ http ...
- React Hooks in depth
React Hooks in depth React Hooks https://reactjs.org/docs/hooks-rules.html https://www.npmjs.com/pac ...
- 「NGK每日快讯」12.18日NGK公链第45期官方快讯!
- 如何在ASP.NET Core中编写高效的控制器
通过遵循最佳实践,可以编写更好的控制器.所谓的"瘦"控制器(指代码更少.职责更少的控制器)更容易阅读和维护.而且,一旦你的控制器很瘦,可能就不需要对它们进行太多测试了.相反,你可 ...
- DBA 的效率加速器——CloudQuery v1.3.0 上线!
好久不见! 自 CloudQuery v1.2.1 发布至今,已有月余,在此期间我们收到了很多朋友对 CloudQuery 的反馈和建议,很多朋友表达了对 v1.3.0 的期待,非常感谢. Cloud ...
- 生成类库项目时同时生成的pdb文件是什么东东?
英文全称:Program Database File Debug里的PDB是full,保存着调试和项目状态信息.有断言.堆栈检查等代码.可以对程序的调试配置进行增量链接.Release 里的PDB是p ...
- net里面using的使用
起初using就明白一个作用 那就是引用命名空间.当面试官听到我回答这个问题的时候,马上就还问我,还有什么作用?我就只能摇头了,今天在网上看了下using的作用. 1.using指令.using + ...
- Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习
一 使用环境: windows 7 64位操作系统 二 IDE:VSCode/PyCharm 三 Vue.js官网: https://cn.vuejs.org/ 四 下载安装引用 方式1:直接 ...
- PAT-1099(Build A Binary Search Tree)Java实现+二叉排序树的中序遍历和层次遍历
Build A Binary Search Tree PAT-1099 本题有意思的一个点就是:题目已经给出了一颗排序二叉树的结构,需要根据这个结构和中序遍历序列重构一棵二叉排序树. 解法:可以根据中 ...