黑马旅游网-学习笔记Part02
黑马旅游网-学习笔记Part02
今日目标
- 数据库介绍、安装以及入门操作
- 安装Mysql结构化存储数据
- 安装Navicat或者Sqlyog等可视化操作软件可视化操作工具
- 理解库、表、字段、表和表的关系以及单表查询语句等知识。数据库常识
- 网络协议、服务器、web核心介绍
- 知悉网络编程三要素和常用的请求方式
- 了解服务器的作用tomcat
- 了解Servlet的作用
- 使用Maven创建Web工程,并书写一个Servlet接受请求必须会
1. 安装Mysql和Navicat
前言
课堂作业
🚩 1. 安装Mysql数据库,如果数据库是5.7的版本,也可以不安装
2. 网络协议、服务器、web核心介绍
web网络知识
web网站的流程:

web网站的流程(含ip/协议/端口):

HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。
- 1️⃣ http是互联网上应用最为广泛的一种网络协议
- 2️⃣ http协议要求:
- 浏览器在向服务器发送请求数据时,或是服务器在向浏览器发送响应数据时,都必须按照固定的格式进行数据传输
HTTP协议又分为:请求协议和响应协议
- 请求协议:浏览器将数据以请求格式发送到服务器 包括:请求行、请求头 、请求体
- 响应协议:服务器将数据以响应格式返回给浏览器 包括:响应行 、响应头 、响应体
通过分析浏览器发送的请求,熟悉网络编程三要素
- 浏览器打开百度
- 按住F12或者在设置中,进入开发者工具模式
- 选择网络或者network tab栏目,然后刷新网站,观察

如果你找出对应的数据,说明你掌握了http中请求和响应的数据 🎉 🎉🎉🎉
3. Servlet简介和入门
Servlet简介和入门

Servlet 是 Java 编程语言的一个规范,用于编写基于服务器的 Web 应用程序。它是运行在 Web 服务器上的 Java 类,可以接收来自客户端的请求并生成响应 用途。Servlet 运行在服务器端,通过处理网络请求和响应来构建动态的 Web 内容。
江湖上Tomcat也称之为Servlet容器
Servlet 解决了动态 Web 内容生成和处理的问题 ,包括:
动态内容生成:Servlet 可以根据客户端的请求生成动态的 Web 内容,例如根据用户输入数据生成动态页面、处理表单提交等。 与客户端通信:Servlet 可以接收来自客户端的请求,并通过生成适当的响应与客户端进行通信。这使得服务器端能够与客户端进行交互,提供个性化和实时的响应。 业务逻辑处理:Servlet 提供了一个处理业务逻辑的环境,可以进行数据处理、调用其他 Java 类或服务、与数据库进行交互等操作。 与其他 Web 组件集成:Servlet 可以与其他 Web 组件(如 JSP、过滤器等)结合使用,构建更复杂和功能强大的 Web 应用程序。
Servlet 在许多应用场景中发挥着重要作用,包括但不限于:
Web 应用程序开发:Servlet 可以作为构建 Web 应用程序的核心组件,处理用户请求、生成动态内容并与数据库进行交互。 Web 服务:Servlet 可以用于构建和发布 Web 服务,提供对外的数据和功能接口。 网站开发:Servlet 可以用于构建网站的后台逻辑,处理用户注册、登录、数据查询等操作。 企业级应用程序:Servlet 可以与企业级框架(如 Spring MVC、Java EE)结合使用,构建复杂的企业级应用程序。
实际上,直接用Servlet开发的项目,目前已经几乎没有了!!因为有SpringBoot!!!
入门操作步骤
- 创建Maven项目
- 选择使用Web项目骨架(maven-archetype-webapp)
- 输入Maven项目坐标创建项目
- 确认Maven相关的配置信息后,完成项目创建
- 删除pom.xml中多余内容
- 补齐Maven Web项目缺失的目录结构(java和resources)
- 添加tomcat插件,配置端口后,运行
- 添加 Servlet 相关依赖:在项目的构建文件(如 pom.xml)中添加 Servlet 相关的依赖,例如 javax.servlet-api。
- 创建 Servlet 类:在项目中创建一个继承自 HttpServlet 的 Java 类,该类将作为 Servlet 的实现类。例如 doGet()、doPost() 方法,用于处理请求和生成响应。
- 配置 Servlet 映射:在 web.xml 文件(或使用 Servlet 3.0+ 的注解方式 )中配置 Servlet 的映射关系,将 URL 映射到相应的 Servlet 类。
- 部署和启动应用程序:将项目部署到支持 Servlet 容器的服务器上,并启动应用程序。 ****:在浏览器中输入相应的 URL,访问 Servlet,并观察生成的响应结果。
Maven Web项目结构:

