[Java]JavaWeb学习笔记(尚硅谷2020旧版)(一)

简介: [Java]JavaWeb学习笔记(尚硅谷2020旧版)(一)

🏀 视频及资料地址

视频:【尚硅谷2020版JavaWeb全套教程,java web零基础入门完整版】

资料:【https://share.mowangblog.top/Courseware/JavaWeb】

🏀 XML

⚽ XML 简介

xml 是可扩展的标记性语言。

🏐 xml 的作用

1、用来保存数据,而且这些数据具有自我描述性

2、作为项目或者模块的配置文件

3、作为网络传输数据的格式(现在 JSON 为主)。

⚽ XML 语法

🏐 文档声明

<?xml version="1.0" encoding="utf-8" ?>
<!-- xml文档声明 -->
  • version="1.0":version表示xml的版本号
  • encoding="utf-8":encoding表示xml文件的编码格式

🏐 注释

xml的注释和html一样。

<!-- 这里的内容为注释内容 -->

🏐 元素(标签)

xml元素指的是从开始标签(包括)到结束标签(包括)的部分。元素可以包含其他元素、文本或者两者混合,元素也可以拥有属性。

⚾ XML 命名规则

  • 名称可以含字母、数字以及其他的字符

  • 名称不能以数字或者标点符号开始

  • 名称不能包含空格

⚾ xml 中的元素(标签)也分单双标签

双标签:

<books></books>

单标签:

<books />

🏐 xml 元素属性

xml 的标签属性和 html 的标签属性是非常类似的,属性可以提供元素的额外信息,一个标签上可以书写多个属性,每个属性的值必须使用引号引起来。

<books name="Java" price="9.9"></books>

🏐 语法规则

  • 所有 XML 元素都须有关闭标签(也就是闭合)
<root>
    <book1></book1> 
    <book2 />
    <!-- <book3>为闭合标签 -->
</root>
  • XML 标签对大小写敏感

  • XML 元素之间必须正确地嵌套
  • XML 文档必须有根元素。根元素就是顶级元素,没有父标签的元素,叫顶级元素。根元素是没有父标签的顶级元素,而且必须唯一。

  • XML 的属性值须加引号
  • XML 中需要显示特殊字符与html一样,如需要显示大于号,则使用&gt

🏐 文本区域(CDATA)

CDATA 语法可以告诉 xml 解析器,CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析,可以实现将输入的字符原样输出。

CDATA格式:

<root>
    <![CDATA[ 
        该区域可以将输入的字符原样输出,不会进行解析 <><><><><> 
    ]]>
</root>

⚽ XML 解析

不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。使用 dom 技术进行解析,那么就会有 document 对象,document 对象表示的是整个文档(可以是 html 文档,也可以是 xml 文档)。

早期 JDK 提供了两种 xml 解析技术(已经过时):DOM 和 Sax。

第三方的解析:

1、jdom 在 dom 基础上进行了封装 。

2、dom4j 又对 jdom 进行了封装。

3、pull 主要用在 Android 手机开发,跟 sax 非常类似,都是使用事件机制解析 xml 文件。

🏐 Dom4j 解析 XML

这个 Dom4j 是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。

【Dom4j 2.1.3 下载地址】

Dom4j jar包加载为库:

需要进行解析的XML文件:

<?xml version="1.0" encoding="utf-8" ?>
<books>
    <book sn="SN12341234">
        <name>Java</name>
        <price>9.9</price>
    </book>
    <book sn="SN12312312">
        <name>Python</name>
        <price>9.9</price>
    </book>
</books>

相应的类对象:

package xmls;
public class Book {
    private String sn;
    private String name;
    private double price;
    public Book() {
    }
    public Book(String sn, String name, double price) {
        this.sn = sn;
        this.name = name;
        this.price = price;
    }
    @Override
    public String toString() {
        return "Book{" + "sn='" + sn + '\'' + ", name='" + name + '\'' + ", price=" + price + '}';
    }
    public void setSn(String sn) {
        this.sn = sn;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setPrice(double price) {
        this.price = price;
    }
    public String getSn() {
        return sn;
    }
    public String getName() {
        return name;
    }
    public double getPrice() {
        return price;
    }
}

解析XML文件:

package xmls;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
import java.util.List;
public class Dom4jTest {
    @Test
    public void test1() throws Exception {
        // 创建一个SaxReader输入流对象,读取xml文件
        SAXReader saxReader = new SAXReader();
        // 读取xml文件,生成Document对象
        // Junit测试中,相对路径从模块名开始
        Document document = saxReader.read("src\\xmls\\books.xml");
        // System.out.println(document);
        // 通过Document对象获取根元素
        Element rootElement = document.getRootElement();
        // 通过根元素获取book标签对象
        // element() elements() 都是通过标签名查找子元素
        List<Element> books = rootElement.elements("book");
        for (Element book : books) {
            // asXML() 将标签对象转换为标签字符串
            // System.out.println(book.asXML());
            // 获取子标签
            Element name = book.element("name");
            // getText() 获取标签中的文本内容
            String nameText = name.getText();
            // elementText() 直接获取指定标签名的文本内容
            String priceText = book.elementText("price");
            // attributeValue() 获取标签对象指定属性的属性值
            String sn = book.attributeValue("sn");
            Book book1 = new Book(sn, nameText, Double.parseDouble(priceText));
            System.out.println(book1);
        }
    }
}

🏀 Tomcat

⚽ JavaWeb相关概念

