Java Web学习(3)

内容概要:

1、什么是Web容器,如何工作的?

2、Servlet与JSP的关系是什么?

3、什么是Model 2 ?



1、Web容器

重要概念:Web容器(Container)是Servlet/JSP唯一认得的HTTP服务器。

容器:持有对象,负责对象的生命周期与相关服务的连接

具体层面,其实就是一个用Java写的程序

抽象层面,可以视为运行Servlet/JSP的HTTP服务器,Servlet/JSP在不同Web容器上运行,而不用理会底层真正的HTTP服务器

用Apache Tomcat作为Web容器

如同JVM介于Java程序与操作系统之间,Web容器是介于实体HTTP服务器与Servlet之间

一个请求/响应的基本例子:

(1)客户端(浏览器)对Web服务器发出HTTP请求

(2)HTTP服务器收到HTTP请求,将请求转由Web容器处理,Web容器会剖析HTTP请求内容,创建各种对象(如HttpServletRequest、HttpServletResponse、HttpSession等)

(3)Web容器由请求的URL决定要使用哪个Servlet来处理请求(事先由开发人员定义)。
(4)Servlet根据请求对象(HttpServletRequest)的信息决定如何处理,通过响应对象(HttpServletResponse)来创建响应。

(5)Web容器与HTTP服务器沟通,Web服务器将响应转换为HTTP响应并传回客户端。

如果有多次请求,就只是启动多个线程处理,而不是重复启动多次JVM,可以大幅减轻性能负担。

然而,Web容器可能会使用同一个Servlet实例服务多个请求,多个请求下,相当于多个线程在共享存取一个对象,因此得注意线程安全问题,避免引发数据错乱。


2、Servlet与JSP的关系

Servlet转化成一个类,继承了HttpJspBase,而HttpJspBase继承自HttpServlet

JSP会被Web容器转译为Servlet的".java"源文件、编译为".class"文件,然后加载容器之中,最后提供服务的还是Servlet实例。


3、MVC与Model 2

MVC:Model、View、Controller,模型、视图、控制器

Model 2 架构上仍将程序职责分为Model、View、Controller

控制器:取得请求参数、验证请求参数、转发请求给模型、转发请求给画面,这些都使用程序代码来实现
模型:接受控制器的请求调用,负责处理业务逻辑、负责数据存取逻辑等,这部分还可依应用程序功能,产生各种不同职责的模型对象,模型使用程序代码来实现。
视图:接受控制器的请求调用,会从模型提取运算后的结果,根据需求呈现所需的画面,在职责分配良好的情况下,基本上可以做到不出现程序代码,因此不会发生程序代码与HTML混杂在一起的情况。




阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页