zoukankan      html  css  js  c++  java
  • [转]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 ,绝对访问路径为: http://domain:port/helloapp/index.html .

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

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

    
    <!--web.xml对于大小写敏感 -->
    <?xml version="1.0" encoding="UTF-8"?>
    <web-appxmlns: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 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"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构建的工程目录结构。

    1. Dynamic Web Project结构

    eclipse默认动态结构如下所示:

    helloapp
    -src
     -packageName
      -*.java
    -WebContent
      -META-INF
       -MANIFEST.MF
      -WEB-INF
       -web.xml
       -lib
        -*.jar
    

    如上,主要分为两个部分:src对应的具体java逻辑实现部分;WebContent对应依赖、工程配置、静态文件部分,默认WebContent根目录对应于发布工程根目录,具体的目录结构对应关系可以通过:

    projectName(右键) ——>Properties——>DeployMent Assembly

    查看,也可以在此自定义修改对应关系(需谨慎).

    1. Maven工程结构

    maven结构比较方便web应用的构建,对于依赖、配置等比较方便。如下,为其基本的工程结构:

    helloapp
    -src
     -main
      -java
       -pacakgename
        -*.class
      -resources
       -configfile
      -webapp
       -index.html
       -login.jsp
       -othersFolders
       -WEB-INF
        -web.xml
    -target
     -generated-files
    -pom.xml
    

    其默认部署对应关系如下:

    sourceDeploy Path
    src/main/java WEB-INF/classes
    src/main/resources WEB-INF/classes
    src/main/webapp /
    src/main/webapp/WEB-INF/WEB-INF WEB-INF/web.xml
    maven Dependencies WEB-INF/lib

    其中pom.xml主要是用来配置工程依赖和编译、发布等版本的控制的。

    Enjoytoday,EnjoyCoding


    ---------------------
    作者:amiko
    来源:CNBLOGS
    原文:https://www.cnblogs.com/amiko/p/7906215.html
    版权声明:本文为作者原创文章,转载请附上博文链接!
    内容解析By:CSDN,CNBLOG博客文章一键转载插件

  • 相关阅读:
    VUE课程参考---2、VUE基本使用
    VUE课程---1、VUE课程介绍
    JS数组常用方法---3、pop方法使用及原理
    JavaScript中数组元素删除的七大方法汇总
    Stack的三种含义
    JS数组常用方法---6、reverse方法
    数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
    服务框架HSF分析之一容器启动
    淘宝HSF服务的原理以及简单的实现
    DAS 原文出自【比特网】
  • 原文地址:https://www.cnblogs.com/admans/p/11566238.html
Copyright © 2011-2022 走看看