参考:

Servlet基础在浏览器上运行HelloServlet的方法/197588.htm

servlet的运行流程及在IDEA的第一个web项目

JSP和Servlet及浏览器与tomcat交互过程

笔记:

  1. Servlet是什么?servlet本身不能独立运行,需要在一个web应用中运行的而一个web应用是部署在tomcat中。开发一个servlet需要

    • 创建web应用项目
    • 编写servlet代码
    • 部署到tomcat中
  2. 什么是servlet ?先看一下百度百科的定义: Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 从开发的角度去理解,一个servlet就是一个接口,匹配对应的URL,实现对请求的处理响应数据 
  3. servlet的运行流程
    如下图servlet,tomcat,浏览器,jsp_java

    大白话描述一下就是

    请求者(浏览器也可以是其他应用)通过一个URL地址发起HTTP请求
    URL地址信息可以指向对应的服务器,服务器接收到请求后发送给对应的servlet处理
    servlet处理后将响应信息返回到服务器
    服务器将响应信息返回给请求者
    请求者做出展示

  4. JSP与SERVLET区别
    • JSP在本质上就是Servlet,但是两者的创建方式不一样。
    • JSP由HTML代码和JSP标签构成,可以方便地编写动态网页。因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。
    • Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观。
    • JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。
    • Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP是Java和HTML组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
  5. 浏览器页面与tomcat的交互过程?

    当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:

    1. 将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序;
    2. JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class;
    3. JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端。

    以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎接到一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。

  6. Servlet是由Web服务器调用,web服务器在收到浏览器请求之后,会:
    servlet,tomcat,浏览器,jsp_tomcat_02
  7.