JavaWeb
Java Web
基本概念
web开发:
- web,网页的意思,从互联网上拿到资源
- 静态web
- html,css 静态资源
- 提供给所有人看的数据始终不会发生变化
- 动态web
- 提供给所有人看的数据会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同.
- 技术栈:Servlet/JSP,ASP,PHP
在Java中,动态web资源开发的技术统称为JavaWeb;
Web应用程序
web应用程序:可以提供浏览器访问的程序;
- a.html b.html…多个web资源,这些web资源可以被外界访问,对外界提供服务;
- 我们能访问到的任何一个页面或者资源,都存在于这个世界的某一个角落的计算机上;
- URL:统一资源定位符;
- 这些统一的web资源会被放在同一个文件夹下,web应用程序—>Tomcat:服务器
- 一个web应用由多部分组成
- html,css,js
- jsp,servlet
- java程序
- jar包
- 配置文件(properties)
web应用程序编写完毕后,若想提供给外界访问:需要一个服务器来统一管理;
静态web
- *.htm, *.html,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P3dmrz4i-1626269348228)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210705201420107.png)]
- 静态web缺点
- web页面无法动态更新,所有用户看到的都是同一个页面
- 轮播图,点击特效:伪动态
- JavaScript[实际开大中,它用的最多]
- VBScript
- 它无法和数据库交互(数据无法持久化,用户无法交互)
- web页面无法动态更新,所有用户看到的都是同一个页面
动态web
页面会动态展示:“Web的页面展示的效果因人而异”
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dPcf9FIW-1626269348230)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210705202949392.png)]
缺点
- 假如服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布:
- 停机维护
优点
- web页面可以动态更新,所有用户看到的都不是同一个页面
- 它可以与数据库交互(数据持久化:注册,商品信息,用户信息…)
小结:(分析原理,看源码),学JavaWeb的作用就是了解框架底层原理
web服务器
技术讲解
ASP
- 微软做的
- 国内最早流行的就是ASP
- 在HTML中嵌入了VB的脚本,ASP+COM
- 在ASP开发,基本的一个页面都有几千行的业务代码,页面极其混乱
- 维护成本高!
- C#
- IIS
<h1>
<h1>
<h1> <--html 代码 !-->
<%
//java代码
System.out.println("hello")
%>
PHP
- PHP开发速度很快,功能很强大,跨平台,代码很简单(70%的网站都是中小型的)
- 但是无法承载打访问量的情况;
JSP
本质是Servlet
B/S:浏览器和服务器
C/S:客户端和服务器
- sun公司主推的B/S架构
- 基于Java语言(所有的大公司,或者一些开源的组件,都是用Java写的)
- 可以承载三高问题带来的影响(高并发,高性能,高可用)
- 语法像ASP
服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息;
IIS
- 微软的
- Windows中自带的
Tomcat
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7cFophK8-1626269348231)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712190520643.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-g8lWhGJk-1626269348234)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712190536037.png)]
Tomcat
安装
tomcat官网:https://tomcat.apache.org/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cLPcgDH9-1626269348236)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712202840647.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Z9b7Jgp-1626269348237)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712202853338.png)]
启动
文件夹的作用:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kyREowvR-1626269348238)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712203425306.png)]
启动:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRBjMweK-1626269348240)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712203822181.png)]
访问测试:
https://localhost:8080/
可能遇到的问题:
- Java环境变量没有配置
- 闪退问题:需要配置兼容性
- 乱码问题:配置文件中设置
配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-77zOqLjD-1626269348241)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712204412004.png)]
可以配置启动的端口号
- tomcat的默认端口号为8080
- mysql默认端口:3306
- http默认端口:80
- https默认端口号:443
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BNN8T9Gq-1626269348242)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712205610539.png)]
可以配置主机的名称
- 默认的主机名为:localhost->127.0.0.1
- 默认网站应用存放的位置为:webapps
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXsrPcko-1626269348242)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712205641952.png)]
高难度面试题
请你谈一谈网站是如何进行访问的:
-
输入一个域名,回车,
-
检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名的映射
- 有:直接返回对应的ip地址,这个地址中有我们需要访问的web程序,所以可以直接访问
127.0.0.1 www.qinjiang.com
- 没有:去DNS服务器找,找到的话就返回,找不到就报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2mpYO3VI-1626269348243)(C:\Users\hang.li\AppData\Roaming\Typora\typora-user-images\image-20210712213014155.png)]
配置环境变量(可选)
发布一个web网站
不会就先模仿
- 将自己写的网站,放到服务器(tomcat)中指定的web应用的文件夹下(webapps),就可以访问了
网站应该有的结构
--webapps:Tomcat服务器的web目录
-ROOT
-liakli:网站的目录名
- WEB-INF
- classes:java程序
- lib:web应用所依赖的jar包
- web.xml:网站的配置文件
-index.html index.jsp 默认的首页
- static
- css
- style.css
- js
- img
- ......