文章更新时间:2020/07/24

一、基本概念

web资源

  Internet上供外界访问的Web资源分为两种:

  • 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
  • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

PS:动态web资源开发时使用Java进行数据渲染的技术统称为Javaweb

web应用

  定义:多个web资源用于对外提供服务时,把它们放在一个目录中,这就组成一了个web应用(或web应用程序)

web类型

静态web

流程图:

缺点:

  • Web页面中的内容无法动态更新。
  • 无法连接数据库。

动态web

流程图:

C/S和B/S架构

C/S:客户端/服务器的架构;客户端高度依赖于服务器端,响应快,但是随之而来的服务端升级时,客户端也要同步更新,成本消耗大。

B/S:浏览器/服务器的架构;客户端与服务器端依赖小,但服务器端要考虑兼容性问题,对请求的处理压力主要在服务器端。

二、WEB服务器

  定义:一种被动程序,可以向发出请求的浏览器提供文档,但只有浏览器发出请求时,服务器才会响应。

三、tomcat(web服务器)

  PS:tomcat的安装与配置此处省略

  PS:MyEclipse中是把外部的Tomcat关联到MyEclipse中,而EclipseIDEA是直接复制了一套Tomcat环境到编辑器中,实际项目不会发布到外部Tomcat的webapps目录下,而是在编辑器中运行的

结构

配置文件

  路径:conf/server.xml

