大佬教程收集整理的这篇文章主要介绍了将properties文件的配置设置为整个Web应用的全局变量实现方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_@R_262_11248@_2@四大作用域:
Web应用中的变量存放在不同的Jsp对象中,会有不一样的作用域,四种不同的作用域排序是 pageContext < request < session < application;
@H_@R_262_11248@_2@1、pageContext:页面域,仅当前页面有效,离开页面后,不论重定向还是转向(即无论是redirect还是forWARD),pageContext的属性值都失效;
@H_@R_262_11248@_2@2、request:请求域,在一次请求中有效,如果用forWARD转向,则下一次请求还可以保留上一次request中的属性值,而redirect重定向跳转到另一个页面则会使上一次request中的属性值失效;
@H_@R_262_11248@_2@3、session:会话域,在一次会话过程中(从浏览器打开到浏览器关闭这个过程),session对象的属性值都保持有效,在这次会话过程,session中的值可以在任何页面获取;
@H_@R_262_11248@_2@4、application:应用域,只要应用不关闭,该对象中的属性值一直有效,并且为所有会话所共享。
利用servletcontextlistener监听器,一旦应用加载,就将propertIEs的值存储到application当中
现在需要在所有的Jsp中都能通过EL表达式读取到propertIEs中的属性,并且是针对所有的会话,故这里利用application作用域,
那么什么时候将propertIEs中的属性存储到application呢?因为是将propertIEs的属性值作为全局的变量以方便任何一次EL的获取,所以在web应用加载的时候就将值存储到application当中,
这里就要利用servletcontextlistener:
servletcontextlistener是Servlet API 中的一个接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期。
当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由servletcontextlistener 来处理。
@H_@R_262_11248@_2@具体步骤如下:
1、新建一个类PropertyListenter实现 servletcontextlistener接口的contexTinitialized方法;
2、读取propertIEs配置文件,转存到Map当中;
3、使用ServletContext对象将Map存储到application作用域中;
/** * 设值全局变量 * @author meiKai * @version 2017年10月23日 下午2:15:19 */ public class PropertyListenter implements servletcontextlistener { /* (non-JavadoC) * @see javax.servlet.servletcontextlistener#contextDestroyed(javax.servlet.ServletContextEvent) */ @OverrIDe public voID contextDestroyed(ServletContextEvent arg0) { // Todo auto-generated method stub } /* (non-JavadoC) * @see javax.servlet.servletcontextlistener#contexTinitialized(javax.servlet.ServletContextEvent) */ @OverrIDe public voID contexTinitialized(ServletContextEvent scE) { /** * 读取propertIEs文件 * */ final Logger logger = (Logger) LoggerFactory.getLogger(PropertyListenter.class); PropertIEs propertIEs = new PropertIEs(); inputStream in = null; try { //通过类加载器进行获取propertIEs文件流 in = PropertIEsUtil.class.getClassLoader().getresourceAsstream("kenhome-common.propertIEs"); propertIEs.load(in); } catch (fileNotFoundException E) { logger.error("未找到propertIEs文件"); } catch (IOException E) { logger.error("发生IOException异常"); } finally { try { if(null != in) { in.close(); } } catch (IOException E) { logger.error("propertIEs文件流关闭出现异常"); } } /** * 将propertIEs文件转存到map */ Map<String,String> pros = new HashMap<String,String>((Map)propertIEs); /** * 将Map通过ServletContext存储到全局作用域中 */ ServletContext sct=sce.getServletContext(); sct.setAttribute("pros",pros); } }
4、在web.xml中配置上面的的监听器PropertyListenter:
<!-- 全局变量监听器,读取propertIEs文件,设值为全局变量 --> <Listener> <Listener-class>com.meiKai.Listener.PropertyListenter</Listener-class> </Listener>
配置好后,运行Web应用,就能在所有的Jsp页面中用EL表达式获取到propertIEs中的属性值了。
以上这篇将propertIEs文件的配置设置为整个Web应用的全局变量实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。
以上是大佬教程为你收集整理的将properties文件的配置设置为整个Web应用的全局变量实现方法全部内容,希望文章能够帮你解决将properties文件的配置设置为整个Web应用的全局变量实现方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。