Java Web学习(一)Web基础
文章更新时间: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中,而Eclipse和IDEA是直接复制了一套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基础的更多相关文章
- Java最新学习线路(基础,源码,项目,实战)
如需获取以下学习资源请关注公众号:Java编程指南 我们为自学者编程的或初学java的小伙伴们准备了一整套完整的学习资源和文章,还有我自己在自学路上的一些总结和学习线路,希望能帮到小伙伴们,如果有什么 ...
- java安全学习-环境准备/基础知识
补java的坑,开始! 1.Intellij一些快捷键 intell常用快捷键: ctrl+n 快速查找定位类的位置 ctrl+q 快速查看某个类的文档信息 shift + F6 快速类.变量重命名 ...
- Java开发学习(三)----Bean基础配置及其作用范围
一.bean基础配置 对于bean的基础配置如下 <bean id="" class=""/> 其中,bean标签的功能.使用方式以及id和clas ...
- 吴裕雄--天生自然 JAVA开发学习:Applet 基础
import java.applet.*; import java.awt.*; public class HelloWorldApplet extends Applet { public void ...
- Java Script 学习笔记 (一) 基础
1. 设置变量 const: 赋常量,不可更改. let :设置可更改变量. ES6 中推荐使用let 而不是var. Let 和var的区别 : let 将变量的作用域限定在当前{}中, var 定 ...
- Java Web 学习路线
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- Java web 学习之旅
java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户 ...
随机推荐
- 软工团队项目之团队展示&选题(OnTime——S.L.N)
软工团队项目之团队展示&选题(OnTime——S.L.N) 一.团队展示 队名:『S.L.N』即Seigelion——乃“攻城狮”之意. 队员学号: 团队项目描述:(项目名称:OnTime) ...
- 可爱的python
可爱的python 作者: 哲思社区出版社: 电子工业出版社 优点 1. 案列讲解很详细,前几章的内容恰好是我想要了解的,例如利用python os模块读取磁盘的文件,或者获得文字的编码方式.这些内 ...
- SPSSAU数据分析思维培养系列3:分析思路篇
本文章为SPSSAU数据分析思维培养的第3期文章. 上文讲解如何选择正确的分析方法,除了有正确的分析方法外,还需要把分析方法进行灵活运用.拿到一份数据,应该如何进行分析,总共有几个步骤,第一步第二步应 ...
- SQL Server解惑——标识列的限制和跳号现象
1:每个表只能创建一个标识列. 如下测试所示,如果表中有一个标识列,新增一个标识列就会遇到错误"Multiple identity columns specified for table ...
- Typescript | Vue3源码系列
TypeScript 是开源的,TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript.编译出来的 JavaScript 可以运行在任何浏览器上.TypeS ...
- 屏幕适配 部分知识点总结,CSDN小冰原创
/** * 作者:David Zheng on 2015/11/7 15:38 * * 网站:http://www.93sec.cc * * 微博:http://weibo.com/mcxiaob ...
- Sql 注入----学习笔记
先了解下CRLF,CRLF常用在分隔符之间,CR是carriage retum(ASCII 13,\r) LF是Line Feed (ASCII 10,\n), \r\n这两个字符类似于回车是用于换行 ...
- 尝试MatCap类型shader
听说MatCap能在低端机上做出很漂亮的pbr效果,就尝试了一下. MatCap全称MaterailCapture,里面存的是光照信息,通过法线的xy分量去采样matcap,得到在该方向法线的光照信息 ...
- 02 axios
request.js import axios from 'axios' const config = require('@/config') const instance = axios.creat ...
- 新三种求数列中值SQL之效率再比拼
在 https://www.cnblogs.com/xiandedanteng/p/12677688.html 中我列举了三种求中值方案,其中日本人MICK的做法因为不适用于二百万结果集而放弃,取而 ...