文章目录
- JavaWeb - 01
- 一、基本概念
- 1、静态 Web
- 2、动态 Web
- 3、Web 应用程序
- 4、三个技术
- 二、Web 服务器
- 三、Tomcat 详解
- 四、发布一个 Web 网站
- 五、Http 详解
- 1. Http 请求
- (1)请求行
- (2)消息头
- 2. Http 响应
- (1)响应头
- (2)响应体
- 六、Maven
- 1. 下载、安装、配置
- 2. 在 IDEA 中使用 Maven
- 3. 补充
- 4. 在 IDEA 中配置 Tomcat
- 5. 分析
- 七、模仿 HelloServlet
- 注意:
JavaWeb - 01
一、基本概念
Web(网页)开发:静态 Web、动态 Web。
1、静态 Web
html、css:提供给所有人看的数据不会发生变化。
*.html/htm 是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取。
静态 Web 存在的缺点:
- Web 页面无法动态更新,所有用户看到的都是同一个页面;
- 无法与数据库交互,数据无法持久化,用户之间无法交互。
2、动态 Web
技术栈:Servlet、JSP、ASP、PHP
在 Java 中,动态 Web 资源开发的技术统称为 JavaWeb。
动态 Web 中,页面会动态展示,展示的效果因人而异。
注意:若加入服务器的动态 Web 资源出现了错误,我们需要重新编写我们的后台程序,并重新发布(停机维护)。
动态 Web 优点:
- Web 页面可以动态更新,所有用户看到的不是同一个页面;
- 可以与数据库交互,数据持久化(注册、商品信息、用户信息)。
3、Web 应用程序
Web 应用程序:可以提供浏览器访问的程序。Web 应用程序不能直接启动或被外界直接访问,需要依赖于 Tomcat 服务器统一管理。
- a.html、b.html 等多个 Web 资源都可以被外界访问,对外界提供服务;
- 能访问到的任何一个界面或者资源,都存在于计算机上;
- 统一的 Web 资源会被放在同一文件夹下,即 Web 应用程序;
- 一个 Web 应用由多部分组成,如 html、css、js、jsp、servlet、Java 程序、jar 包、配置文件(Properties)等。
4、三个技术
- ASP:用 C# 语言,属于微软的,是在 HTML 中嵌入了 VB 的脚本。在 ASP 开发中,基本一个页面都有几千行的业务代码,页面混乱,维护成本高。
- PHP:开发速度快,功能强大,跨平台,代码简单。但是无法承载大访问量的情况(局限性)。
- JSP/Servlet:是 Sun 公司主推的 B/S 架构(浏览器和服务器),基于 Java 语言,可以承载三高问题(高并发、高可用、高性能)带来的影响,语法像 ASP。
二、Web 服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息,如 IIS、Tomcat 等。
-
IIS:微软的,Windows 中自带的;
-
Tomcat:Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的 Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,它是最佳选择。Tomcat 实际上运行 JSP 页面和 Servlet。Tomcat 最新版本为10.0.23(截止 2023.02.18)。
三、Tomcat 详解
官网:点此进入。
- 在官网下载对应版本
- 压缩包解压
- 启动、关闭 Tomcat
- 配置
- 可以配置启动的端口号,默认:Tomcat【8080】、mysql【3306】、http【80】、https【443】。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 可以配置主机的名称,默认的主机名为:localhost;默认网站应用存放的位置为:webapps。
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
问题:网站是如何进行访问的?
-
输入一个域名,回车;
-
检查本机的
C:\Windows\System32\drivers\etc\hosts
配置文件中有没有这个域名映射,-
若有:直接返回对应的 IP 地址,也就是,这个地址中,有我们需要访问的 Web 程序,可以直接访问;
-
若没有:去 DNS 服务器去找,找到的话就返回,没有就返回找不到。
-
四、发布一个 Web 网站
步骤:将自己写的网站放到服务器(Tomcat)中指定的 Web 应用的文件夹(webapps)下,就可以访问了。
网站应该有的结构:
-- webapps : Tomcat 服务器的 Web 目录
-- ROOT
-- Taiyang3285 : 网站的目录名
-- WEB-INF
-- web.xml : 网站配置文件
-- lib : Web 应用所依赖的 jar 包
-- Classes : java 程序
-- index.jsp/index.html : 默认的首页
-- static : 静态资源文件夹
-- css
-- style.css
-- js
-- img
-- ... : 其他文件夹
五、Http 详解
Http (Hyper Text Transfer Protocol Protocol) 是超文本传输协议,是一个简单的请求-响应协议,它通常运行在 TCP 之上。
默认启动的端口号:Http【80】、Https【443】。
- Http/1.0:客户端可以和 Web 服务器连接后,只能获得一个 Web 资源,断开连接;
- Http/1.1:客户端可以和 Web 服务器连接后,可以获得多个 Web 资源。
1. Http 请求
客户端 – 发请求(Request) – 服务器
(1)请求行
请求方式有:GET、POST 等。
- GET:请求能够携带的参数比较少,大小有限制,会在浏览器的 URL 地址栏显示数据内容,不安全,但高效;
- POST:请求能够携带的参数没有限制,不会在浏览器的 URL 地址栏显示数据内容,安全,但不高效。
响应状态代码有:200、404 等。
- 200:请求响应成功;
- 3xx:请求重定向(重新到新位置);
- 4xx/404:找不到资源;
- 5xx/500:服务器代码错误。
(2)消息头
2. Http 响应
服务器 – 响应(Requence) – 客户端
(1)响应头
(2)响应体
和消息头差不多。
问题:在浏览器中的地址栏输入地址回车后,到页面能够展示回来,经历了什么?
六、Maven
Maven 是项目架构管理工具,作用是:方便导入 jar 包。
Maven 核心思想:约定大于配置(有约束,不要去违反)。
1. 下载、安装、配置
- 下载 Maven
官网:点此进入。
- 压缩包解压
- 配置环境变量
-
M2_HOME:Maven 目录下的 bin 目录;
-
MAVEN_HOME:Maven 的目录;
-
在系统的 Path 中配置:
%MAVEN_HOME%\bin
。
环境变量配置完成后,以管理员身份打开命令提示符,输入:mvn -version
可以看到 Maven 的版本,说明 Maven 配置成功。
- 阿里云镜像
镜像(mirrors)作用:加速下载。
在 Maven\apache-maven-3.6.1\conf
路径下的 settings.xml
文件中找到 mirrors
进行配置。
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
注意:一定要在粘贴在
mirrors
下。
- 本地仓库
-
在
Maven\apache-maven-3.6.1
路径下新建一个文件夹maven-repo
(本地仓库)。 -
在
settings.xml
文件中加一行,即本地仓库的地址。
2. 在 IDEA 中使用 Maven
- 打开 IDEA,创建一个新项目
New Project
,创建一个 MavenWeb 项目。
注意:如果第三步不勾选,就会创建一个普通的 Maven 项目。
- 设置:打开
File
中的Settings...
看一下设置。
注意:经常在 IDEA 中出现一个问题,就是在项目自动创建完成后,这里的 Maven home directory 会使用 IDEA 默认的,即
Bundled (Maven 3)
,如果发现了,要手动改为本地的。
3. 补充
创建一个普通的 Maven 项目,即不勾选模板。
在前面 Maven 模板的基础上加上 java
文件和 resources
文件,并标记文件夹功能。
4. 在 IDEA 中配置 Tomcat
注意:出现警告的原因:访问一个网站,需要指定一个文件夹的名字。
5. 分析
注意:
- Maven 的高级之处在于,它会导入这个 jar 包所依赖的其他 jar 包,但需要联网。
- Maven 由于约定大于配置,所以之后可能遇到我们写的配置文件,无法导出或生效的问题,解决方案:在
build
中配置resources
,来防止资源导出失败的问题。
七、模仿 HelloServlet
初学时,向 webapps
中的 examples
学习
到 Maven 仓库官网中去寻找 jar 包,官网:点此进入
注意:
-
学习时,提取有效信息。
-
HTML 是超文本标记语言。
-
项目的打包方式(后缀):Java【jar】、Javaweb【war】。
-
Maven 仓库官网:
https://mvnrepository.com/
。 -
所有的
dependency
都要放在 pom 文件中的dependencies
中。