Java Web工程目录结构

介绍java web 工程的基本结构目录。记录java web 工程结构的学习。

Java web 结构

java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构。工程发布目录结构结构,为servlet容器加载web应用的统一标准目录,而工程编译目录结构是为了方便工程编写、修改的临时结构,需要通过工程构建工具(ant,maven,gradle等)编译生成最终的运行时发布结构。因此,工程编译目录结构并不统一,与所使用的编译工具有关(也和配置有关)。

工程发布结构

这个也是最终的工程目录结构,结构示意如下:

-helloapp -index.html -othersDirs -*.html -*.css -*.png - ...... -WEB-INF -web.xml -classes -pakageName -*.class -lib -otherConfigfile -META-INF -MANIFEST.MF

如上,一般可以将其分为以下几个部分内容:

静态文件资源

静态文件资源包括需要访问的jsp、html、css、js、png、ico、gif、conf配置文件等,可以将其放在任意位置,一般默认是防止主目录下,访问后缀路径为文件相对主目录路径。如上,index.html的相对访问路径为:/index.html ,绝对访问路径为: :port/helloapp/index.html .

工程配置文件(部署描述符文件)

即是java web 项目最主要的构成部分之一:web.xml.其对应位置如上放在WEB-INF的根目录下。用于配置工程的一些基本配置。如,访问控制配置、默认访问配置、过滤配置、时间监听等。其基本格式如下所示:

<!--web.xml对于大小写敏感 --> <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee " id="WebApp_ID" version="3.0"> <display-name>helloapp</display-name> <!--上下文传入键值对--> <context-param> <param-name>key</param-name> <param-value>value</param-value> </context-param> <!--设置web-app默认主页 --> <welcome-file-list> <welcome-file>login.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!--创建servlet对象--> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>mypack.DispatcherServlet</servlet-class> </servlet> <!--提供servlet对象指向--> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/dispatcher</url-pattern> </servlet-mapping> </web-app>

依赖,可执行文件

这是java web 应用的核心部分了,主要用于实现web 应用的动态创建逻辑、动态响应的功能,为java的具体实现部分,主要分成两个部分分布:一个是WEB-INF/lib/*.jar,为当前应用需要使用的依赖jar包,另一个为WEB-INF/classes/…/*.class文件,为web工程编译生成的class文件,查找顺序为先查找lib目录下的*.jar文件,然后查找classes/…/*.class文件.

web 版本信息等

这个是生成发布版本时根据配置自动生成的配置信息,再META-INF/MANIFEST.MF.

工程编译目录结构

这里主要介绍两种目录结构:一个是eclipse默认创建的动态web应用结构,一个是maven构建的工程目录结构。

Dynamic Web Project结构

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgjzds.html