zoukankan      html  css  js  c++  java
  • 1.2_Web工程的组织结构

    一个最简单的Web应用的目录结构如下所示:

    Web应用的结构定义在Servlet的规范中,目前最新版本为3.1

    下载地址:https://jcp.org/aboutJava/communityprocess/final/jsr340/index.html

    Web应用的目录结构还是很简单的,不需要开发工具直接按目录结构组织文件内容,部署到Servlet容器中就可以直接使用,根目录就是应用的Context Path

    JSR340Servlet3.1的规范中描述:Context path of an application determines the URL namespace of the contents of the Web application.

    如果只是静态文件,都可以不需要WEB-INF以及web.xmlSimpleWebProject下只有一个index.jsp是可以直接访问到的。

    另外Servlet规范是支持以程序方式进行配置的,这样也不需要web.xml

    应用比较特殊的是WEB-INF目录,此路径不可以由外部直接访问到,因此对于classjar、配置文件等需要受保护的资源,都应该放到此目录下。

    但对于jar包中/META-INF/resource又是一种特殊情况,这里的资源被认为是静态资源,又可以直接被外部访问(其实这么用的场景很少,不用过多关注)。

    META-INF目录也比较特殊,外部不能直接访问。

    如果发布程序使用war包,打包程序会把一些应用相关的信息写入到MANIFEST.MF文件中。

    如果使用maven进行依赖管理,还会把maven的目录,内部是pom相关内容。

    关于Class Loader

    应用的Class Loader是容器的Class Loader的一个子类。

    应用的Class Loader需要能够加载classlib以及各种资源,并且class的优先级高于lib

    所有的Class Loader都不能覆盖Java SE platform class,比如java.*javax.*命名空间的资源等。

    关于部署描述符(web.xml

    主要用于定义ServletContextSessionServletServlet-MappingListenerFilter,其它像Welcome File list等用的并不多。

    Servlet容器根据web.xml就建立了外部请求到部署应用的Servlet的映射关系了。

  • 相关阅读:
    ORACLE【0】:基本操作
    ORACLE【3】:分区表以及分区索引
    ORACLE【2】:锁机制及解锁
    log4j学习一:解决系统日志错位问题
    使用一个非堵塞的socket用于接收http请求
    Python中文转换报错 'ascii' codec can't decode byte 0xe8 in position
    首次使用Redis记录【3】
    xsi:schemaLocation有何作用
    【转】【redis】3.Spring 集成注解 redis 项目配置使用
    maven仓库地址
  • 原文地址:https://www.cnblogs.com/jiaoqq/p/7054873.html
Copyright © 2011-2022 走看看