发表于: 2017-11-03 22:08:49
2 889
任务进展:
1:今天准备小课堂并演示,主要讲web.xml的配置以及在容器中的加载过程。
1)web启动加载过程:web项目启动时,容器首先在web.xml中读取context-param和listener,然后创建一个ServletContext,作为全局共享信息存储,将context-param中的name和value存入。然后创建listener实例,listener继承了ContextLoader类,由ContextLoader加载上下文(父子),然后容器继续读取filter,实例化过滤器。然后读取servlet,根据load-on-startup的值(整数值)来决定是即时实例化还是第一次请求时实例化。
2)web-app:部署描述符的根元素是web-app。DTD文件规定web-app元素的子元素的语法如下:web-app (icon?, display-name?, description?, distributable?, context-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*,env-entry*, ejb-ref*, ejb-local-ref*)。
问号(?)表示子元素是可选的,而且只能出现一次。星号(*)表示子元素可在部署描述符中出现零次或多次。
3)display-name:web应用的名称,可以在容器的管理系统中查看。
4)distributable:告诉servlet/JSP容器,Web容器中部署的应用程序适合在分布式环境下运行。
5)context-param:含有一对参数名和参数值,用作应用的Servlet上下文初始化参数,参数名在整个Web应用中必须是惟一的,在web应用的整个生命周期中上下文初始化参数都存在,任意的Servlet和jsp都可以随时随地访问它。
6)session-config:用于设置容器的session参数。
7)listener:为web应用程序定义监听器,监听器用来监听各种事件。常用的Web事件接口有如下几个:
ServletContextListener:用于监听Web应用的启动和关闭;
ServletContextAttributeListener:用于监听ServletContext范围(application)内属性的改变;
ServletRequestListener:用于监听用户的请求;
ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变;
HttpSessionListener:用于监听用户session的开始和结束;
HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变。
8)filter:filter可认为是Servlet的一种“加强版”,主要用于对用户请求request进行预处理,也可以对response进行后处理,是个典型的处理链。使用filter的完整流程是:filter对用户请求HttpServletRequest进行预处理,接着将请求交给Servlet进行处理并生成响应,最后filter再对服务器响应HttpServletResponse进行后处理。filter与Servlet具有完全相同的生命周期,且filter也可以通过init-param来配置初始化参数,获取filter的初始化参数则使用filterConfig的getInitParameter()。filter在web.xml中配置,可包含filter-name、filter-class、init-param等子元素。
9)filter-mapping:用来声明Web应用中的过滤器映射,过滤器被映射到一个servlet或一个URL模式。这个过滤器的filter和filter-mapping必须具有相同的filter-name,指定该filter所拦截的URL。过滤是按照部署描述符的filter-mapping出现的顺序执行的。
10)servlet:运行在服务器端的程序,用于处理及响应客户的请求。
11)servlet-mapping:将URL模式映射到某个Servlet,即该Servlet处理的URL。
12)error-page:设置系统错误时返回的页面,包括error-code和location。
13)welcome-file:用来指定首页文件名称。welcome-file-list元素可以包含一个或多个welcome-file子元素。如果在第一个welcome-file元素中没有找到指定的文件,Web容器就会尝试显示第二个,以此类推。
2:晚上剩一点时间继续修改接口的参数判断,改了一部分并测试成功。
遇到问题:
时间不够,还得延期几天。
明日计划:
继续修改接口测试。
收获:
web.xml配置和容器加载过程。
进度:
任务开始时间:2017.09.15
预计demo时间:2017.11.4
是否有延期风险:已延期
评论