2019独角兽企业重金招聘Python工程师标准>>>

  • 动静态网页技术

首先说下访问网页的大概过程:

你在浏览器中输入网址,按下enter键,此时浏览器代你做了很多事,简要说为:将你输入的这个网址作为目的地参数,向这个参数代表的web服务器发起了HTTP请求,服务器返回一个HTML页面,浏览器将这个页面呈现给你。

WEB服务器都遵循HTTP规范,所有浏览器、web服务器都实现了HTTP协议规范,而HTTP协议是编程语言无关的,这样使得可以用MFC编的浏览器能访问Tomcat(由Java开发)的中Java Web应用网页。

网址你知道了,网页也显示了,到底是静态的还是动态的呢?

用例子好说些,比如歌手大赛:张三、李四、王五、赵六,

现在要展示每个参赛选手的简历网页,

简历信息主要包含姓名、靓照、性别、出生年月、身高、体重,特长等信息,

几个人的信息在报名时已经登记在excel表格中了。

  • 静态网页技术的做法:

根据excel表格给每个选手做一个HTML页面,共有四个网页存放在web服务器的目录下,访问的网址为:

http://www.jianli.com/zhangsan.html

http://www.jianli.com/lisi.html

http://www.jianli.com/wangwu.html

http://www.jianli.com/zhaoliu.html

web服务器根据网址在目录下找到对应的HTML文件,将其返回给浏览器。

有个需求静态网页是做不到的:显示网页被访问多少次!不可能每访问一次改一下这个HTML吧?

  • 动态网页技术的做法:

web服务器目录下很可能没有HTML页面。

首先访问网址一般会变成 http://www.jianli.com/geshou?name=xxx

web服务器收到网页请求后,将请求作为参数调用 帮助程序,帮助程序根据请求中名字的不同,到excel中查出具体信息,组装成一个HTML页面返回给服务器,服务器将这个页面传给浏览器。

就是上面的   帮助程序  真正实现了动态网页技术,现今被广泛使用的“帮助程序”有:

微软系的 : asp、aspx;

CGI系的:PHP,Perl,Python

Java系的:Servlet

为什么是servlet

  • Java有两种实现动态网页的方式:

1、Java Applet ,在浏览器端用Java applet实现,通过applet能够解释执行WEB服务器发过来的Java代码。这样浏览器必须安装插件,又受限于浏览器,所以Java代码不能太多和太复杂。

2、Server applet , WEB服务器不发Java代码,而去调用基于Java代码的server端applet,此即为servlet

因为servlet就是运行在web服务器中的普通Java程序,每个人可以随便写咯,必然导致混乱,所以出现了servlet规范,规定了WEB服务器对servlet的生命周期的调度:何时调用servlet、怎么调用servlet,何时清理servlet,servlet对请求处理的通用逻辑等。

遵循这个规范的服务器都可以称之为servlet容器。

servlet规范概要:

  Server创建一个Servlet的实例
  Server调用Servlet的init()方法
  一个客户端的请求到达Server
  Server创建一个请求对象
  Server创建一个响应对象
  Server激活Servlet的service()方法,传递请求和响应对象作为参数 
  service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息
  service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。
       service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法。 
  
       对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用init()方法。一般Servlet只初始化一次(只有一个对象),当Server不再需要Servlet时(一般当Server关闭时),Server调用Servlet的Destroy()方法

初期servlet是在Java代码中组合拼装html,大量的out语句

JSP是在HTML中嵌入jsp标签(Java代码片段),然后编译成servlet,

接着出现了更好更快的标签及编译技术-struts,

后记

做Java web开发最好从基本的servlet写起,用最原始的servlet开发web应用之后,

再进入各种层面封装起来的框架的学习和整合会没那么多雾水,

各种框架出现的大量配置文件和java代码会弄晕你,

实在是搞不懂干什么用的,为何有这些东西,

这时请回过头来温习你最初的servlet项目,或许会有收获。

转载于:https://my.oschina.net/jingxing05/blog/750997

