软件设计之JavaWeb(1)

news2024/12/23 17:15:22

软件设计之JavaWeb(1)

此篇应在MySQL之后进行学习:
路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷全新JavaWeb教程,企业主流javaweb技术栈
资料可以去尚硅谷官网免费领取
此章节最好学完JDBC观看

学习内容:

  1. XML概述
  2. Tomcat
  3. IDEA开发并部署运行WEB项目

XML概述

XML EXtensible Markup Language可扩展标记语言
Tomcat就是使用XML作为配置文件
在 XML 文件中,可以自定义标签名,是因为 XML 语言本身允许用户定义自己需要的标签。

<?xml version="1.0" encoding="UTF-8"?>
<!--
    1 根标签只能有一个
    2 第一行永远都是<?xml version="1.0" encoding="UTF-8"?>前面不能放任何东西
    3 xml是有约束,约束用于限定xml内部能编写的内容
        dtd约束   简单 上手快  约束不够细
        schema约束   复杂 上手慢 约束更细
-->
<jdbc>
    <dev>
        <username>root</username>
        <password>root</password>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/atguigu</url>
    </dev>
    <test>
        <username>zhangsan</username>
        <password>123456</password>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/atguigu</url>
    </test>
    <formal>
        <username>lisi</username>
        <password>654321</password>
        <driver>com.mysql.cj.jdbc.Driver</driver>
        <url>jdbc:mysql://localhost:3306/atguigu</url>
    </formal>
</jdbc>

DOM4J对XML进行解析

使用DOM4J步骤

在这里插入图片描述

番外1:类加载器获得指向字节码根路径下的指定文件

字节码根路径通常指的是在编译生成的字节码文件(如 .class 文件)存储的目录结构的根路径。
1、确定类路径:类加载器首先需要确定类路径,这是一个包含了所有类文件(字节码文件)的路径集合。
2、寻找类文件:类加载器根据类名和类路径寻找相应的字节码文件。类名以点(.)作为分隔符,而文件系统使用斜杠(/)。例如,类名 com.example.MyClass 对应于路径 com/example/MyClass.class
3、读取字节码:一旦找到字节码文件,类加载器会将其读取到内存中。这通常通过文件 I/O 操作实现。
4、定义类:类加载器使用读取的字节码来定义一个新的类对象

番外2:结点是什么东西?

node(节点)是指文档结构中的一个单元,它可以是以下几种类型:
Element(元素):XML 中的基本构建块,通常表示一个标签及其包含的内容。一个元素可以包含属性和其他元素。
Attribute(属性):属于元素的附加信息,以键值对的形式存储在元素的开始标签内。
Text(文本):元素内部包含的实际数据或内容,而非标签或属性。
Comment Node(注释节点):表示 XML 文档中的注释。
Processing Instruction Node(处理指令节点):用于包含处理指令,通常用于指示 XML 处理器如何处理文档。

代码

public class testDom4j {
    @Test
    public void testRead() throws  Exception{
        //读取jdbc.xml配置文件,获取document对象
        SAXReader saxReader = new SAXReader();
        //通过类加载器获得指向字节码根路径下的指定文件的输入流
        InputStream inputStream = testDom4j.class.getClassLoader().getResourceAsStream(("jdbc.xml"));
        //通过输入流获得配置文件,解析成一个dom文件
        Document document = saxReader.read(inputStream);
        //从document对象上获取配置文件的信息(根节点)
        Element rootElement = document.getRootElement();
        System.out.println(rootElement.getName());
        //获取子节点
        List<Element> elements = rootElement.elements();
        for (Element element : elements) {
            System.out.println(element.getName());
            //从子节点上获取attribute
            for (Object attribute : element.attributes()) {
                System.out.println(attribute);
            }
        }
    }
}

Tomcat

此教程下载的是Tomcat10,请提前下载好对应版本JDK(1.8版本以上),并配置好环境
运行startup.bat启动Tomcat,当出现乱码时,可以设置logging.properties文件代码中java.util.logging.ConsoleHandler.encoding = GBK
检验是否运行成功,(此时startup.bat不能关闭!)
如果需要直接在命令窗口执行startup.bat,需要配置Tomcat环境,具体创建一个CATALINA_HOME路径,并在path路径下添加%CATALINA_HOME%\bin(此步骤可跳过)

startup闪退问题

我这出现的主要是因为Java版本错了,补下了Java21,其中Java21是自动配置环境变量的,但是请还是要检查你的JAVA_HOME是不是还用的是老版本的,如果是,那么就改成新版本21的。
其他解决方案请点击此处

webapps文件夹

