1. Web概述
1.1 Web和JavaWeb的概念
Web是全球广域网,也成为万维网,能够通过浏览器访问网站。
在我们日常的生活中,经常会使用浏览器去访问 百度 、 京东 、等这些网站,这些网站统称为Web网站。我们知道了什么是Web,那么JavaWeb又是什么呢?
顾名思义,JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。
1.2 数据库
- 数据库主要负责存储数据。
- 整个Web的访问过程如下图所示:
⑴浏览器发送一个请求到服务端,去请求所需要的相关资源
(2)资源分为动态资源和静态资源,动态资源可以是使用Java代
码按照Servlet和JSP的规范编写的内容;
(3)在Java代码可以进行业务处理也可以从数据库中读取数据;
(4)拿到数据后,把数据交给HTML页面进行展示,再结合CSS
和avaScript使展示效果更好;
(5)服务端将静态资源响应给浏览器;
(6浏览器将这些资源进行解析;
(7)解析后将效果展示在浏览器,用户就可以看到最终的结果
1.3HTTP协议和WEB服务器
HTTP协议:
- HTTP协议:主要定义通信规则
- 浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,TCP、UDP,这些都属于规则,这里我们需要使用的是HTTP协议,这也是一种规则。
HTTP协议的特点
- 基于TCP协议: 面向连接,安全
TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协
议,在数据传输方面更安全。 - 基于请求-响应模型的:一次请求对应一次响应
请求和响应是一一对应关系 - HTTP协议是无状态协议:对于事物处理没有记忆能力。每次请求-响应都是独立的
无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。这种特性有优点也有缺点,
(1)缺点:多次请求间不能共享数据
(2) 优点:速度快
请求之间无法共享数据会引发的问题,如:
京东购物, 加入购物车 和 去购物车结算 是两次请求,HTTP协议的无状态特性,加入购物车请求响应结束后,并未记录加入购物车是何商品发起去购物车结算的请求后,因为无法获取哪些商品加入了购物车,会导致此次请求无法正确展示数据具体使用的时候,我们发现京东是可以正常展示数据的,原因是Java早已考虑到这个问题,并提出
了使用 会话技术(Cookie、Session) 来解决这个问题。
WEB服务器:
- Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据;
- 浏览器按照HTTP协议发送请求和数据,后台就需要一个Web服务器软件来根据HTTP协议解析请求和数据,然后把处理结果再按照HTTP协议发送给浏览器。
创建Maven Web 项目
使用Maven来创建Web项目,创建方式有两种:使用骨架和不
使用骨架:
使用骨架
1.创建Maven项目
2.选择使用Web项目骨架
3.输入Maven项目坐标创建项目
4.确认Maven相关的配置信息后,完成项目创建
5.删除pom.xml中多余内容
6.补齐Maven Web项目缺失的目录结构
1.创建Mavn项目:
2.选择使用Web项目骨架
3. 输入Maven项目坐标创建项目
4.确认Maven相关的配置信息后,完成项目创建
5. 删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别
6.补齐Maven Web项目缺失的目录结构,默认没有java和resources目录,需要手动完成创建补齐,
最终的目录结果如下
不使用骨架
具体的步骤包含:
1.创建Maven项目
2.选择不使用Web项目骨架
3.输入Maven项目坐标创建项目
4.在pom.xml设置打包方式为war
5.补齐Maven Web项目缺失webapp的目录结构
6.补齐Maven Web项目缺失WEB-INF/web.xml的目录结构
- 创建Maven项目
- 选择不使用Web项目骨架
- 输入Maven项目坐标创建项目
- 在pom.xml设置打包方式为war,默认是不写代表打包方式为jar
- 补齐Maven Web项目缺失webapp的目录结构
- 补齐Maven Web项目缺失WEB-INF/web.xml的目录结构
- 补充完后,最终的项目结构如下:
上述两种方式,创建的web项目,都不是很全,需要手动补充内容,至于最终采用哪种方式来创建Maven Web项目,都是可以的,根据各自的喜好来选择使用即可。