文章目录

  • 一. JavaWeb基本概念
    • 1. 前言
    • 2. web应用程序
    • 3. 静态web
    • 4. 动态web
  • 二. Web结构
    • 1. 什么是后端开发
    • 2. 后端和前端的区别
  • 二. Web开发模式
    • 1. 定义
    • 2. 网络应用程序的两种基本结构
      • (1). C/S结构(客户机/服务器)(Client/Server)
        • 1. 定义
        • 2. 缺点:
        • 3. 优点:
      • (2). B/S结构(浏览器/服务器)(Browser/Server)
        • 1. 定义
        • 2. 优点
        • 3. 缺点
        • 4. B/S架构的分层:
        • 5. B/S架构的几种形式:
          • (1). 第一种:客户端—服务器—数据库
          • (2). 第二种:客户端—web服务器—应用服务器—数据库
          • (3). 第三种方法:客户端—负载均衡器(Nginx)—中间服务器(Node)—应用服务器—数据库
  • 三. Web应用服务器
    • 1.服务器概念
    • 2.常见的web服务器
  • 四. Web编程语言
  • 五. Http
    • 1. 什么是http
    • 2. 两个时代
    • 3. http请求
    • 4. http响应
  • 六. JSP执行流程
    • 1. 第一次访问:
    • 2. 第二次访问:
    • 3. 对比自己写的index.jsp项目和翻译后的Java(严格来说是Servlet)文件
    • 4. JSP和Servlet文件可以相互转换

一. JavaWeb基本概念

1. 前言

web开发:

  • web:网页的意思(从网上获取相应的资源页面)

  • 静态web

      html、css提供给所有人看的数据始终不会发生变化
    
  • 动态web

      提供给所有人看的数据始终发生变化,每个人在不同的时间,不同的地点看到的信息各不相同
    
  • 技术栈

      Servlet/JSP、ASP、PHP
    

在Java中,动态web资源开发的技术统称为Javaweb

2. web应用程序

web应用程序:可以提供浏览器访问的程序

  • a.html、b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务

  • 你们能访问到的任何一个页面或者资源,都存在这个世界的某一个角落的计算机上

  • 通过URL进行查找访问

  • 这些统一的web资源会被放在同一个文件下,变成一个web应用程序,要依赖于Tomcat:服务器

  • 一个web应用程序由多部分组成(静态web、动态web)

      html、css、jsjsp、servlet程序java程序jar包配置文件(Properties)
    

web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理

3. 静态web

  • .htm、.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取,通络。

静态web存在的缺点

  • web页面无法动态更新,所有用户看到的都是同一个页面

      动态页面:轮播图、点击特性、伪动态JavaScript[实际开发使用最多]VBScript
    
  • 它无法和数据库交互(数据无法持久化,用户无法交互)

4. 动态web

页面会动态展示,“web的页面展示的效果因人而异”

缺点

  • 假如服务器的动态web资源出现了错误,我们需要重写编写我们的后台程序重新发布

      停机维护
    

优点:

  • web页面可以动态更新
  • 可以与数据库交互(数据持久化:注册)

二. Web结构

以下三块组成一个完整的项目

1. 什么是后端开发

  • 后端开发即“服务器端”开发,主要涉及软件系统“后端”的东西。比如,用于托管网站和 App 数据的服务器、放置在后端服务器与浏览器及 App 之间的中间件,它们都属于后端。简单地说,那些你在屏幕上看不到但又被用来为前端提供支持的东西就是后端。
  • 网站和移动 App 的后端
  • 网站的后端涉及搭建服务器、保存和获取数据,以及用于连接前端的接口。如果说前端开发者关心的是网站外观,那么后端开发者关心的是如何通过代码、API 和数据库集成来提升网站的速度、性能和响应性。
  • 与前端类似,移动 App 的后端与网站后端是一样的。为移动 App 搭建后端有这些选择:云平台(AWS、Firebase)、自己的服务器或 MBaaS(移动后端即服务,Mobile Backend as a Service)。

2. 后端和前端的区别


二. Web开发模式

1. 定义

