web应用知识点串讲

一、前言

工作后一直使用springboot,但想想对框架的理解好像仅停留在了表面,内心有点不安。就把最近这段时间看的web应用/Servlet/Tomcat/Spring框架相关的知识点做一个简单的整理,尽量做到知其然也知其所以然,把一些知识点都能够串起来。部分内容摘抄自网络,详情见原址。

二、web应用

Web是万维网(WWW,World Wide Web)的俗称,它是一个体系结构框架。Web是由大量分布在全球范围的内容组成的,这些内容是以web页面的形式表示的。web页面又分为静态页面动态页面。通常观看这些页面的程序成为浏览器。(两种网络应用程序开发体系结构:一种是基于客户端/服务器的C/S结构,另一种是基于浏览器/服务器的B/S结构

应用 Java 技术开发 Web 应用系统需要掌握一系列相关技术,主要包括 HTML、XML、 JavaScript、JDBC、Servlet、JSP 等方面。在Sun的Java Servlet规范中,对Java Web应用作了这样定义:“Java Web应用由一组Servlet、HTML页、类、以及其它可以被绑定的资源构成,它可以在各种供应商提供的实现Servlet规范的 Servlet容器中运行。”Servlet容器为JavaWeb应用提供运行时环境,它负责管理Servlet和JSP的生命周期,以及管理它们的共享数据。Servlet容器也称为Java Web应用容器,或者Servlet/JSP容器。目前最流行的Servlet容器软件为:Tomcat、Weblogic......

Spring是一个支持快速开发Java EE应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发Java EE应用程序的必备。(The Spring Framework is a lightweight solution and a potential one-stop-shop for building your enterprise-ready applications.)

【1】http://www.wsbookshow.com/uploads/bookfile/201606/9787517043836_1.pdf

【2】https://cloud.tencent.com/developer/article/1146655

【3】《计算机网络第5版》P499

【4】https://www.jianshu.com/p/7b6a070119c7

【5】https://www.liaoxuefeng.com/wiki/1252599548343744/1266263217140032

三、Servlet

早期的Web应用主要用于浏览新闻等静态页面,HTTP服务器(比如Apache、Nginx)向浏览器返回静态HTML,浏览器负责解析HTML,将结果呈现给用户。

随着互联网的发展,我们已经不满足于仅仅浏览静态页面,还希望通过一些交互操作,来获取动态结果,因此也就需要一些扩展机制能够让HTTP服务器调用服务端程序。

于是Sun公司推出了Servlet技术。你可以把Servlet简单理解为运行在服务端的Java小程序,但是Servlet没有main方法,不能独立运行,因此必须把它部署到Servlet容器中,由容器来实例化并调用Servlet。

而Tomcat和Jetty就是一个Servlet容器。为了方便使用,它们也具有HTTP服务器的功能,因此Tomcat或者Jetty就是一个“HTTP服务器 + Servlet容器”,我们也叫它们Web容器

Servlet容器工作流程:当客户请求某一个资源时,Http服务器会用一个ServletRequest对象把客户的请求信息封装起来,然后调用Servlet容器的service方法,Servlet容器拿到请求后,根据请求的URL和Servlet的映射关系,找到相应的Servlet,如果Servlet还没有被加载,就用反射机制创建这个Servlet,并调用Servlet的init方法来完成初始化,接着调用Servlet的service方法来处理请求,把ServletResponse对象返回给Http服务器,Http服务器会把响应发送给客户端。

Servlet的历史与规范:https://blog.csdn.net/u010297957/article/details/51498018

Web容器(一):Web容器简介: https://blog.csdn.net/hzk1562110692/article/details/94295947

tomcat系列之二:Servlet规范:https://www.cnblogs.com/inspred/p/10949509.html

四、Tomcat

看完下面这四篇文章,就可以对Tomcat的架构有所了解了。

https://www.cnblogs.com/inspred/p/10951013.html

https://www.cnblogs.com/inspred/p/10974600.html

https://www.cnblogs.com/inspred/p/10978151.html

https://www.cnblogs.com/inspred/p/10979366.html

可以结合着源码来看看

五、Spring

https://www.jianshu.com/p/7b6a070119c7

  • Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。
  • Spring面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
  • Spring能非常简单的帮我们管理数据库事务。
  • Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。
  • Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
  • Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。

 

Spring Framework差不多有20个模块组成,其中Core Container模块包含spring-beans、spring-core、spring-context、spring-expression。

Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的IOC和AOP:IOC提供了依赖注入的容器,AOP解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能,更多详见原文链接:https://blog.csdn.net/twt936457991/article/details/90113830https://blog.csdn.net/kingmax54212008/article/details/83184577

 

6、实操

1、“徒手”构建一个web应用,部署到Tomcat中并启动。参考:《轻量级Java EE企业应用实战》P74--P75

2、使用IDEA构建一个web应用(使用Spring MVC框架),配置Tomcat并启动。参考:https://www.cnblogs.com/mengd/p/13514758.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值