目录
web开发:
web,网页的意思
静态web
html,css
提供给所有人看的数据始终不会发生变化
动态web
提供给所有人看的数据会发生变化,每个人在不同时间地点看到的信息各不相同。
淘宝等几乎所有的网站。
技术栈:Servlet/JSP,ASP, PHP
在Java中,动态web资源开发的技术统称为JavaWeb
web应用程序:可以提供浏览器访问的程序
a.html、b.html......多个web资源,这些web资源可以被外界访问,对外界提供服务。
能访问到的任何一个页面或资源,都存在于这个世界的某一个角落的计算机上。
URL
这些同意的web资源会被放在同一个文件夹下。web应用程序—》Tomcat:服务器
一个web应用由多部份组成
html、css、js
jsp、servlet
Java程序
jar包
配置文件(Properties)
web应用程序编写完毕后,若想要提供给外界访问:需要一个服务器统一管理
*.html是网页都后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。
缺点
web页面无法动态更新所有用户看到的都是同一界面
无法和数据库交互,数据无法持久化,用户无法交互
页面会动态展示,web页面展示的效果因人而异
缺点:
加入服务器的动态web资源出现错误需要重新别写后台程序,重新发布。
ASP:
微软:国内最早流行的
在HTML中嵌入了VB的脚本,ASP+CPM;
在ASP开发中,基本一个页面都有几千行的业务代码,业务极其混乱
维护成本高
C#
PHP:
开发速度快,功能强大,跨平台,代码简单
无法承载大访问量的情况,有局限性
JSP/Servlet
B/S:浏览器和服务器
C/S:客户端和服务器
sun公司主推的B/S架构
基于java
承载三高带来的影响,高并发,高可用,高性能
语法像ASP
Tomcat
最新的Servlet和JSP规范总能在其中响应,技术先进、性能稳定、免费。属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
IIS
微软的;ASP..windows自带
服务器是一种被动的操作用来处理用户的一些请求和给用户一些响应信息;
文件夹作用:
可以配置启动的端口号
tomcat默认端口号:8080
mysql默认端口号:3306
http:80
https:443
可以配置主机的名称
默认的主机名魏:localhost-》127.0.0.1
默认网站应用存放位置为:webapps、
高难度面试题: 请谈一谈网站如何进行访问的!
输入一个域名,回车
检查本机的C:\Windows\System32\deivers\etc\hosts配置文件下有没有这个域名的映射
有直接返回对应的ip地址,这个地址中有我们需要访问的web程序
没有:去DNS服务器去寻找,找到返回
3.配置一下环境变量
不会就先模仿
将自己的网站放到服务器中指定的web应用的文件夹下(webapps),就可以访问了
网站该有的架构:
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
文本:html、字符串.....
超文本:图片、音乐、视频、定位、地图.....
HTTPS:s安全的
http1.0
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
http2.0
HTTP/1.1:可以获得多个web资源
客户端--发请求--服务器
请求行
请求行中的请求方式:get
请求方式:get、post、head、delete....
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容不安全但是高效。
post:请求能携带参数没有限制,大小没有有限制,不会在浏览器的URL地址栏显示数据内容,安全但是不高效
消息头
accept:高速浏览器所支持数据类型
accept-encoding:编码方式GBK UTF-8 GB2312
Accept-Language: 告诉浏览器语言环境
Cache-Contro:缓存控制
Connection: 告诉浏览器完成是断开还是保持继续连接
服务器--响应--客户端
响应体
accept:高速浏览器所支持数据类型
accept-encoding:编码方式GBK UTF-8 GB2312
Accept-Language: 告诉浏览器语言环境
Cache-Contro:缓存控制
Connection: 告诉浏览器完成是断开还是保持继续连接
Refresh:告诉客户端多久刷新一次
Location:让网页重新定位
响应状态码
200:请求响应成功
3xx:请求重定向
你重新到我给你的新位置
4xx:找不到资源
资源不存在
5xx:服务器代码错误 500 502:网关错误
常见面试题:当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?
为什么要学这个技术?
javaweb中,需要使用大量的jar包,我们手动去导入
如何能够让一个东西自动帮我们导入和配置这个jar包,Maven诞生了
目前就是用来方便导入jar包的!
Maven的核心思想:约定大于配置
有约束不要去违反
Maven会规定好你该如何去编写java代码,必须按照这个规范来。
在系统环境变量中配置:
M2_HOME
MAVEN_HOME
系统的path中配置%MAVEN_HOME%\bin
镜像:mirrors
加速下载
国内用阿里云镜像
打开 Maven 的配置文件(windows机器一般在maven安装目录的conf/settings.xml),在<mirrors></mirrors>
标签中添加 mirror 子节点:
- <mirror>
- <id>aliyunmaven</id>
- <mirrorOf>*</mirrorOf>
- <name>阿里云公共仓库</name>
- <url>https://maven.aliyun.com/repository/public</url>
- </mirror>
建立一个仓库:
localRepository
<localRepository>E:\apache-maven-3.8.6\maven-repo</localRepository>
启动idea
创建Maven项目
等待项目导入初始化完毕
观察maven仓库中多了什么东西
Q8.png)
开发动态web的一门技术
如果想开发Servlet程序:
编写一个类,实现Servlet接口
把开发好的java类部署到web服务器