web开发是在B/S模式下进行的一种开发形式

2. 网络应用程序的两种基本结构

(1). C/S结构(客户机/服务器)(Client/Server)

1. 定义

C/S分为客户机和服务器两层,把应用软件安装在客户机端,通过网络与服务器端相互通信

它可以分为客户机和服务器两层:

第一层:  在客户机系统上结合了界面显示与业务逻辑;
第二层:  通过网络结合了数据库服务器。简单的说就是第一层是用户表示层,第二层是数据库层。

这里需要补充的是,客户端不仅仅是一些简单的操作,它也是会处理一些运算,业务逻辑的处理等。也就是说,客户端也做着一些本该由服务器来做的一些事情

2. 缺点:

  • 如果应用程序改动了(例如丰富了界面,增加功能)就必须通知所有客户端重新安装,

  • 维护稍有不便

  • 每一台客户端都需要按照客户端软件

3. 优点:

  • C/S架构的界面和操作可以很丰富。(客户端操作界面可以随意排列,满足客户的需要)

  • 安全性能可以很容易保证。(因为只有两层的传输,而不是中间有很多层。

  • 由于只有一层交互,因此响应速度较快。(直接相连,中间没有什么阻隔或岔路,比如QQ,每天那么多人在线,也不觉得慢)

(2). B/S结构(浏览器/服务器)(Browser/Server)

1. 定义

B/S架构的全称为Browser/Server,即浏览器/服务器结构。

Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现。

B/S架构的系统无须特别安装,只有Web浏览器即可。

其实就是我们前端现在做的一些事情,大部分的逻辑交给后台来实现,我们前端大部分是做一些数据渲染,请求等比较少的逻辑。

2. 优点

1、客户端无需安装,有Web浏览器即可直接访问服务端。
2、B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。
3、B/S架构无需升级多个客户端,升级服务器即可。可以随时更新版本,而无需用户重新下载什么的。

3. 缺点

1、在跨浏览器上,B/S架构不尽如人意。
2、表现要达到C/S程序的程度需要花费不少精力。
3、在速度和安全性上需要花费巨大的设计成本,这是B/S架构的最大问题。
4、客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的。(在Ajax风行后此问题得到了一定程度的缓解)

4. B/S架构的分层:

第一层表现层:主要完成用户和后台的交互及最终查询结果的输出功能。

第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。

第三层数据层:主要是接受客户端请求后独立进行各种运算。

5. B/S架构的几种形式:

(1). 第一种:客户端—服务器—数据库



这个应该是我们平时比较常用的一种模式:

1、客户端向服务器发起Http请求

2、服务器中的web服务层能够处理Http请求

3、服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法

4、如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端

(2). 第二种:客户端—web服务器—应用服务器—数据库


类似于第一种方法,只是将web服务和应用服务解耦

1 客户端向web服务器发起Http请求

2 web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口

3 应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器

4 web服务器将模版+数据组合渲染成html返回给客户端

(3). 第三种方法:客户端—负载均衡器(Nginx)—中间服务器(Node)—应用服务器—数据库


1、整正暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址

2、客户向负载均衡器发起Http请求

3、负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群

4、Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口

5、应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node

6、Node层将模版+数据组合渲染成html返回反向代理服务器

7、反向代理服务器将对应html返回给客户端

三. Web应用服务器

1.服务器概念

  • Web 服务器一般指网站服务器,也称之为 WWW(World Wide Web)服务器。是指驻留于因特网上某种类型计算机的程序。这个服务器并不是硬件服务器,而是软件服务器。其主要功能是提供网上信息浏览服务,可以向发出请求的浏览器提供文档,也可以放置网站文件,让全世界浏览;还可以放置数据文件,让全世界下载等。

2.常见的web服务器

  • ①Apache是世界使用排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
  • ②WebLogic 是美国 Oracle 公司出品的一个应用程序服务器,主要用于开发、集成、部署和管理大型分布式 Web 应用、网络应用和数据库应用的 Java 应用服务器,主要用于部署大型分布式项目使用。
  • ③IIS 是一种 Web 服务组件,其中包括 Web 服务器、FTP 服务器、NNTP 服务器和 SMTP 服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,主要用来部署 ASP.NET 项目使用。
  • ④Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
  • ⑤Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

主要包括:Tomcat、Jboos、Weblogic、IIS、Jetty(就相当一个服务)

  • 服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息

IIS

  • 微软的;ASP…Windows自带的

Tomcat

  • Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,是最佳选择
  • 而Tomcat 实际上运行JSP 页面和Servlet。

四. Web编程语言

  1. CGI

  2. PHP

     PHP开发速度快,功能强大,跨平台,代码简单(70%,WP)无法承载大访问量的情况(局限性)
    
  3. JSP(本质是Servlet)

     sun公司主推的B/S架构基于Java语言的(所有的大公司,或开源组件,都是由Java写的)可以承载三高(高并发、高可用、高性能)问题带来的影响语法像ASP,ASP-->JSP
    
  4. ASP

     微软:国内最早流行的就是ASP在HTML中嵌入了VB脚本,ASP+COM在ASP开发中,基本一个界面都有几千行业务代码,页面极其混乱维护成本高语言是C#IIS服务器
    

五. Http

1. 什么是http

HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上

  • 文本:html、字符串…
  • 超文本:图片、音乐、视频、定位、地图…
  • 端口:80、https:443

2. 两个时代

  • http1.0

      客户端/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
    
  • http2.0

      客户端/1.0:客户端可以与web服务器连接后,可以获得多个web资源
    

3. http请求

  • 客户端—发请求—服务器
百度
GeneralRequest URL: https://www.baidu.com/   请求地址
Request Method: GET                 请求方法
Status Code: 200 OK                 状态码
Remote Address: 36.152.44.95:443    远程地址
Referrer Policy: strict-origin-when-cross-origin    协议Request HeadersAccept:text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Connection: keep-alive

请求行

  • 请求方式:get(post)

      get:请求能够携带的参数比较少,大小有限制,会在浏览器URL地址栏显示,不安全,但高效post:请求能够携带数据没有限制,大小没有限制,不会再浏览器显示,安全,但不高效
    

消息头

Accept:text/html         告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br  支持哪种编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 告诉浏览器,它的语言环境
Cache-Control: max-age=0   缓存控制
Connection: keep-alive      告诉浏览器,请求完成时断开还是保持连接
HOST:    主机

4. http响应

百度
Response HeadersCache-Control: private      缓存控制
Connection: keep-alive      连接:保证连接
Content-Encoding: gzip      编码
Content-Type: text/html     类型

响应体:

Accept:text/html         告诉浏览器,它所支持的数据类型
Accept-Encoding: gzip, deflate, br  支持哪种编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 告诉浏览器,它的语言环境
Cache-Control: max-age=0   缓存控制
Connection: keep-alive      告诉浏览器,请求完成时断开还是保持连接
HOST:    主机
Refresh:告诉客户端多久刷新一次
Location:让网页重新定位

响应状态码

  • 200:请求响应成功
  • 3xx:请求重定向(你重新到我给你新的位置去)
  • 404:找不到资源
  • 5xx:服务器代码错误:500(502网关错误)

六. JSP执行流程

1. 第一次访问:

服务端将JSP翻译成Java( 严格来讲是Servlet文件),再将Java文件编译成.class文件,最终执行.class文件

存放的位置:

2. 第二次访问:

第二次直接访问class文件

如果服务端代码修改了,将会在访问时重新编译和翻译

因为第一次请求服务端,会有翻译和编译的过程,因此比较慢,后续访问可以直接访问class文件,所以访问速度会变快

但是如果服务端修改了代码,则再次访问时,会重新的翻译、编译

3. 对比自己写的index.jsp项目和翻译后的Java(严格来说是Servlet)文件

自己写的index.jsp


翻译后的Servlet文件

4. JSP和Servlet文件可以相互转换

早期只有Servlet文件

由于Servlet文件编写太过麻烦,所以出现了JSP文件

Java Web基础概述相关推荐

  1. Java Web基础

    目录 Java Web基础 HTML基础 HTML补充 CSS基础 CSS补充 JavaScript基础 JavaScript补充(例题) Java Web补充 Java Web基础 HTML基础 标 ...

  2. Java Web基础面试问题——Cookie和Session

    Java Web基础面试问题 Cookie 和 Session 的区别 什么是HTTP 超文本传输协议,是一种用于分布式.协作式和超媒体信息系统的应用层协议. 设计HTTP最初的目的是为了提供一种发布 ...

  3. Java SE 基础概述(一)

    Java SE基础概述 Java SE : Java Standard Edition Java ME : Java Mobile Edition Java EE : Java Enerprise E ...

  4. Java web基础学习笔记

    1.xml概述 1.1xml:xml一种数据存储格式,这种数据存储格式在存储数据内容的同时,还能够保存数据之间的关系 1.2xml保存数据的方法:xml利用标签来保存数据的内容,利用标签之间的嵌套关系 ...

  5. Java Web 应用概述

    1.java Web 应用是建立在java语言基础上的企业web应用系统,oracle公司根据行业发展和便于开发制定了一套规范:Java EE规范,截至到当前(2016.3.11)是java EE7规 ...

  6. Java web 基础

    以 GET /static/ 为开头:表示静态资源 一个页面请求时,该页面会有许多静态页面组成,会在服务器端产生对应的日志信息.我们在进行日志分析时,显然要将这部分内容过滤掉. 1. HTTP.GET ...

  7. 【博学谷学习记录】超强总结,用心分享 | Java入门级基础概述

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.Java概述 1.什么是Java 2.Java特点 3.Java开发环境 4.JDK下载与安装 二.Java基础语法 1 ...

  8. java WEB 基础复习_开篇--Java Web基础知识

    本篇主要是博客的开篇,是一些很基础的知识,我写博客的目的很简单.主要是供自己学习使用,督促自己学习,希望自己能坚持下来. 当前三大主流的Web动态网页技术是PHP(Personal Home Page ...

  9. 针对java web基础系统梳理随笔录

    POJO:Plain Ordinary Java Object 不含业务逻辑的java简单对象: 可以称为支持业务逻辑的协助类: 有时被称为Data对象,大量用于表现现实中的对象: 实际就是普通的Ja ...

最新文章

  1. 【英文文本分类实战】之四——词典提取与词向量提取
  2. 图灵奖得主杨立昆:AI+时代,未来将会如何被改变
  3. Windows环境安装Tomcat
  4. 自己动手,实现一种类似ListT的数据结构(二)
  5. MSSQLSERVER数据库- 配置数据库邮件配置的操作过程
  6. 自动化设计-框架介绍 TestCase
  7. 蓝桥杯2017年第八届C/C++省赛B组第四题-方格分割
  8. ES6之let与const
  9. Mybatis(2)——Mapper映射文件
  10. 01-移植AZPR SoC到Xilinx Aritix7 FPGA
  11. 据我所知目前就只飞秋表情库
  12. 一种可以自我修改的计算机器
  13. Revit二次开发_类别对应的BuiltInCategory枚举
  14. 【java】getResourceAsStream(“.properties“)配置文件无法读入问题
  15. 使用程序自动调用ANSYS并运行命令流文件
  16. Jenkins基础:API:10:使用API更新进行节点的连接和断开
  17. 数字化时代,小程序平台促进银行线上金融业务发展
  18. 晶体管分类、符号及作用
  19. 教授专栏16 | 李家涛: 善用科技拓新价值 是经营致胜关键
  20. 代码翻译小工具——后续

热门文章

  1. Flutter PopupMenuButton
  2. PHP array_chunk()函数
  3. STM32F407控制TM1638按键数码管显示模块
  4. 树莓派与DS18B20获取环境温度(Linux)
  5. 如何用 身份证OCR 接口进行快速开发
  6. esp8266获取网络时间
  7. “基尔霍夫电流定律”电子教案
  8. GP2Y10粉尘传感器
  9. 深圳 IT 男打人后疯狂凡尔赛,还教育民警,这回把 IT 人的脸都丢尽了……
  10. 15【存储过程和存储函数】