servlet的由来

人走茶凉 提交于 2019-12-04 03:33:33
  • 动静态网页技术

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

        你在浏览器中输入网址,按下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项目,或许会有收获。

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!