webapps文件夹用于部署WEB项目(存放其中)
http://localhost:8080/docs/浏览器输入这个地址对应的就是 webapps文件夹下的docs文件夹
其中上述的对应关系可以做更改,比如:上下文路径设置AAA对应部署目录下的examples
在这里插入图片描述

WEB项目的标准结构

app

app本应用根目录
static 非必要目录,一般在此处放静态资源(css js img)
WEB-INF 必要目录,且命名不能更改;受保护的资源目录,浏览器通过url不可以直接访问的目录
classes字节码根路径,存放java代码编译之后的文件
lib jar包的存放路径
web.xml当前项目的配置文件

在这里插入图片描述

URL的组成部分和项目中的资源对应关系

http:// 代表协议
127.0.0.1 IP 找到对应哪台电脑(服务器)
8080 端口号 找到服务器上的软件
app 上下文路径 找到webapps下的对应项目
index.html 项目资源

在这里插入图片描述

WEB项目部署的方式

1、直接将编译好的项目放在webapps目录下
2、将编译好的项目打成war包放在webapps目录下,Tomcat启动后会自动解压war包
3、可以将项目放在非webapps的其他目录下,在Tomcat中通过配置文件指向app的实际磁盘路径。其中path是可以更改为其他除“/app”之外的名称的,但是需要修改其他配置文件
在这里插入图片描述

IDEA开发并部署运行WEB项目

第一步:建立Tomcat和idea的关联
第二步:使用idea创建一个javaWeb工程,在该工程中开发代码
第三步:使用idea将工程构建成一个可以发布的app
第四步:使用idea将构建好的app部署到tomcat中,启动运行

在这里插入图片描述

IDEA关联Tomcat

在idea设置里面找到应用程序服务器(Application Servers)
在这里插入图片描述

构建Web工程

番外:怎么打开idea欢迎界面?
左上角File菜单选择Close Project 关闭当前项目即可
SDK和语言版本此处使用的是17,但是会遇到一个问题是,在添加框架支持时只能选择4.0的Web Application版本,这对于10.0的Tomcat是不满足的
解决方式:在项目结构-模块中添加给项目添加Tomcat,就能选择更高级的WebApplication版本了
如果本文讲的还不够细,可以参考视频P61

在这里插入图片描述
在这里插入图片描述

构建工程是在build中,选择构建工件,会生成一个out文件,这里面存放了Tomcat可以部署的项目文件

在这里插入图片描述

这里点击编辑配置
在这里插入图片描述
1、在配置中添加本地Tomcat服务器,并在部署内添加刚刚构建的工件,应用之后,点运行即可

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2115235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼&#xff1f;项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时&#xff0c;效率和理解度都会大打折扣。别担心&#xff0c;只需3分钟&#xff0c;我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是…

解决浏览器自动将http网址转https

删除浏览器自动使用https的方式 在浏览器地址栏输入&#xff1a;chrome://net-internals/#hsts PS:如果是edge浏览器可输入&#xff1a;edge://net-internals/#hsts 在Delete domain security policies搜索框下&#xff0c;输入要删除的域名,然后点击delete 解决方法&#…

VMware中共享文件夹没了怎么办?

1.进入root su root 需要提前设置密码 sudo passwd root 2.创建一个hgfs文件夹&#xff0c;share就在这里面 sudo mkdir /mnt/hgfs/ 3.输入下面的命令 sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 4.然后就能找到share文件夹了&#xff0c;注意每…

CCF推荐B类会议和期刊总结(计算机网络领域)

CCF推荐B类会议和期刊总结&#xff08;计算机网络领域&#xff09; 在计算机网络领域&#xff0c;中国计算机学会&#xff08;CCF&#xff09;推荐的B类会议和期刊代表了该领域的较高水平。以下是对所有B类会议和期刊的总结&#xff0c;包括全称、出版社、dblp文献网址以及所属…

串口通信协议(UART)

简介 uart通讯协议&#xff0c;是一种成本低、容易使用、通信线路简单&#xff0c;可实现两个设备的互相通信的协议&#xff1b;是一种全双工&#xff0c;设备点对点通信的协议。下面从硬件电路、电平标准和串口参数等方面来了解uart通信协议。 硬件电路 硬件电路非常简单&am…

如何限制与管控员工上网行为?五个管控方法让员工效率倍增!

在现代企业中&#xff0c;互联网是工作中不可或缺的工具&#xff0c;但与此同时&#xff0c;员工在工作时间浏览与工作无关的网站、进行网络娱乐等行为&#xff0c;也成为了影响企业生产力和效率的主要因素之一。如何有效限制和管控员工的上网行为&#xff0c;从而提升工作效率…

利士策分享,逆境破局关键:精准策略

