Servlet容器简介

1.使用Servlet所需要的环境和开发工具

(1)Java环境

(2)Tomcat

(3)Eclipse新建一个DynamicWeb Project

注意:在新建工程的时候要将 Generate web.xml deployment descriptor 这个选项选中,否则会出现工程中没有web.xml文件的情况

2.DynamicWeb Project的工程目录结构

|--src/                                存放java源文件

|--WebContent/                   存放静态资源(Servlet会发布除了web-inf以外的资源)

        |--WEB-INF/            

           |--lib/                  第三方依赖库文件.jar

           |--classes/            存放容器编译后的.class文件

               |--web.xml           配置文件,包括url映射,默认主页等信息配置

        |--images/                  图片资源

        |--css/                        样式资源

        |--js/                          动态js资源

        |--templates                jsp、html等资源

<!-所以图片、样式等资源不能放在web-inf文件夹下面,否则访问不到,返回404错误-->

 

3.Jsp+Tomcat+Sevlet容器+JDBC+MySql的整体架构

①获取页面信息:

(1)浏览器访问/index.jsp,发起GET请求,将url传送到服务器端

(2)tomcat接受请求处理index.jsp->index.java->index.class,调用jspService()方法,将jsp中的html通过HTTP协议输出到浏览器,浏览器渲染成我们看到的页面信息

②提交请求动态刷新页面信息:

(1)浏览器通过点击按钮、提交表单等行为向服务器发送POST请求,传送url到服务端

(2)tomcat接受请求,在web.xml文件中通过url映射找到相应的容器类,根据请求类型,寻找到容器中相应的doXXX(request,response)方法,方法体被程序员重写,用JDBC对数据库进行操作,得到数据后,通过getWriter()设置响应体,返回前端,刷新页面信息

4.Servlet的生命周期

(1)Servlet 通过调用 init() 方法进行初始化。

①init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

②Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时,但是您也可以指定 Servlet 在服务器第一次启动时被加载。

③当用户调用一个Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init()方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

(2)Servlet 调用 service() 方法来处理客户端的请求。

①service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

②每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

(3)Servlet 通过调用 destroy() 方法终止(结束)。

①destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

②在调用destroy() 方法之后,servlet 对象被标记为垃圾回收。

(4)最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

5.Web容器、Tomcat服务器和Sevlet容器的关系

(1)Web容器与Tomcat服务器

Web容器是用作运行Java web程序的,主要分为两类,一种是独立Web容器,也可以称作Web服务器,只能运行Web程序,Tomcat就是这种服务器。另一种是与其他JavaEE容器混合在一起的容器,Web容器负责运行Web程序,其他容器负责EJB等程序,如WebLogic等

当用户通过浏览器等Web客户端软件向服务器发出一个请求之后,首先接收到这个请求的是Web容器,Web容器会将请求信息封装到一个HttpServletRequest类型的Java对象中,并将对象传递给Java Web程序。对于每个请求,Web容器还会创建一个HttpServletResponse类型对象,该对象的作用是用来保存需要返回到浏览器等客户端的内容。Java Web程序可以从HttpServletRequest提取用户发出的请求信息,进行适当的处理之后,将处理结果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse对象内容,并将解析结果以浏览器能够识别的HTML等格式返回给浏览器等客户端。在这个过程中,HttpServletRequest和HttpServletResponse就如同两条渡船,负责在Web容器和Java Web程序之间传递信息。需要注意的是,这两个对象仅存在于Web容器和Java Web程序当中,与浏览器没有关系

(2)Tomcat和Servlet之间的关系

Servlet属于一种Web元件,Tomcat是经过包装可以处理Web 程序的Servlet

① 客户端(通常都是浏览器)访问Web服务器,发送HTTP请求。

Web服务器接收到请求后,传递给Servlet容器。

Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。

④ Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。

⑤ Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。

 

 


猜你喜欢

转载自blog.csdn.net/zzy296753977/article/details/80367251