目录结构
Java Web应用程序必须使用规范的目录结构:
(以名为hellocapp的应用为例)
应用程序根目录, 例如/helloapp | Web应用的根目录,所有的JSP和HTML文件都存放于此目录或用户自定义的子目录下(WEB-INF子目录除外)。 其他静态文件:CSS,JS,图片等。 公开目录。 | ||
/helloapp/ WEB-INF/ | 必须的目录。WEB-INF是Java的WEB应用的安全目录。客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。 | ||
/helloapp/WEB-INF/classes/ | 存放各种.class文件,Servlet类的.class文件也放于此目录下。 在WEB-INF目录的classes及lib目录下,都可以存放Java类文件。在运行时,Servlet容器的类加载器先加载classes目录下的类,再加载lib目录下的JAR文件中的类。因此,如果两个目录下存在同名的类,classes目录下的类具有优先权。 | ||
/helloapp/WEB-INF/lib/ | 存放第三方库JAR文件 | ||
/helloapp/WEB-INF/web.xml | 存放Web应用的配置文件 | ||
/helloapp/WEB-INF/TLD文件 | 标签库描述文件 | ||
/helloapp/ META-INF | |||
/helloapp/META-INF/MANIFEST.MF | 程序入口相关信息 |
WEB组件的URL
Web应用的默认URL入口都是Web应用的根目录名。上例中helloapp应用,它的URL入口为/helloapp
- 对于HTML,JSP文件:
它们的URL与文件路径之间存在对应关系。
例如login.html路径为helloapp/login.htm,它的URL为http://localhost:8080/helloapp/login.htm
hello.jsp路径为helloapp/hello.jsp,它的URL为http://localhost:8080/helloapp/hello.jsp
HTML,JSP文件也可以放在自定义的子目录下。
例如helloapp/dir1/dir2/hello.jsp,那么它的URL为http://localhost:8080/helloapp/dir1/dir2/hello.jsp
- 对于Servlet:
需要在web.xml中映射其URL。
例如:
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>mypack.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/dispatcher</url-pattern>
</servlet-mapping>
方位mypack.DispatcherServlet类的URL为http://localhost:8080/helloapp/dispatcher