  • 什么是 JavaWeb
  • JavaWeb 是指,所有通过 Java 语言编写可以通过浏览器访问的程序的总称,叫 JavaWeb。JavaWeb 是基于请求和响应来开发的。
  • 什么是请求
  • 请求是指客户端给服务器发送数据,叫请求 Request。
  • 什么是响应
  • 响应是指服务器给客户端回传数据,叫响应 Response。
  • 请求和响应的关系
  • 请求和响应是成对出现的,有请求就有响应。

⚽ Web资源的分类

  • web 资源按实现的技术和呈现的效果的不同,分为静态资源和动态资源两种。
  • 静态资源: html、css、js、txt、mp4 视频 , jpg 图片等
  • 动态资源: jsp 页面、Servlet 程序等

⚽ 常用的 Web 服务器

  • Tomcat:由 Apache 组织提供的一种 Web 服务器,提供对 jsp 和 Servlet 的支持。它是一种轻量级的 javaWeb 容器(服务器),也是当前应用最广的 JavaWeb 服务器(免费)。
  • Jboss:是一个遵从 JavaEE 规范的、开放源代码的、纯 Java 的 EJB 服务器,它支持所有的 JavaEE 规范(免费)。
  • GlassFish: 由 Oracle 公司开发的一款 JavaWeb 服务器,是一款强健的商业服务器,达到产品级质量(应用很少)。
  • Resin:是 CAUCHO 公司的产品,是一个非常流行的服务器,对 servlet 和 JSP 提供了良好的支持,性能也比较优良,resin 自身采用 JAVA 语言开发(收费,应用比较多)。
  • WebLogic:是 Oracle 公司的产品,是目前应用最广泛的 Web 服务器,支持 JavaEE 规范,而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多,适合大公司)。

⚽ Tomcat 服务器和 Servlet 版本的对应关系

【官网网址】

⚽ Tomcat的使用

🏐 下载

可以根据jdk的版本进行选择下载,我的jdk为1.8,tomcat8.0支持jdk1.7及以后,这边选择了tomcat8.5.84

【官网网址】

下载完成后将下载的压缩包进行解压即可。

🏐 Tomcat目录介绍

  • bin 专门用来存放 Tomcat 服务器的可执行程序
  • conf 专门用来存放 Tocmat 服务器的配置文件
  • lib 专门用来存放 Tomcat 服务器的 jar 包,tomcat相关类实现的存放路径
  • logs 专门用来存放 Tomcat 服务器运行时输出的日记信息
  • temp 专门用来存放 Tomcdat 运行时产生的临时数据
  • webapps 专门用来存放部署的 Web 工程,在该文件夹下一个目录一个工程
  • work 是 Tomcat 工作时的目录,用来存放 Tomcat 运行时 jsp 翻译为 Servlet 的源码,和 Session 钝化(序列化)的目录。

🏐 启动Tomcat服务器方式一

找到 Tomcat 目录下的 bin 目录下的 startup.bat 文件,双击,就可以启动 Tomcat 服务器。

打开浏览器,在浏览器地址栏中输入以下其中一个地址进行测试:

1、http://localhost:8080

2、http://127.0.0.1:8080

3、http://本机真实ip:8080

当出现如下界面,说明 Tomcat 服务器启动成功:

🏐 常见启动失败情况

⚾ 双击 startup.bat 文件出现一个小黑窗口一闪而过

原因(一般情况):没有配置好 JAVA_HOME 环境变量

解决:配置 JAVA_HOME 环境变量

⚾ 常见JAVA_HOME配置失败情况

  • JAVA_HOME 必须全大写。
  • JAVA_HOME 中间必须是下划线,不是减号
  • JAVA_HOME 配置的路径只需要配置到 jdk 的安装目录即可。不需要带上 bin 目录。

🏐 启动Tomcat服务器方式二

