javax。servlet。ServletContext接口,Servlet规范Tomcat服务器对ServletContext接口的实现类完整类名是:org。apache。catalina。core。ApplicationContextFacade javaweb程序员只需要面向ServletContext接口调用方法即可,不需要关心Tomcat具体的实现 3、到底是什么?什么时候被创建?什么时候被销毁?创建几个?1、ServletContext被译为:Servlet上下文 2、一个webapp只有一个web。xml文件,web。xml文件服务器启动阶段被解析 3、一个webapp只有一个ServletContext对象,ServletContext对象在服务器启动阶段被实例化 4、ServletContext在服务器关闭的时候被销毁 5、ServletContext对应的是web。xml文件,是web。xml文件的代表 6、ServletContext是所有Servlet对象四周环境的代表,被所有Servlet共享【在同一个webapp中,所有Servlet对象共享一个四周环境对象,该对象就是ServletContext】 7、所有用户若想共享同一个数据,可以将数据放到ServletContext对象中(写到web。xml文件中,或后期通过方法添加) 8、一般放到ServletContext对象中的数据不建议涉及到修改操作的,以为ServletContext是多线程共享的一个对象,修改的时候会存在线程安全问题 4、ServletContext接口中有哪些常用方法1、voidsetAttribute(Stringname,Objectobject)向ServletContext中添加数据 2、ObjectgetAttribute(Stringname)从ServletContext中获取数据 3、voidremoveAttribute(Stringname)从ServletContext中移除数据 4、StringgetInitParameter(Stringname)从ServletContext中获取name所对应的value初始化参数(标签中) 5、EnumerationgetInitParameterNames()从ServletContext中获取name所对应的value初始化参数(标签中) 6、StringgetRealPath(Stringpath)获取文件绝对路径 5、Servlet、ServletConfig、ServletContext之间的关系一个Servlet对应一个ServletConfig对象 所有的Servlet共享一个ServletContext对象 6、ServletContext范围可以完成跨用户传递数据A用户在ServletContext中存储了一个数据, B用户可以通过name获取对应的数据 7、上下文参数 标签是上下文参数(全局参数),定义在标签中 标签内还有、 表示参数的name(key) 表示name所对应的value 定义的参数属于全局,所有Servlet共享 这些参数信息封装在ServletContext对象中blockquote usernameparamname adminparamvalue contextparam passwordparamname 123paramvalue contextparam 总结注意: ServletConfig与ServletContext中的getInitParameter()、getInitParameterNames()不同ServletConfig是每个Servlet对象的配置信息对象,ServletConfig中的getInitParameter()与getInitParameterNames()获取到的初始化参数是在标签中的,标签定义在标签里面ServletContext是所有Servlet对象的共用的四周环境,ServletContext中的getInitParameter()与getInitParameterNames()获取到的参数是在标签中的,标签定义在标签里面 ServletContext中的getInitParameter(Stringname)与getAttribute(Stringname)不同getInitParameter(Stringname)获取到的参数是写在web。xml文件标签中的,获取到的都是字符串参数getAttribute(Stringname)获取到的数据是运行时添加到ServletContext中的数据,数据可以是任何类型,不同用户都可以通过name获取到数据