Javaweb
1.基本概念
1.1 前言
web开发:
-
静态web
HTML,css
提供给所有人看的数据始终不会发生变化
-
动态web
提供给所有人看的数据始终会发生变化,每个人在不同的时间看到的内容不一样
技术栈:servlet/jsp,ASP,PHP
在Java中,动态web资源开发的技术统称为javaweb
1.2 web应用程序
web应用程序:可以提供浏览器访问的程序,编写完成后,若想提供给外界访问,需要一个服务器来统一管理tomcat
1.3 静态web
-
静态web存在的缺点
1.web页面无法动态更新,所有的用户看到的都是同一个页面
2.无法和数据库交互(数据无法持久化,用户无法交互)
1.4 动态web
页面会动态展示:“web的页面展示的效果因人而异”
缺点:
-
假如服务器的动态web资源出现了错误,我们需要重新编写后台程序,重新发布
停机维护
优点:
-
web页面可以动态更新,所有用户看到的都不是同一个页面
-
可以与数据库交互(数据持久化)
2. web服务器
2.1 JSP/Servlet
B/S:浏览器和服务器
C/S:客户端和服务器
-
sun公司主推的B/S架构
-
基于Java语言的
-
可以承担三高问题带来的影响
-
语法像ASP,SAP---> JSP
2.2 web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息
Tomcat:
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Tomcat 运行JSP 页面和Servlet。Tomcat最新版本为10.0.5。
3. Tomcat
3.1 Tomcat安装
tomcat官网:Apache Tomcat® - Welcome!
3.2 Tomcat启动和配置
启动/关闭tomcat:
bin目录下的startup.bat/shutdown.bat
3.3 配置
可以配置启动的端口号:
(1)记事本打开tomcat安装目录下的conf文件夹下的servlet.xml文件。
(2)在servlet.xml文件中找到以下代码:
<Connector port="8081" protocal="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
(3)将上面代码中的port="8080"修改为port="8081",即可将tomcat默认端口设置为8081。
(4)重启tomcat。
-
tomcat默认的端口号为:8080
-
MySQL:3306
-
HTTP:80
-
https:443
可以配置主机的名称:
同上:
<Host name="clm" appBase="webapps" unpackWARs="true" autoDeploy="true">
面试题:请你谈一谈网站是如何访问的?
1.输入一个域名,回车
2.检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射
1.有。直接返回对应的IP地址,这个地址有我们需要访问的web程序,可以直接访问
2.没有。去DNS服务器找,找到的话返回,找不到网页报错
4.HTTP
4.1 什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上。
-
文本:HTML、字符串。。。。
-
超文本:图片、音乐、视频、地图。。。。
-
80
https:安全
-
443
4.2 两个时代
-
HTTP1.0
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
-
HTTP2.0
HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
4.3 HTTP请求
-
客户端---发请求(request)---服务器
百度:
Request URL: https://www.baidu.com/ 请求地址 Request Method: GET get方法/post方法 Status Code: 200 OK 状态码:200 Remote Address: 14.215.177.38:443 Referrer Policy: strict-origin-when-cross-origin
Accept:text/htm Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 语言
请求行
-
请求行中的请求方式:GET
-
请求方式:Get,Post,HEAD,DELETE,PUT,TRACT。。。
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效
消息头
Accept:告诉浏览器,它支持的数据类型。 Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 Accept-Language: 告诉浏览器,它的语言环境 Cache-Control:缓存控制 Connection:告诉浏览器,请求完成是断开还是保持连续 Host:主机
4.4 HTTP响应
-
服务器---响应---客户端
百度:
Cache-Control: private 缓存控制 Connection: keep-alive 连接 Content-Encoding: gzip 编码 Content-Type: text/html 类型
响应体
Accept:告诉浏览器,它支持的数据类型。 Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 Accept-Language: 告诉浏览器,它的语言环境 Cache-Control:缓存控制 Connection:告诉浏览器,请求完成是断开还是保持连续 Host:主机 Refresh:告诉客户端,多久刷新一次 Loction:让网页重新定位
响应状态码(重点)
200:请求响应成功 200
3XX:请求重定向
重定向:你重新到我给你的新位置去
4XX:找不到资源 404
资源不存在
5XX:服务器代码错误 500 502:网关错误
面试题:当你的浏览器地址栏输入地址并回车的一瞬间页面能够展示回来经历了什么?
5. Maven
为什么要学这个技术:
1.在Javaweb开发中,需要使用大量的jar包,我们需要手动去导入
2.Maven可以自动帮我导入和配置这个jar包
5.1 Maven项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven核心思想:约定大于配置
-
有约束,不要去违反
maven会规定好你改如何去编写我们的Java代码,必须按照这个规范来。
5.2 下载安装Maven
官网:Maven – Welcome to Apache Maven
下载完成解压即可
5.3 配置环境变量
在我们的系统环境变量中如下配置:
-
M2_HOME maven目录下的bin目录
-
MAVEN_HOME maven的目录
-
在系统的path中配置 %MAVEN_HOME%\bin
测试maven是否安装成功
5.4 阿里云镜像
镜像:mirrors:作用:加速我们的下载
国内建议使用阿里云的镜像:maven目录下的conf目录下的settings.xml文件
<mirror> <id>nuxus-aliyun</id> <mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
5.5 本地仓库
建立一个本地仓库:localRepository
maven目录下的conf目录下的settings.xml文件
<localRepository>D:\JavaEnvironment\maven\apache-maven-3.8.4\maven-repo</localRepository>
5.6 在IDEA中使用Maven
启动IDEA----创建一个新的Maven项目----
关注maven仓库中多了什么东西?
IDEA中的maven设置
注意:经常在IDEA中会出现一个问题,就是项目自动创建完成后,这个maven_home会使用idea默认,如果出现这一个问题,我们需要手动改回本地
5.7 maven创建一个普通的maven项目
不勾,直接下一步
一个干净的maven项目
蓝色Java文件:放置Java源代码;resources:放置一些配置文件;绿色Java文件:测试使用
回到javaweb-01-maven中配置