基本概念
- web 开发:网页开发
- 分为静态 web 和动态 web
- 在 Java 中动态 web 资源开发的技术统称为 JavaWeb
-
html,css
-
提供给所有人看的数据始终不会发生变化
-
缺点
页面无法动态更新,所有用户看到的都是同一个页面
无法和数据库交互(数据无法持久化,用户无法交互)
-
提供给所有人看的数据会发生变化
-
技术栈:Servlet,JSP,ASP,PHP
-
页面展示的效果因人而异
-
缺点
加入服务器的动态 Web 资源出现了错误,需要需要重新编写我们的后台程序
-
优点
页面可以动态更新,所有用户看到的不是同一个页面
可以与数据库交互(数据可以持久化,用户可以交互)
相关技术
-
ASP
微软:国内最早流行的就是 ASP
在 HTML 中嵌入了 VB 的脚本:ASP+DOM
在 ASP 开发中,基本一个页面都有几千行的业务代码,页面混乱
维护成本高
-
PHP
开发速度快,功能强大,跨平台,代码简单
无法承载大访问量
-
JSP/Servlet
B/S 架构
基于 Java 语言
可以承载三高(高并发,高可用,高性能)问题带来的影响
-
服务器是一种被动操作,用来处理用户的一些请求和给用户一些响应信息
-
IIS
微软的,Windows 中自带的
-
Tomcat
Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现
Tomcat 技术先进、性能稳定,免费,深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,是最佳选择
Tomcat 实际上运行 JSP 页面和 Servlet
Tomcat 最新版本为 10.0.5
文件夹内容
访问测试:http://localhost:8080/
- 输入一个域名
- 检查本地的 C:WindowsSystem32driversetchosts 配置文件下有没有这个域名映射
- 有:直接返回对应的 ip 地址,这个地址中,有我们需要访问的 web 程序,可以直接访问
- 没有:去 DNS(域名系统,包含全世界的域名) 服务器找
-- webapps:Tomcat服务器的web目录
-- ROOT
-- 123:网站的目录名
-- WEB-INF
-- classes:java程序
-- lib:web应用所依赖的jar包
-- web.xml:网站的配置文件
-- index.html:默认的首页
-- static
-- css
-- style.css
-- js
-- img
-- ...
在 IDEA 中配置 Tomcat
将 src/main/webapp/WEB-INF 下的 web.xml 文件中的 webapp 版本号和 Tomcat webapps/ROOT/WEB-INF 下的 web.xml 文件中的 webapp 版本号保持一致
HTTPWelcome to Tomcat Welcome to Tomcat
- 超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上
Request URL: https://www.baidu.com/ //请求网址 Request Method: GET //get方法/post方法 Status Code: 200 OK //状态码 Remote Address: 14.215.177.39:443 //远程地址HTTP 时代
-
http 1.0
HTTP/1.0:客户端可以与 web 服务器连接后,只能获得一个 web 资源
-
http 2.0
HTTP/1.1:客户端可以与 web 服务器连接后,可以获得多个 web 资源
- 客户端 ——> 发请求(Request)——> 服务器
- 请求行中的请求方式:GET
- 请求方式:GET,POST,HEAD,DELETE,PUT,TRACT…
- GET:请求能够携带的参数比较少,大小有限制,会在浏览器的 URL 地址栏显示数据内容,不安全,但高效
- POST:请求能够携带的参数没有限制,大小无限制,不会在浏览器的 URL 地址栏显示数据内容,安全,但不高效
Accept: //服务器所支持的数据类型 Accept-Encoding: //服务器所支持的压缩格式 Accept-Language: //服务器所支持的语言环境 Connection: //告诉服务器,请求完成是断开还是保持连接 HOST: //主机HTTP 响应
- 服务器 ——> 响应(Response)——> 客户端
Cache-Control: no-cache //缓存控制 Connection: keep-alive //连接状态:保持连接 Content-Type: image/gif //类型响应体
Cache-Control: no-cache //缓存控制 Connection: //连接状态 content-encoding: //客户端所支持的压缩格式 Content-Type: //类型 HOST: //主机 Refresh: //告诉客户端多久刷新一次 Location: //让网页重新定位响应状态码
- 200:请求响应成功
- 3**:请求重定向
- 重定向:将网络请求重新定个方向转到其它位置
- 4**:找不到资源
- 404:资源不存在
- 5**:服务器代码错误
- 500:服务器无法解析 JSP 或 ASP 或者 PHP 代码
- 502:网关错误
- 项目架构管理工具
- 可以自动帮我们导入和配置 jar 包
- 会自动导入一个 jar 包锁依赖的所有 jar 包
- 核心思想:约定大于配置
- 方法一
- 方法二
存在问题4.0.0 org.example javaweb-01 1.0-SNAPSHOT war javaweb-01 Maven Webapp http://www.example.com UTF-8 1.8 1.8 junit junit 4.11 javaweb-01 maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2
maven 由于它的约定大于配置,自己写的配置可能会存在无法导出或者生效的问题
解决方法:在 build 中配置 resources 来防止资源导出失败问题
src/main/resources ***.xml true src/main/java ***.xml true