利士策分享&#xff0c;逆境破局关键&#xff1a;精准策略 在人生的征途上&#xff0c;逆境如同试炼场&#xff0c;考验着我们的智慧与勇气。 为了在这片试炼场上稳健前行&#xff0c;我们需要一套具体而精准的应对策略。 以下&#xff0c;是结合实践经验与智慧总结的应对策略…

机器意识的可能性:从计算功能主义到生物自然主义的思考

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;的飞速发展引发了关于机器能否具备意识的激烈讨论。这个话题不仅涉及技术层面的挑战&#xff0c;还触及了哲学和神经科学的基本问题。Anil Seth教授作为意识研究领域的权威&#xff0c;他在近期发表的论文中提出了一…

ESP32-驱动ST7789显示

前言 一、TFT_eSPI库的安装 二、TFT_eSPI 的设置 1.文件的路径 2.User_Setup.h的设置 4.连线 三.显示 总结 前言 环境&#xff1a; 芯片&#xff1a;ESP32 软件&#xff1a;Arduino 一、TFT_eSPI库的安装 1.安装TFT_eSPI库,安装时注意安装内容不要错了 如果提示还有…

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2757 标注数量(xml文件个数)&#xff1a;2757 标注数量(txt文件个数)&#xff1a;2757 标注…

论文阅读:AutoDIR Automatic All-in-One Image Restoration with Latent Diffusion

论文阅读&#xff1a;AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion 这是 ECCV 2024 的一篇文章&#xff0c;利用扩散模型实现图像恢复的任务。 Abstract 这篇文章提出了一个创新的 all-in-one 的图像恢复框架&#xff0c;融合了隐扩散技术&#x…

Rust : 从事量化的生态现状与前景

Rust适不适合做量化工作&#xff1f; 一般地认为&#xff0c;目前大部分场景策略开发最佳是Python&#xff1b;策略交易和部署是C。但还是有人会问&#xff0c;Rust呢&#xff1f; 这个问题不太靠谱&#xff01; 适不适合做一件事情&#xff0c;本身就是一件主观的事。即使是…

通信工程学习:什么是AN接入网络

AN接入网络 AN接入网络&#xff0c;全称Access Network&#xff0c;是电信部门业务节点与用户终端设备之间的实施系统。它可以部分或全部代替传统的用户本地线路网&#xff0c;并可包括复用、交叉连接和传输功能。以下是关于AN接入网络的详细解释&#xff1a; 一、AN接入网络的…

【数据结构入门】排序算法之交换排序与归并排序

前言 在前一篇博客&#xff0c;我们学习了排序算法中的插入排序和选择排序&#xff0c;接下来我们将继续探索交换排序与归并排序&#xff0c;这两个排序都是重头戏&#xff0c;让我们接着往下看。 一、交换排序 1.1 冒泡排序 冒泡排序是一种简单的排序算法。 1.1.1 基本思想…

Recyclerview Item 高度不同 统一最大高度

参考这篇&#xff1a; android - How to set recycler height to highest item in recyclerView? - Stack Overflowhttps://stackoverflow.com/a/67403957/13583023

解读三国历史中的配角们:探索未被书写的故事 - 《三国配角演义》读后感

在传统的三国叙事中&#xff0c;英雄主角们的事迹往往被无限放大&#xff0c;而那些默默无闻的小人物则被忽视。然而&#xff0c;《三国配角演义》通过挖掘历史细节&#xff0c;赋予这些小角色新的生命。书中用微小的史料合理推断&#xff0c;构建了他们不为人知的精彩故事。 …

嵌入式 24081开班典礼:与梦同行,同筑未来

2024 年 9 月 3 日&#xff0c;华清远见西安中心嵌入式 24081期开班典礼在班主任熊燕老师的主持中成功举行。此次开班典礼为学员们开启了嵌入式学习之旅的精彩序幕。 1.开班致辞 典礼伊始&#xff0c;校企合作经理针对行业现状深入分析了嵌入式前景&#xff0c;为学员们清晰地…

JVM合集

序言: 1.什么是JVM? JVM就是将javac编译后的.class字节码文件翻译为操作系统能执行的机器指令翻译过程: 前端编译:生成.class文件就是前端编译后端编译:通过jvm解释(或即时编译或AOT)执行.class文件时跨平台的,jvm并不是跨平台的通过javap进行反编译2.java文件是怎么变…

AI 与大模型:物流行业的变革力量

一、物流行业的现状与挑战 物流行业在现代经济中扮演着至关重要的角色&#xff0c;但目前也面临着诸多挑战。 在效率方面&#xff0c;交通拥堵是一个突出问题。许多城市道路容量不足&#xff0c;无法满足日益增长的货物运输需求&#xff0c;导致运输时间延长。例如&#xff0…