目录
1、Web概述
1.1、 Web和JavaWeb的概念
1.2、JavaWeb技术栈介绍
1.2.1、B/S架构
1.2.2、静态资源
1.2.3、动态资源
1.2.4、数据库
1.2.5、HTTP协议
1.2.6、Web服务器
1.3、Web核心学习内容
2、HTTP
2.1、简介
2.2、HTTP协议特点
2.3、请求数据格式
2.3.1、格式介绍
2.3.2、GET&POST实例演示
2.4、响应数据格式
2.4.1、格式介绍
2.4.2、响应状态码
2.4.3、自定义服务器
3、Tomcat
3.1、简介
3.2、基本使用
3.2.1、下载
3.2.2、安装
3.2.3、卸载
3.2.4、启动
3.2.5、关闭
3.2.6、配置
3.2.7、部署
3.3、Maven创建Web项目
3.3.1、Web项目结构
3.3.2、创建Maven Web项目
3.4、IDEA使用Tomcat
3.4.1、集成本地Tomcat
3.4.2、Tomcat Maven插件
4、Servlet
4.1、简介
4.2、快速入门
4.3、执行流程
4.4、生命周期
4.5、方法介绍
4.6、体系结构
4.7、urlPattern配置
4.8、XML配置
文章学习目标:
- 了解JavaWeb开发的技术栈
- 理解HTTP协议和HTTP请求与响应数据的格式
- 掌握Tomcat的使用
- 掌握在IDEA中使用Tomcat插件
- 理解Servlet的执行流程和生命周期
- 掌握Servlet的使用和相关配置
Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。
在我们日常的生活中,经常会使用浏览器去访问百度、京东等这些网站,这些网站统称为Web网站。
我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义JavaWeb就是用Java技术来解决相关web互联网领域的技术栈。
学习完JavaWeb之后,就可以使用Java语言开发上述所说的网站。
而国内很多大型网站公司也是首选Java语言来解决web互联网相关的问题。
如下的公司的系统是使用Java语言编写:
使用Java语言开发互联网系统是有很多技术栈,下面详细介绍
深入了解JavaWeb技术栈之前,有一个很重要的概念:B/S架构
什么是B/S架构?
B/S 架构:Browser/Server,浏览器/服务器 架构模式,
它的特点是:客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。
浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。
可以通过下面这张图来回想我们的上网过程:
动态资源虽然可以处理逻辑,但是当用户来登录的时候,就需要输入用户名和密码等相关的信息,
这个时候又需要解决的一个问题是,用户在注册的时候填入的用户名和密码、以及我们经常会访问到一些数据列表的内容展示。
这些数据都存储在哪里?我们需要的时候又是从哪里来取呢?很明显这些是需要存储在数据库的。
以后数据库是部署在服务器上面的,可以存储大量的数据,以及快速的存取数据。
下面介绍数据库的处理逻辑。
数据库主要负责存储数据。
整个Web的访问过程就如下所示:
1、浏览器发送一个请求到服务端,去请求所需要的相关资源;
2、资源分为动态资源和静态资源,动态资源可以是使用Java代码按照Servlet和JSP的规范编写的内容
3、在Java代码中可以进行业务处理也可以从数据库中读取数据;
4、拿到数据后,把数据交给HTML页面进行展示,再结合CSS和JavaScript使其展示效果更好;
5、服务端将静态资源响应给浏览器;
6、浏览器将这些资源进行解析;
7、解析后将效果展示在浏览器,用户就可以看到最终的结果。
HTTP协议:主要定义通信规则
浏览器发送请求给服务器,服务器响应数据给浏览器,这整个过程都需要遵守一定的规则,之前学习过的TCP和UDP,这些都属于规则,这里我们需要使用的是HTTP协议,这也是一种规则。
到这为止,关于JavaWeb中用到的技术栈就介绍完了,这里面就只有HTTP协议、Servlet、JSP以及Tomcat这些知识是之前没有学习过的,所以整个Web核心主要就是来学习这些技术
整个Web核心,学习内容如下:
在此篇文章中,暂时先介绍HTTP、Tomcat、Servlet。
学习内容简介:
HTTP概念:HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
注意:在浏览器中如果看不到上述内容,需要清除浏览器的浏览数据。chrome浏览器可以使用ctrl+shift+Del进行清除。
所以学习HTTP主要就是学习请求和响应数据的具体格式内容。
HTTP协议有它自己的一些特点,分别是:
无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。
这种特性有优点也有缺点:
请求之间无法共享数据会引发的问题,如:
其实是Java早已考虑到这个问题,并提出了使用会话技术(Cookie、Session)来解决这个问题。
刚才提到HTTP协议是规定了请求和响应数据的格式,下面介绍具体格式:
请求数据总共分为三部分内容,分别是请求行、请求头、请求体:
分别是GET[请求方式] /[请求URL路径] HTTP/1.1[HTTP协议及版本]
请求方式有七种,最常用的是GET和POST
2.请求头:第二行开始,格式为key: value形式
请求头中会包含若干个属性,常见的HTTP请求头有:
这些数据有什么用处?
服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同业务需求,如:
3.请求体: POST请求的最后一部分,存储请求参数
如上图红线框的内容就是请求体的内容,请求体和请求头之间是有一个空行隔开。此时浏览器发送的是POST请求,为什么不能使用GET呢?这时就需要回顾GET和POST两个请求之间的区别了:
这个部分请查看我的另外一篇文章的"4.2、
HTML | 一文带你了解并上手前端三件套之HTML_︶ㄣ释然的博客-CSDN博客正在上传…重新上传取消https://blog.csdn.net/qq_60735796/article/details/128956983?app_version=5.14.3&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128956983%22%2C%22source%22%3A%22qq_60735796%22%7D&uLinkId=usr1mkqgl919blen&utm_source=apphttps://blog.csdn.net/qq_60735796/article/details/128956983?app_version=5.14.3&code=app_1562916241&csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128956983%22%2C%22source%22%3A%22qq_60735796%22%7D&uLinkId=usr1mkqgl919blen&utm_source=app
小结:
响应数据总共分为三部分内容,分别是响应行、响应头、响应体
响应头中会包含若干个属性,常见的HTTP响应头有:
3、响应体: 最后一部分。存放响应数据下图中.