JavaWeb复习(二)

二.web应用体系结构

2.1 web容器

​ Servlet没有main()方法,它受控于另一个Java应用,这个Java应用被称为Web容器,Tomcat就是这样一个容器。

​ 对于每个请求,Web容器可以实例化servlet(或至少建一个新线程),可以调用servlet的doPost()或doGet()方法,把方法的重要参数(http请求和http响应对象)交给servlet,可以管理servlet的生死以及servlet的资源

2.1.1 指向某servlet请求的流程

​ Web服务器应用得到指向某servlet请求后,此时服务器将请求交给部署该servlet的容器,由容器向servlet提供http请求和响应,并且由容器调用servlet的方法(如doPost()、doGet())

在这里插入图片描述

​ 最后线程结束,容器把响应对象转换为一个http响应,并把它返回浏览器,然后删除请求和响应对象

2.1.2 容器的作用

​ 1.通信支持:利用容器提供的方法,可以让servlet和Web服务器对话,无需自己建立ServerSocket、监听端口、创建流等

​ 2.生命周期管理:它能负责加载类、实例化和初始化Servlet、调用servlet方法以及垃圾回收。有了容器的控制,就不用太多考虑资源管理

​ 3.多线程支持:容器会自动为它接受的每个servlet请求创建一个新的线程。servlet已经运行完相应的http方法,线程就会自动结束

​ 4.声明方式实现安全:利用容器,可以使用xml部署描述文件来配置安全性,而不必将其硬编码写到servlet类代码中

​ 5.JSP支持:容器可以将JSP代码翻译成真正的Java

​ 因此说,有了容器我们可以更专注自己的业务逻辑,而不用过多考虑线程管理、安全性和网络通信等底层服务

2.2 关于Servlet名称

2.2.1 Servlet的三个名字

​ 1.客户知道的URL名(虚拟的名字,完全为客户提供)

​ 2.部署servlet人员定义的部署名(虚拟的内部名,只用于部署Servlet)

​ 3.实际的文件名(开发人员的Servlet类拥有一个完全限定名,包括类名和包名)

2.2.2 Servlet多个名字的好处

​ 1.灵活性高,移动文件而不必担心后期维护

​ 2.安全性高,对客户隐藏了服务器的目录结构

2.3 关于部署文件

​ 部署文件会告诉容器如何运行servlet和jsp:

​ 1.可以使用两个xml元素把url映射到servlet

<?xml version="1.0" encoding="utf-8" ?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         version="2.4">
    <!--一个部署描述文件可以声明多个servlet-->
    <!--servlet-name把servlet和servlet-mapping元素绑定在一起-->
    <!--servlet元素告诉容器哪个类文件属于一个特定Web应用-->
    <1--servlet-name是部署名-->
    <servlet>
    	<servlet-name>test Servlet</servlet-name>
        <!--servlet-class是java类,也就是类的完全限定名-->
        <servlet-class>testServlet</servlet-class>	
    </servlet>
    
    <servlet-mapping>
    	<servlet-name>test Servlet</servlet-name>
        <!--url-pattern是客户所用的请求名,也就是用户知道的url名-->
        <url-pattern>/Serv1</url-pattern>
    </servlet-mapping>

</web-app>

​ 2.对Web应用的安全角色、错误页面、标记库、初始配置信息等方面进行定制

​ 也就是说,利用部署描述文件,可以利用一种声明方式修改应用,而无需修改源代码

2.4 MVC设计模式

​ 若不使用mvc设计模式,那么流程图servlet请求的流程图如下:

在这里插入图片描述

​ 我们发现业务逻辑与表示之间有很强的联系,因为我们需要在两者之间放别的东西,使得业务逻辑本身就能作为一个可重用的Java类。

​ 因此,我们引入模型-视图-控制器(MVC)设计模式,它的核心就是把业务逻辑从servlet中抽出来,放到一个模型中(模型就是可重用的普通java类,它是业务数据和处理该数据的方法组合)

2.5 J2EE

​ J2EE是一种超级规范,它结合了sevlets、jsp、ejb规范。一个完全兼容j2EE应用服务器必须有一个web容器和一个ejb容器。

​ tomcat是一个web容器,而不是一个完整的j2EE应用服务器

转载请注明出处!!!

如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值