静态web:html、css。给人看的数据始终不会发生改变。(数据无法持久化,用户无法交互)
动态web:①、淘宝、几乎所有网站;
②、给人看的数据始终会发生改变;
③、技术栈Servlet/JSP、ASP、PHP
在Java中,动态web资源开发的技术统称为JavaWeb。
Web应用程序,可以提供浏览器访问的程序。
①、微软:国内最早流行的就是ASP
②、在html中嵌入了VB的脚本,ASP+COM
③、在ASP开发中,基本一个页面都是几千行的业务代码,页面极其乱
④、维护成本高
⑤、C#
⑥、IIS
①、PHP开发速度很快,功能很强大,跨平台,代码很简单
②、无法承载大访问量的情况(局限性)
B/S:浏览器和服务器
C/S:客户端和服务器
①、sun公司主推的B/S架构
②、基于java语言的(所有的发送四,或者一些开源的组件,都是用java写的)
③、可以承载三高(高并发、高性能、高容量)问题带来的影响
④、语法像ASP
Tomcat官网
核心配置文件:conf/server.xml
1)、可以配置端口号:
tomcat的默认端口为:8080
mysql默认端口:3306
http默认端口:80
https默认端口:443
2)、可以配置主机的名称
默认的主机名为:localhost — 127.0.0.1
默认网站应用存放的位置为webapps
3)、高难度面试题:
请你谈谈网站是如何进行访问的?
输入一个域名;回车
检查本机的配置文件C:\Windows\System32\drivers\etc\hosts
下有没有这个域名的映射
有:直接返回对应的ip地址,这个地址中,有我们需要放的web程序,可以直接访问
没有:去DNS服务器找,找到的话就返回,找不到就返回找不到
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
比如百度首页的请求:
Request URL: https://www.baidu.com/ 请求地址
Request Method: GET get方法/post方法
Status Code: 200 OK 状态码:200
Remote Address: 14.215.177.38:443
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cache-Control: no-cache
Connection: keep-alive
Cookie: BIDUPSID=E915D8DAC0FCA4159DF81414176EBD43; PSTM=1618281055; BAIDUID=E915D8DAC0FCA415F0B2ABB582D30135:FG=1; __yjs_duid=1_042d578ea86bfb698f35ffbf7e97f5ff1619488718760; BAIDUID_BFESS=E915D8DAC0FCA415F0B2ABB582D30135:FG=1; COOKIE_SESSION=16414_3_8_4_7_1_1_0_7_1_0_0_16416_0_3_0_1625410778_1625394325_1625410775%7C9%2379260_3_1625394323%7C2; BD_LAST_QID=9581266030928333830
Host: www.baidu.com
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址拦显示数据内容,不安全,但是高效
post:请求能都携带的参数没有限制,大小没有限制,不会再在浏览器的URL地址拦显示数据内容,安全,但是不高效。
Accept: 高速浏览器,它所支持的类型
Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
Host:主机
百度首页例子:
Cache-Control: private 缓存控制
Connection: keep-alive 连接保持
Content-Encoding: gzip 编码
Content-Type: text/html;charset=utf-8 类型
Accept: 高速浏览器,它所支持的类型
Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
Host:主机
Refresh:高速客户端,多久刷新一次
Location:让网页重新定位
在javaweb开发中,需要使用大量的jar,我们手动去导入;
Maven自动帮我导入和配置这个jar包。
Maven的核心思想:约定大于配置
官网:https://maven.apache.org/
仓库地址:https://mvnrepository.com/
(M2_HOME ,有说是maven2及以上新版要用,有说是Spring等框架要用。)
测试Maven是否安装成功:(cmd)mvn -version
apache-maven-3.6.1\conf\settings.xml
阿里云镜像
<mirror>
<id>nexus-aliyunid>
<mirrorOf>*,!jeecg,!jeecg-snapshotsmirrorOf>
<name>Nexus aliyunname>
<url>http://maven.aliyun.com/nexus/content/groups/publicurl>
mirror>
在本地的仓库,建立一个本地仓库。
new Project、右边选maven、取消使用模板
①、new project
②、等待项目初始化完毕
③、可以选择导入源码
使用idea标记文件夹功能。
参考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.0modelVersion>
<groupId>com.zyygroupId>
<artifactId>javaweb-mavenartifactId>
<version>1.0-SNAPSHOTversion>
<packaging>warpackaging>
<name>javaweb-maven Maven Webappname>
<url>http://www.example.comurl>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
properties>
<dependencies>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
dependencies>
<build>
<finalName>javaweb-mavenfinalName>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-pluginartifactId>
<version>3.1.0version>
plugin>
<plugin>
<artifactId>maven-resources-pluginartifactId>
<version>3.0.2version>
plugin>
<plugin>
<artifactId>maven-compiler-pluginartifactId>
<version>3.8.0version>
plugin>
<plugin>
<artifactId>maven-surefire-pluginartifactId>
<version>2.22.1version>
plugin>
<plugin>
<artifactId>maven-war-pluginartifactId>
<version>3.2.2version>
plugin>
<plugin>
<artifactId>maven-install-pluginartifactId>
<version>2.5.2version>
plugin>
<plugin>
<artifactId>maven-deploy-pluginartifactId>
<version>2.8.2version>
plugin>
plugins>
pluginManagement>
build>
project>
maven的高级之初在于它会帮你导入这个jar包所依赖的其他jar包
maven由于他的约定大于配置,我们之后可能会遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:
<build>
<resources>
<resource>
<directory>src/main/resourcesdirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
resource>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
resource>
resources>
build>