1.1、Web开发概念:
-
静态Web:静态网页资源,数据不会变化,如:html,css
-
动态Web:数据会发生变化
- 技术栈:Servlet/JSP、ASP、PHP
在Java中,动态网页资源开发的技术统称为JavaWeb
1.2、Web应用程序
概念:可以提供浏览器访问的程序
命令:ping www.baidu.com查询物理ip
同一个ip下可能有多个电脑,但是通过交换机可以区别在哪个电脑上
URL
这些统一的web资源会被放在同一个文件夹下,即web应用程序–>程序通过Tomcat服务器执行
一个Web应用由多个部分组成:
- 技术栈:Servlet/JSP、ASP、PHP
-
html、css、js
-
jsp、servlet
-
java程序
-
jar包
-
配置文件(Properties)
1.3、静态Web
图片
静态Web存在的缺点:
- Web页面无法动态更新,所有用户看到的都是同一个页面
-解决:
1. 轮播图(伪动态)
2. js
3. VBScript - 无法与数据库交互(数据无法持久化——没办法保存数据;用户无法交互)
1.4、动态Web
图片
页面会动态展示:Web页面效果因人而异
缺点:
- 加入服务器的动态Web资源出现了错误,我们需要重新编写后台程序,重新发布——即停机维护
优点:
Web页面可以动态更新
它可以与数据库交互(数据持久化)
2.1Web服务器计数
- ASP:
- 微软出版
- 在HTML中嵌入了VB的脚本,ASP+COM
- 在ASP开发中,基本一个页面如下,会造成混乱;
<h1>
<%System.out.println("hello")%>
</h1>
- C#
- 受限于(Internet information Services)IIS服务器
- JSP/Servlet:
- sun公司主推的B/S架构(浏览器和服务器;C/S架构:客户端和服务器)
- 基于Java语言的(所有的大公司,或者一些开源的组件,都是用Java写的)
- 可以承载三高问题带来的影响
- 语法像ASP
- PHP:
- 开发速度快,功能强大,跨平台,代码简单
- 无法承载大访问量的情况(局限于中小型)
- 中国70%都是中小型,而且有开源的WP模板引擎,导致PHP流行
- …
2.2Web服务器
服务器是一种被动的操作,是用来请求用户的的一些请求和给用户的一些响应信息
IIS:…
Tomcat:
- 技术先进、性能稳定,而且免费(初学者优选)
- 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器
java的jdk中的bin是执行夹;include包含很多c语言的文件,比如一些底层的;jre内部环境,java的核心jar包是rt.rar(反射中学习,笔试刷题的来源是rt包)
下载Tomcat:
1.安装或解压
2.了解配置文件及目录结构
3.这个东西的作用
3、Tomcat
3.1安装Tomcat
3.2
Tomcat官网
conf(配置文件夹):服务器核心配置文件server.xml,其Connector设置了端口号为8080,其Host设置了主机的名称localhost
页面资源文件夹wecapps:其下的每一个文件夹代表一个web应用,root文件夹下有个index.jsp,实际上访问的就是这个页面
配置文件都可以改:C:–>windows–>system32存放系统的核心配置存放驱动–>driver文件夹–>etc代表配置–>locals代表主机——可以配置主机的名称localhost为其他,可以配置启动的端口号
- Tomcat的默认端口号为8080
- mysql的默认端口号为3306
- http的默认端口号为80
- https的默认端口号为443
网站是如何访问的:
1.输入域名,回车
2.检查本机host文件下有没有这个域名的映射
- 有,直接返回对应的ip地址,这个地址中有我们需要访问的web程序,可以直接访问
- 无,去DNS服务器(管理所有域名的地方)上寻找,途中有很多中间商,找得到就返回,找不到就显示丢失
可以配置一下环境变量(可选项)
…
3.4发布一个web网站
docx:tomcat文档页面
examples:文档(这里不会的可以看源码自学)
- 将自己写的网站,放到服务器(tomcat)中指定的web应用文件夹(webapps)下,就可以访问了
网站应该有的结构:
--webapps:tomcat服务器的web目录
-ROOT
-kuangstudy:网站的目录名
-index.html:默认的首页
-WEB - INF:放网站程序的
-classes:java程序
-lib:web应用所依赖的jar包
-web.xml:网页配置文件
-static:资源文件
-css
-style.css
-js
-img
-...
4.HTTP
4.1、什么是http(超文本传输协议)
http是一个简单的请求-响应协议,它通常运行在TCP之上。
超文本:图片、音乐、视频、定位、地图…
https:s是security,安全的
4.2、两个时代
- http1.0:HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,即第二次请求就断开连接
- http2.0:HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源
4.3、http请求
百度为例(General意味着客户端和服务器都有):
//General
Request URL: https://www.baidu.com/——请求地址(请求行)
Request Method: GET——get方法
Status Code: 200 OK——状态码
Remote Address: 14.215.177.38: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
http请求分为
- 请求行:主要是协议
请求行中的请求方式:GET(当前例子)
请求方式:Get、Post、restful风格:HEAD、DELETE、PUT、TRACT
get:一次请求携带的参数较少,大小有限制,会在浏览器的url地址栏显示数据内容,不安全但高效
post:一次请求携带的参数没有限制,大小没有限制,安全但不高效(高效是相对流量而言) - 请求头
请求头模板
Accept——告诉浏览器支持的数据类型
Accept-Encoding——支持的编码格式:GBK、UTF-8、GB2312、ISO8859-1
Accept-Language——告诉浏览器,它的语言环境
Cache-Control——缓存控制
Connection——告诉浏览器,请求完成是断开还是保持连接
Host——主机
...
4.4、http响应
百度为例
//General
Request URL: https://www.baidu.com/——请求地址
Request Method: GET——get方法
Status Code: 200 OK——状态码
Remote Address: 14.215.177.38:443——百度远程地址+端口
Cache-Control: private——缓存控制
Connection: keep-alive——连接(保持连接)
Content-Encoding: gzip——编码
Content-Type: text/html;charset=utf-8——类型
- 响应头略
- 响应体
Accept——告诉浏览器支持的数据类型
Accept-Encoding——支持的编码格式:GBK、UTF-8、GB2312、ISO8859-1
Accept-Language——告诉浏览器,它的语言环境
Cache-Control——缓存控制
Connection——告诉浏览器,请求完成是断开还是保持连接
Host——主机
Refrush——告诉客户端,多久刷新一次
Location——让网页重新定位
...
3.响应状态码
200:请求响应成功
3**:请求重定向
重定向:你重新去到我给你的新位置去
4**:找不到资源,常见404
5**:服务器代码错误,常见500、502:网关错误
5.Maven
在Java web中,需要使用大量jar包,我们要手动导入,因此如何自动导入并且配置jar包-Maven诞生,Maven是一个架构管理工具
5.1、Maven项目架构管理工具
核心思想:约定大于配置(约束性)
Maven会规定你如何去编写我们的java代码,必须按照这个规范来
5.2、下载安装Maven
binary 指的是编译后的二进制文件。是可以直接使用的。(apache-maven-3.2.3-bin.zip)
source.zip是maven的源码包。
tar.gz 是一种压缩文件,在Linux和OSX下的
下载完成解压bin.zip
apache-maven-3.2.3-bin中的boot文件夹存放启动需要的选项,即一些jar包。conf文件夹的setting.xml配置文件:proxies配置连接的一些端口信息,servers服务,mirrors镜像:镜像是用来方便下载的,Maven是国外的,国内有墙,我们访问非常慢,甚至无法访问,因此可以翻墙,如利用VPN
5.3、配置环境变量
有时候不配置也可以使用maven,但按照规范走:
在我们的系统环境变量中,配置如下配置:
- M2_HOME——maven目录下的bin目录(为什么要这样命名:很多自动依赖的系统,如springboot、springcloud里面,它引用m2的地址,不配置不影响现在但影响以后的学习)
- MAVEN_HOME——maven的目录
- 在系统的path中配置maven目录(和m2的路径一样)——%MAVEN_HOME%\bin
命令行检查安装是否成功:mvn -version ——mvn在bin目录下的mvn.cmd
PS:可以配置多个maven环境,因为版本不冲突
5.4、阿里云镜像
镜像作用:加速下载
国内尽量使用阿里云下载
在conf配置的settings.xml的mirrors中添加
此处代码不支持一些镜像的操作(坑)
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
此处代码支持一些镜像的操作
<mirror>
<id>alimaven</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
镜像可以配置多个,只是不一定生效
5.5、本地仓库
在本地的仓库,远程的仓库;
- 建立一个本地的仓库
看conf配置的settings.xml中国的localRespository,注意不要被注释处的默认地址忽悠,可能没有这个地址,可以自己去修改仓库的地址 - 创建Maven项目(idea软件)
- create new project–>Maven–>(可选,勾选是为了使用maven的模板)勾选create from archetype–>选择java环境变量安装目录–>选择maven-archetype-webapp(会提示是一个简单的Java Web项目——创建一个maven web项目(ps:普通的maven项目什么都不用勾))–>next