JSP应用程序目录结构回顾

回顾一下简单JSP程序的目录结构

对于客户端来讲,JSP程序目录包括:公开目录和不可见目录(WEB-INF)两个部分。

基本的WEB APP目录
一个好的目录结构就跟一个组织良好的Classes Package一样,会让人看着很舒服。重要的是,它让你维护起来很方便,而且让其他人能看懂你的应用。

我们可以来看看下面的目录结构
root
/index.html
/travel/products.jsp
/travel/tickets/query.jsp
/help/howto.jsp
/help/faq.html
/images/*.gif
是否比都放在根目录下的方式要好呢?

WEB-INF
在每一个JSP应用目录下,我们都可以看到一个WEB-INF目录,它对于客户端是不可见的。
我们可以在其中保存不想公开的信息。
一般地:
/WEB-INF/web.xml中保存应用程序的配置信息;
/WEB-INF/classes/中保存了一些servlet和utility类;
/WEB-INF/lib/中可以放一些JAR文件。
在我们的程序中,我们可以通过ServletContext.getResource和ServletContext.getResourceAsStream
来访问这些保存在WEB-INF下的文件。

补充一点:在ServerSpecification2.4中,Web Container (tomcat,weblogic,etc.)必须先从
classes目录下装载应用的类,然后再从lib在装载jar文件。任何访问/WEB-INF/下资源的企图,
Web Container都必须返回一个404的ERROR。

更进一步
好的目录结构会还在哪些方面影响我们的web应用呢?
我们都知道是可以配置servlet mappings,既通过web.xml中<servlet-mapping>元素来决定
用户请求的URL由哪个servlet class来处理。
在mapping的配置中,<url-pattern>的指定实际上与我们的目录结构息息相关的。
我们来看看下面的例子。
在配置文件中,我们写了:
<servlet-mapping>
   <servlet-name>servlet1</servlet-name>
   <url-pattern>/travel/tickets/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
   <servlet-name>servlet2</servlet-name>
   <url-pattern>/travel/*</url-pattern>
</servlet-mapping>
当用户输入了:/travel/a时,那个servlet会处理呢?Web Container会按照完全匹配-
->url path匹配-->扩展名匹配的方式来查找。因此,servlet2会被调用。

因此,大家在考虑应用时,也应该花些时间来考虑一下应用的目录结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值