Web应⽤程序的⽬录结构
⼀个Web应⽤程序基本上由以下项⽬组成:
1.静态资源(HTML,CSS,图⽚,声⾳等)
2.Servlet
3.JSP
4.⾃定义类
5.⼯具类
6.部署描述⽂件(l等)、设置信息(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)/l 是部署描述⽂件
(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。
webapp是什么架构如果要⽤到某个类,则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容器。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论