JavaWeb
1、基本概念
1.1、前言
web开发:
- web 网页的意思 www.baidu.com
- 静态web
- html、css
- 提供给所有人看到的数据始终不会发生变化
- 动态web
- 页面会动态变化,每个人都不一样
- 技术栈:Servlet/JSP、ASP、PHP
- 静态web
在 Java 中,动态 web 资源开发的技术统称为 JavaWeb
1.2、web 应用程序
web 应用程序:可以提供浏览器访问的程序
- a.html、b.html … 多个 web 资源可以被外界访问,对外界提供服务
- 这个统一的 web 资源会被放在同一个文件夹下,web 应用程序 ——> Tomcat:服务器
- 一个 web 应用有多部分组成
- html、css
- jsp、servlet
- java 程序
- jar 包
- 配置文件
web 应用程序编写完毕后,若想提供给外界访问:需要一个服务器统一管理
1.3、静态 web
- *.html、 *.htm,这些都是网页的后缀,如果服务器一直存在这些东西,我们就可以直接读取
- 静态 web 存在的缺点
- Web 页面无法动态更新
- 轮播图、点击特效、伪动态
- JavaScript
- VBScript
- 无法与数据库交互(数据无法持久化,用户无法交互)
- Web 页面无法动态更新
1.4、动态 web
页面动态变化,因人而异
缺点:
- 假如服务器动态web资源出现错误,我们就要重新编写我们的后台程序,重新发布
优点:
- 可以和数据库交互(数据持久化)
2、web 服务器
2.1、技术详情
-
ASP
- 微软
- 在HTML中嵌套了VB脚本
- 在ASP开发当中,基本一个页面都有几千行代码,维护成本很高
- 就是html代码里面嵌套 java 代码 <% %>
-
PHP
- 开发速度快,功能强大,跨平台,代码简单
- 无法承载大访问量的情况
-
JSP/Servlet
- B/S:浏览器服务器
- sun公司主推的B/S架构
- 基于java语言
- 语法像ASP
2.2、服务器
服务器是一种被动的操作,用于处理用户的一些请求和给用户一些响应信息
-
IIS
- 微软
- window自带
-
Tomcat
-
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,它是最佳的选择
Tomcat 实际上运行JSP 页面和Servlet。Tomcat最新版本为10.0.5**。**
3、Tomcat
3.1、安装tomcat
官网:https://tomcat.apache.org/
3.2、tomcat启动和配置
- tomcat 的 bin 包下的文件,打开即可
- http://localhost:8080/ 出现如下界面就说明开启了
-
配置:config 文件
server.xml:服务器核心配置文件,可以修改端口号(默认8080),可以修改主机的名称(默认 localhost —> 127.0.0.1,但是这个要去改系统)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
-
常见端口号
tomcat:8080
mysql:3306
http:80
https:443
3.3、高难度面试题
请你谈谈网站是如何进行访问的?
- 输入一个域名
- 检查本机下的 C:\Windows\System32\drivers\etc\hosts 配置文件有没有这个域名的映射
- 有直接去对应的ip地址
- 没有就去DNS找
- 再找不到就返回找不到
3.4、发布一个 web 网站
不会就先模仿
4、Http
4.1、什么是http
超文本传输协议(HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 超文本:图片、音乐、视频、定位、地图…
- 端口:80
https:安全的
- 端口:443
4.2、两个时代
- http1.0
- http/1.0:客户端可以与web服务器连接后,只能获得一个web资源
- http2.0
- http/1.1:可以获得多个web资源
4.3、http请求
- 客户端 ——> 服务器
百度:
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK 状态码
Remote(远程) Address: 14.215.177.39:443
Referrer Policy: no-referrer-when-downgrade
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9 语言:zh-CN
Cache-Control: max-age=0
Connection: keep-alive
4.3.1、请求行
- 请求行的请求方法:GET
- 请求方式:GET/POST(一个更高效、一个更安全)
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的url地址栏显示数据内容,不安全,但是高效
- post:请求携带的参数没限制,大小没限制,浏览器不会显示,安全,但不高效
4.3.2、消息头
Accept:告诉浏览器,所支持的数据类型
Accept-Encoding:支持哪种编码格式:utf-8...
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
Host:主机
4.4、http响应
- 服务器 ——> 客户端
Cache-Control: private 缓存控制
Connection: keep-alive 连接:保持连接
Content-Encoding: gzip 编码
Content-Type: text/html; 类型
4.4.1、响应体
Accept:告诉浏览器,所支持的数据类型
Accept-Encoding:支持哪种编码格式:utf-8...
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
Host:主机
Refresh:告诉客户端多久刷新一次
Location:让网页重新定位
4.4.2、响应状态码
- 200:请求响应成功 200
- 3**:请求重定向
- 4**:找不到资源 404
- 5**:服务器代码错误 500 502->网关错误
5、Maven
我们为什么学?
- 在 web 开发的时候,需要很多的 jar 包,但不现实
由此产生了 Maven(架构管理工具),方便了我们导入 jar 包
5.1、Maven 项目架构管理工具
Maven 核心思想:约束大于配置
- 有约束,不要去违反
5.2、下载安装 Maven
官网:http://maven.apache.org/
下载完成,解压即可
5.3、配置环境变量
-
在系统的环境变量中添加如下的配置:
M2_HOME:maven目录下的bin目录;
MAVEN_HOME:maven的目录;
-
在系统变量 Path 下添加:%MAVEN_HOME%/bin
-
测试:在cmd窗口下,输入:mvn -version
5.4、阿里云镜像
-
镜像:mirrors
- 作用:加速我们的下载
-
国内建议使用阿里云镜像:https://developer.aliyun.com/mirror/maven
<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>
-
位置:maven 文件下的 config 文件里面的 setting.xml
5.5、本地仓库
建立一个本地仓库:localRepository
可以把文件都存在自己想要存的位置
<localRepository>E:\Maven\apache-maven-3.8.1\maven-repo</localRepository>
5.6、在IDEA中使用Maven
- 方法一:直接配置:在 setting 里面搜索 maven,配置自己的本地仓库
- 方法二:直接创建一个 webapp 项目,后面会让你填写仓库位置,建议用自己建的仓库
等待下载即可,会出现如下情况:build success
5.7、创建一个普通的Maven项目
不需要像上一个那样整一个模板了,即不需要勾选这个,直接下一步就行
5.8、maven项目侧边栏
5.9、pom文件
pom.xml 是 maven 的核心配置文件
-
properties:配置
-
dependencies:项目依赖
-
build:项目构建用的东西
-
由于maven项目,约束大于配置,所以有时候会出现,一些配置文件无法导出的情况,所以要加一些资源导出的build
<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>
-