servlet的由来相关推荐

  1. 从 Servlet 入手带你看架构和框架设计的套路

    以下代码相信大家都很熟悉,大学时学 Java Web 都写过这样的代码. 从第一次接触 Servlet 到之后的很长一段时间内,我都没理解 Servlet 是个什么玩意? 为什么要有 Servlet ...

  2. Web 容器、HTTP 服务器 、Servlet 容器区别与联系

      首先浏览器发起 HTTP 请求,像早期的时候只会请求一些静态资源,这时候需要一个服务器来处理 HTTP 请求,并且将相应的静态资源返回.   这个服务器叫 HTTP 服务器.   简单点说就是解析 ...

  3. servlet的url-pattern匹配规则

    目录 1 url-pattern匹配规则说明 2 四种匹配规则优先顺序 2.1 精确匹配 2.2 路径匹配 2.3 扩展名匹配 2.4 缺省匹配 3 需要注意的问题 3.1 路径匹配和扩展名匹配无法同 ...

  4. 【2021软件创新实验室暑假集训】SpringMVC框架(设计原理、简单使用、源码探究)

    系列文章目录 20级 Java篇 [2021软件创新实验室暑假集训]计算机的起源与大致原理 [2021软件创新实验室暑假集训]Java基础(一) [2021软件创新实验室暑假集训]Java基础(二) ...

  5. 【历史】 apache catalina servlet tomcat 命名的由来

    上世纪八十年代,当互联网开始在美国大学流行的时候,美国计算机名校伊利诺伊大学香槟分校(UIUC)的国家超级计算应用中心(National Center for Supercomputing Appli ...

  6. JAVA学习篇--Servlet详解

    Servlet由来 做过BS项目的人都知道,浏览器能够根据HTML静态标记语言来显示各式各样的网页.但是如果我们需要在网页上完成一些业务逻辑:比如登陆验证.或者说网页显示的内容在服务器的数据库中.如果 ...

  7. Servlet一次乱码排查后的总结

    为什么80%的码农都做不了架构师?>>>    由来 在写一个小小的表单提交功能的时候,出现了乱码,很奇怪request上来的参数全部是乱码,而从数据库查询出来的中文显示到页面正常, ...

  8. j2ee servlet 和 threadlocal ,synchronized 与 web容器

    在传统的Web开发中,我们处理Http请求最常用的方式是通过实现Servlet对象来进行Http请求的响应.Servlet是J2EE的重要标准之一,规定了Java如何响应Http请求的规范.通过Htt ...

  9. JSP/Servlet中的汉字编码问题

    JSP/Servlet中的汉字编码问题 问题的起源 每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的扩展 ASCII码, 中国的 GB2312-80,日本的 JIS 等,作为该国家/区 ...

最新文章

  1. 无需写代码的高颜值富集分析神器
  2. log4j写入mysql数据库_log4j日志写入数据库
  3. oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
  4. 32为Linux安卓AVD启动报错
  5. javaweb 初学建议
  6. everything is nothing
  7. ios开发学习-指示器(HUD)效果源码分享
  8. 面试准备——mybatis相关
  9. V8声卡软件调试教程
  10. TM/QQ默认表情全部丢失的解决办法
  11. 用计算机计算实际利率,教你计算信用卡分期真实利率,算完大吃一惊!
  12. 云服务器搭建kms服务器-vol版本
  13. 【Git】Git国内官网下载地址、淘宝镜像下载地址以及卸载安装
  14. 如何让OpenwrtX86和win7双系统共存在一块硬盘
  15. _, predicted = torch.max(outputs, 1),_,的作用
  16. 物料主数据的维护状态
  17. 2021万向区块链黑客马拉松圆满收官
  18. java8 JDK1.8 API 中文 翻译版 java帮助文档
  19. FreeRTOS之freeconfig.c(S32k144)
  20. vmtools的安装和使用

热门文章

  1. 前端请求接口post_接口自动化测试-WEB资讯专栏-DMOZ中文网站分类目录
  2. oracle fs1 2多少u,甲骨文FS1系列闪存的“大道至简”
  3. php关联图片,PHP关联链接添加方法
  4. python query方法_Pandas dataframe.query方法语法
  5. linux如何运行qt源码,Linux/Ubuntu下编译Qt4.8.2源码
  6. java套接字客户端_使用Java从客户端套接字读取数据(Read data from a client socket in Java)...
  7. mysql用户信息备份还原_mysql迁移之新建用户、备份还原数据库
  8. matlab与专业应用,MATLAB应用技术--在电气工程与自动化专业中的应用
  9. (九)linux中断编程
  10. (五)C语言之二维数组