一.概述
javaweb分为静态web和动态web俩种
注意:当一个javaweb应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理
1.静态web
提供给所有人看的数据始终不会发生变化,以独立文件保存到数据库中,每一次修改都需要重新对服务器的文件进行一次下载上传
静态web服务器的运行状态图示
特点
(1)内容相对稳定,因此容易被搜索引擎检索
(2)没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难;
(3)交互性较差,在功能方面有较大的限制。
2.动态web
提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同
动态web服务器的运行状态图示
特点:
(1)交互性:网页会根据用户的要求和选择而动态地改变和响应,浏览器作为客户端,成为一个动态交流的桥梁,动态网页的交互性也是今后 Web 发展的潮流。
(2)自动更新:即无须手动更新 HTML 文档,便会自动生成新页面,可以大大节省工作量。
(3)因时因人而变:即当不同时间、不同用户访问同一网址时会出现不同页面。
(3)停机维护:当加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布
二.web服务器
1.概述
1.Web服务器是指驻留于因特网上某种类型计算机的程序。
2.当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。
3.服务器使用HTTP(超文本传输协议)进行信息交流。
4.Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
5.服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;
三.Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目
最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,
因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
1.安装tomcat
访问tomcat官网:http://tomcat.apache.org/ 下载解压即可
2.解压目录下文件夹的含义
bin目录:找到startup.sh,点击可以启动tomcat,点击shutdown.bat可以关闭tomcat
启动后可以在浏览器上访问测试
http://localhost:8080/
conf目录:配置文件,可以对端口号和主机名称进行配置,server.xml为服务器的核心配置文件
tomcat的默认端口号为:8080
默认的主机名为:localhost->127.0.0.1
webapps:默认网站应用存放的位置为
logs:存放日志
lib:存放依赖的jar包
3.发布一个网站
将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了
4.在idea中配置Tomcat
四.HTTP
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。
HTTP基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
1.Http请求
客户端向服务器发起请求
HTTP 协议中共定义了八种方法或者叫“动作”来表明对 Request-URI 指定的资源的不同操作方式,
我们在实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。
Request URL:https://www.baidu.com/ //请求地址
Request Method:GET //get方法/post方法
Status Code:200 OK //状态码:200
Remote Address:14.215.177.39:443 //Remote(远程)
Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9
Cache-Control:max-age=0
Connection:keep-alive
(1)请求行
包含请求方法、资源名称与版本号
请求方式
get
请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
post
请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效。
(2)消息头
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机
2.Http响应
Cache-Control:private // 缓存控制
Connection:Keep-Alive // 连接
Content-Encoding:gzip // 编码
Content-Type:text/html // 类型
(1)响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机
Refresh:告诉客户端,多久刷新一次
Location:让网页重新定位
(2)响应状态码
-
200:请求响应成功 200
-
3xx:请求重定向 303
-
4xx:资源不存在 404
-
5xx:服务器代码错误 500 502:网关错误
重定向 :跳到被访问对象指定的地址中去
五.Maven
我们目前用来就是方便导入jar包的
Maven的核心思想:约定大于配置,即有约束,不要去违反。
Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来;
1.下载安装Maven
官网;https://maven.apache.org/
下载完成后,解压即可;
2.配置环境变量
在我们的系统环境变量中配置如下配置:
-
新建 M2_HOME maven目录下的bin目录
-
新建 MAVEN_HOME maven的目录
-
在系统的path中配置 新建 %MAVEN_HOME%\bin
-
在dos命令中输入:mvn -version 检查Maven是否安装成功
3.修改配置文件
(1)阿里云镜像
作用:加速我们的下载
配置文件位置:
在配置文件中的mirrors中添加如下代码
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
(2)本地仓库
在安装目录中新建文件夹 maven-repo(文件夹名字可以任取)
将新建的文件夹的路径粘贴到配置文件的localRepository中
例如:
<localRepository>E:\环境\apache-maven-3.6.1\maven-repo</localRepository>
4.在IDEA中使用Maven
1. 启动IDEA
2. 创建一个MavenWeb项目,配置GAV
3. 等待项目初始化完毕
4. IDEA中的Maven设置
可以在创建开始时期如下操作,后点击setting配置Maven
5.创建一个普通的Maven项目
6.在配置好Tomcat和Maven之后就可以运行了
7.pom文件
pom.xml 是Maven的核心配置文件
(1)Maven版本和头文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
(2)GAV
<groupId>com.kuang</groupId>
<artifactId>javaweb-01-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!--Package:项目的打包方式
jar:java应用
war:JavaWeb应用
-->
<packaging>war</packaging>
(3)配置
<properties>
<!--项目的默认构建编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!--编码版本-->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
(4)项目依赖
<dependencies>
<!--具体依赖的jar包配置文件-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
</project>
8.配置文件导出失败问题
因为maven的约定大于配置的原因,所以配置文件可能存在无法被导出或者生效的问题
解决方案:
在build中配置resources,来防止我们资源导出失败的问题
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>