java web基础
软件架构:
1. C/S:Client/Server 客户端/服务器端:
* 在用户本地有一个客户端程序,在远程有一个服务器端程序
* 如:QQ、迅雷…
* 优点:
* 用户体验好
* 缺点:
* 开发、安装、部署、维护麻烦
2. B/S:Browser/Server 浏览器/服务器端:
* 只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序
* 优点:
* 开发、安装、部署、维护简单
* 缺点:
1. 如果应用过大,用户体验可能会受到影响
2. 对硬件要求过高
3. B/S架构详解
* 资源分类:
1. 静态资源:
* 使用静态网页开发技术发布资源
* 特点
* 所有用户访问,得到的结果是一样的
* 如:文本、图片、音频、视频,HTML,CSS,JavaScript
* 如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源
2. 动态资源:
* 使用动态网页及时发布资源
* 特点:
* 所有用户访问得到的结果可能不一样
* 如:jsp/servelet,php,asp…
* 如果用户请求是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器
* 我们要学习动态资源,必须先学习静态资源!
* 静态资源:
* HTML:用于搭建基础网页,展示页面内容
* CSS:用于美化页面,布局页面
* JavaScript:控制页面元素,让页面有一些动态的效果
HTTP协议
* 概念:Hyper Text Transfer Protocol 超文本传输协议
* 传输协议:定义了客户端和服务器端通信时发送数据的格式
* 特点:
1. 基于TCP/IP的高级协议
2. 默认端口:80
3. 基于请求响应模型:请求一次响应一次
4. 无状态响应:每次请求之间相互独立,不能交互数据
* 历史版本
* 1.0:每一次请求就会建立一个新的连接
* 1.1:服用连接
* 请求消息数据格式
1. 请求行
请求方式请求url请求协议/版本
GET /login.html HTTP/1.1.
* 请求方式:
* HTTP协议有七种请求方式,常用的有两种
* GET:
1. 请求参数在请求行中,在url后
2. 请求的url长度是有限制的
3. 不太安全
* POST:
1. 请求参数在请求体中
2. 请求的url是没有限制的
3. 相对安全
2. 请求头:客户端浏览器告诉服务器一些信息
请求头名称:请求头值
* 常见的请求头:
1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器的版本信息
* 可以在服务器端获取该头的信息,来解决浏览器兼容问题
2. Referer:http://localhost/login.html
* 告诉服务器,我(当前请求)从哪里来
* 作用:
1. 防盗链:
2. 统计工作:
3. 请求空行
空行:用来分割请求头和请求体
4. 请求体(正文)
* 封装POST请求消息的请求参数
*字符串格式:
PQST /login.html HTTP/1.1
Host: localhost
user-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; X64; rv:60.0) Gecko/ 20100101 Firefox/60.0
Accept: text/html , application/ xhtml+xml , application/xml;q=0.9,*/*;q=0.8
Accept- Language: zh-CN, zh;q=0.8,zh- TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept- Encoding: gzip,deflate
Referer:http://localhost/login.html
Connection: keep-alive
Upgrade- Insecure- Requests: 1
username=zhangsan
WEB服务器原理
我的理解为:
1. web服务器可以接收客户端浏览器用户发来的请求然后处理请求,最后作出响应回应客户端浏览器。
2.在服务器中可以部署web项目,让用户通过浏览器来访问这些项目
查到它的工作原理:
步骤1.连接过程。连接过程就是Web服务器和其浏览器之间所建立起来的一种连接
步骤2:请求过程。请求过程就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。
步骤3:应答过程。应答过程就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。
步骤4:关闭连接。关闭连接就是当上一个步骤–应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。
Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。
java web开发环境与搭建
* 常见的java相关的web服务器软件:
* webLogic : oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
* webSphere : IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
* JBOSS : JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
* Tomcat : Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet/jsp。 开源的,免费的。
* JDK
java开发离不开JDK
我用的是jdk1.8.0_202,具体安装配置过程就不写了,学过javase的这些应该都是基础。
* Tomcat
我用的是tomcat服务器,毕竟他免费嘛。
apache-tomcat-9.0.21版本,怎么安装配置也不写了,网络上都可以查到
IDEA
很好用的一款java集成开发环境,安装过程也省略,网上都能找到
IEDA配置tomcat
指导本机安装的tomcat路径,配置成功过后
以后也可以在这里增加修改一些配置
这样就把idea和tomcat关联起来了
还有种方法就是把web项目放到
这个目录下,启动tomcat就可以访问web项目,但这种方式用于最终的项目部署了。