使用该方式启动tomcat服务器可以看到启动失败的错误信息。

在tomcat的bin目录下打开命令行,运行如下命令:

catalina run

🏐 Tomcat 的停止

  1. 点击 tomcat 服务器窗口的 x 关闭按钮
  2. 把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl+C
  3. 找到 Tomcat 的 bin 目录下的 shutdown.bat 双击,就可以停止 Tomcat 服务器

🏐 修改 Tomcat 的端口号

Tomcat 默认的端口号是:8080

找到 Tomcat 目录下的 conf 目录,找到 server.xml 配置文件,在 server.xml 配置文件中找到 Connector 标签修改该标签的 port 属性值。

端口号的范围:1-65535,一般不要使用1000以内的端口号(一般已经被一些系统服务占用),注意,修改完端口号,需要重启Tomcat服务器才会生效

🏐 部暑 web 工程到 Tomcat

⚾ 方式一

只需要把 web 工程的目录拷贝到 Tomcat 的 webapps 目录下即可。

1、在 webapps 目录下创建一个工程目录:

2、网页内容拷贝到工程目录下:

<h1>HELLO WORLD</h1>

3、访问 Tomcat 下的 web 工程

http://ip:port
http://127.0.0.1:8080 表示访问到Tomcat目录下webapps目录

访问格式如下:

http://ip:port/工程名/目录下/文件名

访问刚刚部署的web工程:

http://127.0.0.1:8080/test/test.html

⚾ 方式二

找到 Tomcat 下的 conf 目录\Catalina\localhost\ 下,创建如下的配置文件,一个配置文件对应一个web工程:

配置文件内容如下:

<!-- 
  Context 表示一个工程上下文
  path 表示工程的访问路径:/testabc (与配置文件名一致)
  docBase 表示你的工程目录在哪里
-->
<Context path="/testabc" docBase="E:\testabc" />

注意配置文件的编码格式要为utf-8

重启Tomcat访问工程目录下的test.html文件:

http://127.0.0.1:8080/testabc/test.html

⚽ ROOT 的工程的访问,以及默认 index.html 页面的访问

当我们在浏览器地址栏中输入访问地址如下:

http://ip:port/

没有工程名的时候,默认访问的是 ROOT 工程。

当我们在浏览器地址栏中输入的访问地址如下:

http://ip:port/工程名/

没有资源名,默认访问 index.html 页面

index.html

<h1>hello world</h1>

⚽ IDEA 整合 Tomcat 服务器

相关文章
|
22天前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
22天前
|
小程序 Java 知识图谱
Java 学习笔记 —— BMI & BMR 计算器
这是一个使用 Java 编写的 BMI 与 BMR 计算器小程序,可输入年龄、性别、身高和体重,计算身体质量指数(BMI)和基础代谢率(BMR),并输出健康评估结果。通过该项目,掌握了 Java 的输入处理、数据验证、条件判断、数学运算及格式化输出等基础知识,是 Java 初学者的理想练习项目。
|
4月前
|
Java API 微服务
2025 年 Java 从入门到精通学习笔记全新版
《Java学习笔记:从入门到精通(2025更新版)》是一本全面覆盖Java开发核心技能的指南,适合零基础到高级开发者。内容包括Java基础(如开发环境配置、核心语法增强)、面向对象编程(密封类、接口增强)、进阶技术(虚拟线程、结构化并发、向量API)、实用类库与框架(HTTP客户端、Spring Boot)、微服务与云原生(容器化、Kubernetes)、响应式编程(Reactor、WebFlux)、函数式编程(Stream API)、测试技术(JUnit 5、Mockito)、数据持久化(JPA、R2DBC)以及实战项目(Todo应用)。
229 5
|
7月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
109 13
|
7月前
|
开发框架 Java 开发工具
【Java全栈学习笔记-U1-day01】Java介绍
本笔记整理了Java学习的基础内容,涵盖程序理解、Java语言特性、JDK安装与配置、Java程序开发工具及编写步骤。重点介绍了Java程序的基本结构、编译和运行过程,以及输出语句的使用。通过实例演示了IDEA创建Java程序的方法,并强调了编码规范和注意事项。适合初学者复习和交流学习。 主要内容: 1. 理解程序:计算机组成、程序定义。 2. 简介:Java语言特点、技术平台、JDK作用。 3. 编写Java程序:编写、编译、运行步骤,基本结构。 4. 输出语句 5. DEA使用:新建工程、保存位置、文件介绍、新建类。 6. 扩展:注释、代码规范、大小写敏感、缩进等。
|
9月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
155 4
|
11月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
192 0
|
12月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
105 2
|
22天前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
61 0

热门文章

最新文章