【JavaWeb】WEB项目的标准结构

一、引入

接下来讲解可以在Tomcat中进行发布的项目的目录结构是怎么样的?

我们可以先来查看Tomcat自带的结构,然后再来总结一下就行了。

找到 D:\develop\apache-tomcat-10.1.26\webapps,这里面就通过 examples 来了解。

image-20240724102506173

我们在webapps下新建app目录,这个目录就是我们要发布的我们自己的项目,即部署目录。

由于css、img、js在外面散着也挺糟心的,于是就会在它们外面再创建一个static目录,名字是可以随便起的,但是建议叫做static。

一个标准的可以用于发布的WEB项目标准结构如下

1681453620343


二、app 本应用根目录

1)static

非必要目录,约定俗成的名字,一般在此处放静态资源 ( css js img)


2)WEB-INF

必要目录,必须叫WEB-INF,受保护的资源目录,浏览器通过url不可以直接访问的目录

  • classes 必要目录,字节码根路径,我们所写的java文件,经过编译后转成 .class文件,这个 .class文件 就是放到 WEB-INFclasses目录 中的,src下源代码、配置文件,编译后会在该目录下,web项目中如果没有源码,则该目录不会出现
  • lib 必要目录,项目依赖的jar编译后会出现在该目录下,web项目要是没有依赖任何jar,则该目录不会出现
  • web.xml 必要文件,当前项目的基本配置文件,较新的版本中可以没有该文件,但是学习过程中还是需要该文件

面三个都是固定的,其他目录都是后面项目在开发时单独添加的。

如下图,访问webapps除WEB-INF目录下的任何文件都可以

image-20240724115214235

image-20240724115053935

但如果访问 WEB-INF 下的资源就访问不到了,原因就是因为 WEB-INF 是受保护的,你想通过浏览器的url直接来访问是不允许的。

image-20240724115114894

那为什么不允许直接访问呢?是因为WEB-INF里面放的东西都非常非常重要。


3)index.html

非必要文件,index.html/index.htm/index.jsp为默认的欢迎页


三、url的组成部分和项目中资源的对应关系

浏览器:

  • 输入网址:http://127.0.0.1:8080/app/inex.html

    • http:代表的是请求的协议

    • 通过IP地址192.168.100.11定位到网络上的一台计算机

      在浏览器中输入的localhost,就是127.0.0.1(本机)

    • 通过端口号8080找到计算机上运行的程序,这里就是:通过8080找到Tomcat这款软件

      localhost:8080 , 意思是在本地计算机中找到正在运行的8080端口的程序

    • /app 是上下文路径。通过这个上下文路径,找到webapps中的某个项目

      PS:如果没有设置上下文访问路径,那么访问路径和项目目录名字是一致的,如果设置了,那么就是你设置的那个路径

    • /inex.html 是请求资源位置,即某个项目里面具体的资源了

    • 资源:对计算机而言资源就是数据

      • web资源:通过网络可以访问到的资源(通常是指存放在服务器上的数据)

      localhost:8080/hello ,意思是向本地计算机中的8080端口程序,获取资源位置是/hello的数据

      • 8080端口程序,在服务器找/hello位置的资源数据,发给浏览器

    PS:如果就写到 http://127.0.0.1:8080/app,它默认就是去找index.html | index.htm | index.jsp

1681456161723


如果想要访问ROOT,这个项目部署的目录名和你访问的上下文的路径是不一样的

image-20240724125126996

如果直接输入 http://127.0.0.1:8080/ROOT/index.jsp 是访问不到的

image-20240724125307714

ROOT是一个特殊的项目,访问它的时候是不需要上下文的,在地址栏中访问:http://127.0.0.1:8080。所以没有给出项目目录时,对应的就是ROOT项目。

image-20240724125346986

另外 managerhost-manager 也是特殊的,访问的时候是需要输入Tomcat账号密码才能进行访问的。

image-20240724125514919

设置Tomcat访问的账号密码就需要对 conf/tomcat-users.xml 进行配置。

<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">	
	<role rolename="admin-gui"/>
	<role rolename="admin-script"/>
	<role rolename="manager-gui"/>
	<role rolename="manager-script"/>
	<role rolename="manager-jmx"/>
	<role rolename="manager-status"/>
	<user 	username="admin" 
          password="admin" 
          roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"
	/>
</tomcat-users>

保存后,此时就可以使用 账号admin,密码 admin 去访问了。

这里面就可以看到Tomcat部署了哪些项目,并且还可以看见这个项目是启动状态还是停滞状态、是否在运行中。

并且还可以看见有多少人在访问这个项目,由于我们现在访问的就是 /manager/html,所以会话就是1。

image-20240724125854381

另外还有一个 host-manager,这个也是Tomcat自带的一个管理项目

image-20240724130330923
Java EE 项目的目录结构可以根据具体的需求进行灵活设计,但一般情况下,推荐使用以下的标准目录结构: ``` project ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ ├── controller │ │ │ ├── dao │ │ │ ├── entity │ │ │ ├── service │ │ │ └── util │ │ ├── resources │ │ │ ├── mapper │ │ │ └── db.properties │ │ └── webapp │ │ ├── WEB-INF │ │ │ ├── classes │ │ │ ├── lib │ │ │ └── web.xml │ │ ├── css │ │ ├── js │ │ ├── images │ │ └── index.jsp │ └── test │ ├── java │ └── resources ├── target ├── pom.xml └── README.md ``` 其中,各个目录的作用如下: - `src/main/java`:存放项目的 Java 源代码,按照包名分层,一般包括 `controller`、`dao`、`entity`、`service` 和 `util` 等包; - `src/main/resources`:存放项目的配置文件和资源文件,一般包括数据库连接配置文件 `db.properties`、MyBatis 的 mapper 文件等; - `src/main/webapp`:存放 Web 应用的 Web 资源,包括 JSP 页面、CSS 样式表、JavaScript 脚本等; - `src/test/java`:存放项目的测试代码; - `src/test/resources`:存放测试代码所需要的资源文件; - `target`:存放编译后的 .class 文件、打包后的 .war 文件等; - `pom.xml`:Maven 项目管理工具的配置文件; - `README.md`:项目说明文件。 以上是一种常见的 Java EE 项目目录结构,但并不是唯一的标准。在实际开发中,可以根据项目的具体需求进行合理的调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值