JAVA WEB项目目录结构以及web应用部署的根目录,编译路径和项目根目录的区别

web应用部署的根目录,编译路径和项目的根目录有什么区别?

直接上例子:

你有一个项目,名字叫做testPro

项目放到了你的D盘,目录结构是这样的:

D:/testPro

--src

--main

--webapp

--WEB-INF

--target

--classes

这里,项目的根目录就是D:/testPro

web应用部署的根目录就是webapp目录(当然你的目录可能叫web或者webroot或者别的什么)

编译路径默认的就是target/classes

附一个javaweb项目的目录结构

├── pom.xml //maven的配置文件

└── src

├── main

│ ├── java //java代码的目录

│ │ └── mygroup

│ │ ├── controller

│ │ │ ├── HomeController.java

│ │ │ └── PersonController.java

│ │ ├── dao

│ │ │ └── PersonDao.java

│ │ └── model

│ │ └── Person.java

│ ├── resources //静态资源目录

│ │ ├── db.properties

│ │ ├── log4j.xml

│ │ └── META-INF

│ │ └── persistence.xml

│ └── webapp //web应用部署根目录

│ ├── index.html //因为是静态html文件,不用放到WEB-INF目录下

│ ├── META-INF

│ │ ├── context.xml

│ │ └── MANIFEST.MF

│ ├── resources //css,js等静态资源是不能放到WEB-INF目录下的,因为WEB-INF下的资源,客户端无法直接访问

│ │ └── css

│ │ └── screen.css

│ └── WEB-INF //jsp都会放到这里,以保证用户无法直接访问jsp,而是通过controller这个目录下的所有内容客户端都无法直接访问,所以不要放静态文件

│ ├── spring

│ │ ├── app

│ │ │ ├── controllers.xml

│ │ │ └── servlet-context.xml

│ │ ├── db.xml

│ │ └── root-context.xml

│ ├── views

│ │ ├── edit.jsp

│ │ ├── home.jsp

│ │ └── list.jsp

│ └── web.xml

└── test

├── java

│ └── mygroup

│ ├── controller

│ │ ├── DataInitializer.java

│ │ ├── HomeControllerTest.java

│ │ └── PersonControllerTest.java

│ └── dao

│ └── PersonDaoTest.java

└── resources

├── db.properties

├── log4j.xml

├── test-context.xml

└── test-db.xml