浏览器与服务器交互过程

  如图,在浏览器的地址栏中输入URL地址"http://www.gacl.cn:8080/JavaWebDemo1/1.jsp"去访问服务器上的1.jsp这个web资源的过程中,浏览器和服务器做了以下几个操作:

  • (本机找IP地址)浏览器根据主机名"www.gacl.cn"去操作系统的Hosts文件中查找主机名对应的IP地址。
  • (DNS服务器找IP地址浏览器如果在操作系统的Hosts文件中没有找到对应的IP地址,就去互联网上的DNS服务器上查找"www.gacl.cn"这台主机对应的IP地址。
  • (根据IP地址连接web服务器)浏览器查找到"www.gacl.cn"这台主机对应的IP地址后,就使用IP地址连接到Web服务器。
  • (使用HTTP协议发请求)浏览器连接到web服务器后,就使用http协议向服务器发送请求,发送请求的过程中,浏览器会向Web服务器以Stream(流)的形式传输数据,告诉Web服务器要访问服务器里面的哪个Web应用下的Web资源,如下图所示:

  

  这就是浏览器向Web服务器发请求时向服务器传输的数据,解释一下"GET /JavaWebDemo1/1.jsp HTTP/1.1"这里面的内容,

    • GET :告诉Web服务器,浏览器是以GET的方式向服务器发请求。
    • /JavaWebDemo1/1.jsp :告诉Web服务器,浏览器要访问JavaWebDemo1应用里面的1.jsp这个Web资源。
    • HTTP/1.1 :告诉Web服务器,浏览器是以HTTP协议请求的,使用的是1.1的版本
  • (等待web服务器响应)浏览器做完上面4步工作后,就开始等待,等待Web服务器把自己想要访问的1.jsp这个Web资源传输给它。
  • (服务器解析浏览器请求并返回)服务器接收到浏览器传输的数据后,开始解析接收到的数据,服务器解析"GET /JavaWebDemo1/1.jsp HTTP/1.1"里面的内容时知道客户端浏览器要访问的是JavaWebDemo1应用里面的1.jsp这个Web资源,然后服务器就去读取1.jsp这个Web资源里面的内容,将读到的内容再以Stream(流)的形式传输给浏览器,如下图所示:

  

  这个就是Web服务器传输给浏览器的数据。

  • (浏览器渲染页面)浏览器拿到服务器传输给它的数据之后,就可以把数据展现给用户看了,如下图所示:

  

  看到的这个"JavaWebDemo1"就是浏览器解析服务器发送回来的数据后的效果

运行

(1)先把需要运行的应用打成war包形式

  命令:jar  -cvf  名称.war  需要打包的文件

(2)tomcat中运行war包

  把war包放到Tomcat服务器的webapps目录下,当Tomcat服务器启动时,就会自动将webapps目录下的war包解压。

PS:127.0.0.1又称为回送地址,表示本机,无论是否连接网络,均可访问。 

PS:本机开发也经常使用localhost来代替127.0.0.1来访问,这是通过DNS来解析的结果。DNS配置(host文件)的地址:C:\Windows\System32\drivers\etc

参考资料:

Java Web学习(一)Web基础的更多相关文章

  1. Java最新学习线路(基础,源码,项目,实战)

    如需获取以下学习资源请关注公众号:Java编程指南 我们为自学者编程的或初学java的小伙伴们准备了一整套完整的学习资源和文章,还有我自己在自学路上的一些总结和学习线路,希望能帮到小伙伴们,如果有什么 ...

  2. java安全学习-环境准备/基础知识

    补java的坑,开始! 1.Intellij一些快捷键 intell常用快捷键: ctrl+n 快速查找定位类的位置 ctrl+q 快速查看某个类的文档信息 shift + F6 快速类.变量重命名 ...

  3. Java开发学习(三)----Bean基础配置及其作用范围

    一.bean基础配置 对于bean的基础配置如下 <bean id="" class=""/> 其中,bean标签的功能.使用方式以及id和clas ...

  4. 吴裕雄--天生自然 JAVA开发学习:Applet 基础

    import java.applet.*; import java.awt.*; public class HelloWorldApplet extends Applet { public void ...

  5. Java Script 学习笔记 (一) 基础

    1. 设置变量 const: 赋常量,不可更改. let :设置可更改变量. ES6 中推荐使用let 而不是var. Let 和var的区别 : let 将变量的作用域限定在当前{}中, var 定 ...

  6. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  7. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

  8. Java Web学习系列——Maven Web项目中集成使用Spring

    参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...

  9. Java web 学习之旅

    java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户 ...

随机推荐

  1. fdisk时WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.

    现象:划分磁盘有警告, fdisk可以看到 lsblk却没有 partprobe刷新分区还是不行 放大招 #reboot   #这个是最好的方法(重启后新的分区表不一定生效) 或 # partx -a ...

  2. MYSQL语法(一)

    数据表准备: CREATE TABLE student3 ( id int, name varchar(20), age int, sex varchar(5), address varchar(10 ...

  3. YouCompleteMe unavailable: requires Vim compiled with Python 2.x support

    问题:YouCompleteMe unavailable: requires Vim compiled with Python 2.x support 解决:重新编译,加入--enable-pytho ...

  4. golang grpc demo

    1.grpm 安装: git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc 2.proto, ...

  5. zookeeper简单实现注册与发现以及其他基本操作

    添加依赖 <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookee ...

  6. 表格取消全选框,用文字表示--Echarts ElementUi

    1.先看看实现的图 一. 添加添加复选框列 <el-table v-loading="zongShipLoading" tooltip-effect="dark&q ...

  7. oeasy教您玩转linux010106这儿都有啥 ls

    回忆上次内容 上个实验我们查询了 ls 的手册: man ls

  8. python3笔记-读取ini配置文件

    在代码中经常会通过ini文件来配置一些常修改的配置.下面通过一个实例来看下如何写入.读取ini配置文件. 需要的配置文件是: [path] back_dir = /Users/abc/PycharmP ...

  9. 【web系统UI自动化】关于UI自动化的总结

    实施过了web系统的UI自动化,回顾梳理下,想到什么写什么,随时补充. 首先,自动化测试不是手动测试的替代品,是比较好的补充,而且不是占大比重的补充. 70%的测试工作集中在底层接口测试和单元测试,2 ...

  10. 浅谈备受开发者好评的.NET core敏捷开发工具,讲讲LEARUN工作流引擎

    通俗来讲,所谓一个工作流管理系统,如果将其拆分出来一个个单讲话,大致可理解为由工作流引擎.工作流设计器.流程操作.工作流客户界面. 流程监控.表单设计器.与表单的集成以及与应用程序的集成等几个部分组成 ...