创 建 Maven项目
image 选择使用Web项目骨架

- 输入Maven项目坐标创建项目

确认Maven相关的配置信息后,完成项目创建
image 删除pom.xml中多余内容,只留下面的这些内容,注意打包方式 jar和war的区别

- 补齐Maven Web项目缺失的目录结构,默认没有java和resources目录,需要手动完成创建补齐:

最终的目录结果如下

步鄹gif动图

在IDEA中使用本地Tomcat进行项目部署,相对来说步骤比较繁琐,所以我们需要一种更简便的方式来替换它,那就是直接使用Maven中的Tomcat插件来部署项目,具体的实现步骤,只需要两步,分别是:
1️⃣ 在pom.xml中添加Tomcat插件
<build>
<plugins>
<!--Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</build>
2️⃣ 使用Maven Helper插件快速启动项目,选中项目,右键-->Run Maven --> tomcat7:run

注意
- 如果选中项目并右键点击后,看不到Run Maven和Debug Maven,这个时候就需要在IDEA中下载Maven Helper插件,具体的操作方式为: File --> Settings --> Plugins --> Maven Helper ---> Install,安装完后按照提示重启IDEA,就可以看到了。

- Maven Tomcat插件目前只有Tomcat7版本,没有更高的版本可以使用
- 使用Maven Tomcat插件,要想修改Tomcat的端口和访问路径,可以直接修改pom.xml
<build>
<plugins>
<!--Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--访问端口号 -->
<port>8081</port>
<!--项目访问路径
未配置访问路径: http://localhost:80/tomcat-demo2/a.html
配置/后访问路径: http://localhost:80/a.html
如果配置成 /hello,访问路径会变成什么?
答案: http://localhost:80/hello/a.html
-->
<path>/</path>
<!-- 解决路径中文乱码问题 -->
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
</plugins>
</build>
http://localhost:8081/
3️⃣ 右击运行tomcat,并访问
- 在pom.xml中 导入Servlet依赖坐标
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<!--
此处为什么需要添加该标签?
provided指的是在编译和测试过程中有效,最后生成的war包时不会加入
因为Tomcat的lib目录中已经有servlet-api这个jar包,如果在生成war包的时候生效就会和Tomcat中的jar包冲突,导致报错
-->
<scope>provided</scope>
</dependency>
</dependencies>
- 创建 Servlet 类:在项目中的src下,创建com.itcast.web包,在web包下创建一个继承自 HttpServlet 的 Java 类
ServletDemo
,该类将作为 Servlet 的实现类。例如 doGet()、doPost() 方法,用于处理请求和生成响应。
public class ServletDemo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("我是Servlet入门案例 ");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
- 配置 Servlet 映射:在 web.xml 文件(或使用 Servlet 3.0+ 的注解方式 )中配置 Servlet 的映射关系,将 URL 映射到相应的 Servlet 类。
// 访问路径:localhost:8081/demo 就可以访问此类
@WebServlet("/demo")
public class ServletDemo extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("我是Servlet入门案例 ");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
- 部署和启动应用程序:将项目部署到支持 Servlet 容器的服务器上,并启动应用程序。:在浏览器中输入
http://localhost:8081/demo
,访问 Servlet,并观察生成的idea的控制台。

课堂作业
🚩 1. 上述创建Servlet的过程必须完成!!!