JavaWeb简介
1. 概述
在Java中,动态web资源开发的技术统称为JavaWeb;
web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理。
静态web
缺点
- Web页面无法动态更新,所有用户看到都是同一个页面
- 轮播图,点击特效:伪动态
- JavaScript [实际开发中,它用的最多]
- VBScript
- 它无法和数据库交互(数据无法持久化,用户无法交互)
动态web
缺点:
- 加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布;
- 停机维护
优点:
- Web页面可以动态更新,所有用户看到都不是同一个页面
- 它可以与数据库交互 (数据持久化:注册,商品信息,用户信息........)
2. 几种动态网页语言
ASP:
- 微软:国内最早流行的就是ASP
- 在HTML中嵌入了VB的脚本
- 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其换乱
- 维护成本高
- C#
- IIS
php:
- PHP开发速度很快,功能很强大,跨平台,代码很简单
- 适合中小企业
- 无法承载大访问量的情况(局限性)
JSP/Servlet :
- 基于Java语言的
- 可以承载三高(高性能、高可用、高并发)问题带来的影响;
- 语法像ASP , ASP-->JSP
3. Tomcat服务器
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,它是最佳的选择
3.1. 几个常见的端口号
- tomcat的默认端口号为:8080
- mysql:3306
- http:80
- https:443
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
可以配置主机的名称
- 默认的主机名为:localhost->127.0.0.1
- 默认网站应用存放的位置为:webapps
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
3.2. 网站访问的流程
输入一个域名,回车
查看host文件有无本地映射
若有,直接返回对应ip地址,进行web访问。
若无,查询DNS服务器,找到的话返回ip地址,进行web访问,找不到则返回错误。
3.3. 网站的结构
将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了。
--webapps :Tomcat服务器的web目录
-ROOT
-web1 :网站的目录名
- WEB-INF
-classes : java程序
-lib:web应用所依赖的jar包
-web.xml :网站配置文件
- index.html 默认的首页
- static
-css
-style.css
-js
-img
-.....
4. HTTP
4.1. 概念
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
http 80
https 443
4.2. 两个时代
- HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
4.3. HTTP请求
客户端---发请求(Request)---服务器
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:183.232.231.172:443
Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9 语言
Cache-Control:max-age=0
Connection:keep-alive
请求行
请求方式:Get,Post等
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效。
- post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
消息头
Accept:告诉浏览器,它所支持的数据类型 Accept-Encoding:支持哪种编码格式 Accept-Language:告诉浏览器,它的语言环境 Cache-Control:缓存控制 Connection:告诉浏览器,请求完成是断开还是保持连接 HOST:主机..../.
4.4. HTTP响应
服务器---响应-----客户端
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
响应体
Accept:告诉浏览器,它所支持的数据类型 Accept-Encoding:支持哪种编码格式 Accept-Language:告诉浏览器,它的语言环境 Cache-Control:缓存控制 Connection:告诉浏览器,请求完成是断开还是保持连接 HOST:主机..../. Refresh:告诉客户端,多久刷新一次 Location:让网页重新定位
响应状态码
200:请求响应成功 200
3xx:请求重定向
4xx:找不到资源 404
5xx:服务器代码错误 500 502:网关错误