1:WEB-INF的目录结构一般包含
web.xml 应用的部署描述符
classes/ 应用程序类集合
lib/*.jar
2:一个web应用程序的文件清单
/index.html
/app.jsp
/images/welcome.gif
/WEB-INF/web.xml
/WEB-INF/classes/com/ht/Hello.class
/WEB-INF/lib/hello.jar
3:web应用程序部署描述文件的配置可以包含以下内容
ServletContext的初始化参数
Session的配置,比如失效时间等
Servlet的定义
MIME类型映射
欢迎文件列表
错误页面
安全
4:错误处理
声明式:在web.xml文件中进行声明处理
<error-page>
<error-code>404</error-code>
<location>/FileNotFound.html</location>
</error-page>
<error-page>
<exception-type>java.io.FileNotFoundException</exception-type>
<location>/ExcepHandler</location> //也可以是静态文件或者jsp页面
</error-page>
编程式:在程序中使用try - catch来处理,利用RequestDispatcher将请求转发给别的servlet来处理;或者将异常进行封装之后,利用RequestDispatcher 转发给别的servlet
try{
}catch(ArithmeticException e){
request.setAttribute("javax.servlet.error.exception", e);
request.setAttribute("javax.servlet.error.request_uri", request.getRequestURI());
request.getRequestDispatcher("****").forward();
}
5:当一个web应用程序部署到容器中,在请求处理之前,必须按照下面顺序进行处理
实例化每一个监听器
实例化实现了SevletContextListener接口的监听器,调用contextInitialized()方法
实例化每一个过滤器,并调用过滤器的init()
6:web.xml部署文件
如果应用没用servlet, listener, filter, web.xml文件不是必须的,也就是说只用jsp和静态文件的web应用可以没用web.xml文件
7:WEB-INF 这个目录包含了应用程序相关的所有东西,这些东西部在应用程序的归档集中,除了静态资源和WEB-INF/lib目录下打包在jar文件中META-INF/resources目录下的jsp文件之外,WEB-INF目录下的所有文件都不能由容器直接提供给客户端访问。里面的资源只能通过ServletContext的getResource和getResourceAsStream方法来访问,并可使用RequestDispatcher调用公开这些内容。