zoukankan      html  css  js  c++  java
  • Web应用程序的目录结构

    一个Web应用程序基本上由以下项目组成:

    1.静态资源(HTML,CSS,图片,声音等)

    2.Servlet

    3.JSP

    4.自定义类

    5.工具类

    6.部署描述文件(web.xml等)、设置信息(Annotation等)

    Web应用程序目录结构必须符合规范。例如,如果一个应用程序的环境路径(Context path)是/HelloServlet,则所有的资源项目必须以/HelloServlet为根目录依规定结构摆放。基本上根目录中的资源可以直接下载,若index.html位于/HelloServlet下,则可以直接以/HelloServlet/index.html来取得。

    Web应用程序存在一个特殊的/WEB-INF子目录,此目录中存在的资源不会被列入应用程序根目录中可直接访问的项。即,客户端(如Browser)不可以直接请求/WEB-INF中的资源(直接在网址上指明访问/WEB-INF),否则就是404 Not Found的错误结果。/WEB-INF中的资源项目有着一定的名称与结构。

    (1)/WEB-INF/web.xml 是部署描述文件

    (2)/WEB-INF/classes 用来放置应用程序用到的自定义类(.class),必须包括包(package)结构。

    (3)/WEB-INF/lib 用来放置应用程序用到的JAR文件。

    Web应用程序用到的JAR文件,其中可以放置Servlet、JSP、自定义类、工具类、部署描述文件等,应用程序的类载入器可以从JAR中载入对应的资源。

    可以在JAR文件中的/META-INF/resources目录中放置静态资源或JSP等,例如若在/META-INF中放个index.html,若请求的URL中包括/HelloServlet/index.html,但实际上/HelloServlet根目录下不存在index.html,则会使用JAR中的/META-INF/resources/index.html。

    如果要用到某个类,则Web应用程序会到/WEB-INF/classes中试着载入类,若无,再试着从/WEB-INF/lib的JAR文件中寻找类文件(若还没有找到,则会到容器实现本身存放类或JAR的目录中寻找,但位置视不同实现厂商而有所不同,以Tomcat为例,搜索的路径是Tomcat的安装目录下的lib目录)。

    客户端不能直接请求/WEB-INF中的资源,但可以通过程序的控制,让程序来取得/WEB-INF中的资源,如使用ServletContext的getResource()与getResourceAsStream(),或是通过RequestDispatcher请求调派。

    Web app 默认主页的设置:访问URL如:localhost:8080/FirstServlet/

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>default.jsp</welcome-file>

    </welcome-file-list>

    如果找不到以上的文件,则会尝试至JAR的/META-INF/resources中寻找已放置的资源页面。

    整个Web应用可以被封装为一个WAR文件,如FirstServlet.war,以便于部署至Web容器。

  • 相关阅读:
    Flume入门与进阶
    git如何忽略已经加入版本控制的文件
    Redis常用命令
    如何在宝塔面板上添加创建一个定时任务
    PHP代码篇(九)PHP接口开发如何使用JWT进行验证身份
    七. Go并发编程--sync.Once
    六. Go并发编程--WaitGroup
    5. Go 并发编程--sync/atomic
    4. Go并发编程--Mutex/RWMutex
    docker内服务访问宿主机服务
  • 原文地址:https://www.cnblogs.com/liqiong/p/4268333.html
Copyright © 2011-2022 走看看