软件设计之JavaWeb(1)
此篇应在MySQL之后进行学习:
路线图推荐:
【Java学习路线-极速版】【Java架构师技术图谱】
尚硅谷全新JavaWeb教程,企业主流javaweb技术栈
资料可以去尚硅谷官网免费领取
此章节最好学完JDBC观看
学习内容:
- XML概述
- Tomcat
- 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服务器,并在部署内添加刚刚构建的工件,应用之后,点运行即可