JavaWeb
一、基本概念
1.1 前言
web开发:
1、web:网页(比如www.baidu.com)
2、静态web
html,css
提供给所有人看的数据始终不会发生变化!
3、动态web
淘宝,天猫等等,几乎所有的网站;
提供给所有人看的数据始终会发生变化,每个人在不同的时间,不同的地点看到的信息各不相同。
技术栈:Servlet/JSP,ASP,PHP
在Java中,动态web资源开发的技术统称位JavaWeb。
1.2 web应用程序
web应用程序:可以提供浏览器访问的程序。
a.html b.html 等等多个web资源,可以被外界访问,对外界提供服务。
访问到的任何一个页面或资源,都存在于这个世界的某一台计算机上。
URL(Uniform Resoure Locator:统一资源定位符)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
这些统一的web资源会被放在同一个文件夹下, web应用程序 ------>Tomcat:服务器
一个web应用由多个部分组成(静态web,动态web)
html、css、js
jsp、servlet
java程序
jar包
配置文件(Properties)
web应用程序编写完毕后,若想提供给外界访问,需要一个服务器来统一管理。
1.3 静态web
*.htm、*.html这些都是网页的后缀,如果服务器一直存在这些东西,我们就可以直接进行读取。

存在的缺点:
Web页面无法动态更新,所有用户看到都是同一个页面
轮播图,点击特效:伪动态
JavaScript[实际开发中用的最多]
VBScript
它无法和数据库交互(数据无法持久化,用户无法交互)
1.4 动态web
页面会动态展示,Web的页面展示的效果因人而异。
存在的缺点:
假如服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布; 停机维护
优点:
Web页面可以动态更新,所有用户看到都不是同一个页面
可以与数据库交互(数据持久化:注册了一个账户,商品信息、用户信息等都可以长久保存)

JDBC(JavaDataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。
二、 web服务器
2.1 技术讲解
ASP:即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。
微软(国内最早流行的),在HTML中嵌入了VB的脚本。 ASP+COM
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。
在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱。 导致维护成本高
C#
IIS(Internet Information Services ,互联网信息服务 )
IIS作为一种Web(网页)服务组件,其中包括zWeb服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
php:(Pre Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
php开发速度快,功能强大,跨平台,代码简单。(中国70%网站都是中小型的 )
缺点:无法承载大访问量的情况(局限性)
JSP/Servlet:JSP全称Java Server Pages,是一种动态网页开发技术。. 它使用JSP标签在HTML网页中插入Java代码。. 标签通常以<%开头以%>结束。. JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。. 网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。. JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。. JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
B/S架构:浏览和服务器
C/S架构:客户端和服务器
sun公司主推的B/S架构
基于java语言的(所有大公司,或一些开源的组件,都是java写的)
可以承载三高问题(高并发、高可用、高性能)带来的影响;
语法像ASP,ASP------->JSP,从而加强市场强度。
2.2web服务器(web server)
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息。
ISS
微软的:ASP...Window中自带的.
Tomcat
三、Tomcat

http://localhost:8080
可以配置启动的端口号
Tomcat的默认端口号是8080
mysql:3306
http:80
https:443
在Tomcat安装目录下的conf目录找到文件“server.xml”文件,用记事本打开,将 port="8080"改为 port="80",并保存。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
可以配置主机的名称
Tomcat默认的主机名称为localhost--->127.0.0.1
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
默认网站应用存放位置webapps
win32 ---drivers----etc-----hosts
{面试高频问题:网站是如何访问的?
1、输入一个域名:回车
2、检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;
有就直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
没有:去DNS服务器(包含全世界的域名)上找,找到的就返回,找不到就返回找不到}
发布一个web网站
将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了
网站应该有的结构:
--webapps : Tomcat服务器的web目录
-ROOT
-longstudy:网站的目录名
-WEB-INF
-classes:java程序
-lib:web应用所依赖的jar包
-web.xml:网站配置软件
-index.html 默认的首页
-static
-css
-style.css
-js
-img
-......
四、 HTTP(超文本传输协议)
4.1 什么是HTTP
HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。
文本:html,字符串,~...
超文本:图片、音乐、视频、定位、地图......
默认端口 80
Https: s(安全的) 默认端口443
4.2 两个时代
http1.0
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接
http2.0
HTTP/2.0:客户端可以与web服务器连接后,可以获得多个web资源。
4.3HTTP请求
客户端发请求到服务器
百度:
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 ok 状态码:200
Remote(远程) Address:14.215.177.39:443

1、请求行
请求行中的请求方式:GET
请求方式:Get,Post,HEAD,DELETE,PUT,TRACT...
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全。
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全但不高效。
2、消息头

4.4HTTP响应
服务器响应客户端
百度:

1.响应体

2、响应状态码
200:请求响应成功 200
3xx:请求重定向 (重定向:重新到所给的新位置)
4xx:找不到资源 404
资源不存在
5xx:服务器代码错误 500 502:网关错误
面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?
五、Maven
为什么要学习这个技术?
1、在Javaweb开发中,需要使用大量的jar包,需要手动去导入。
2、如何能够让一个东西自动帮我导入和配置这个jar包。
5.1 Maven 项目架构管理工具
我们目前用它就是方便导入jar包的。
Maven核心思想:约定大于配置
有约束,不要去违反。
Maven会规定好如何去编写Java代码,必须按照这个规范来。
如果遇到写的配置文件无法被导出或生效的问题,解决方案:
在build中配置resources,防止资源导出失败的问题
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
5.2 下载安装Maven
http://maven.apache.org/download.cgi
5.3 配置环境变量
在我们的系统环境变量中,配置如下配置
M2_HOME maven目录下的bin目录
MAVEN_HOME maven的目录
在系统的path中配置 %MAVEN_HOME%\bin

测试maven是否安装成功,保证必须配置完毕.
5.4阿里云镜像
镜像:mirrors
作用:加速我们的下载
国内建议使用阿里云的镜像。
maven conf setting mirror 配置阿里云镜像
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
浙公网安备 33010602011771号