本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.关于ServletContex

  1)Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,ServletContext对象被包含在ServletConfig(关于servletConfig参考另外一篇博文)对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。

  2)由于一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象被称之为 application 对象(Web应用程序对象); 很重要

  3)可以实现的功能(获取当前应用的各个方面的信息)

    >获取WEB应用程序的初始化参数

    >记录日志

    >application域范围的属性

      >访问资源文件

      >获取虚拟路径所映射的本地路径

      >WEB应用程序之间的访问

2.配置ServletContext:在当前的WEB目录下的 web.xml配置,每配置一个参数,就必须重新创建一个<context-param> </context-param>节点,配置完成后,对于任何一个servlet都可以获取到ServletContex的初始化参数,二servlet的初始化参数,只有当前的servlet能获取

  1. <!-- 配置当前 WEB 应用的初始化参数 -->
  2. <context-param>
  3. <param-name>driver</param-name>
  4. <param-value>com.mysql.jdbc.Driver</param-value>
  5. </context-param>
  6.  
  7. <context-param>
  8. <param-name>jdbcUrl</param-name>
  9. <param-value>jdbc:mysql:///test</param-value>
  10. </context-param>

3.获取ServletContext的配置信息

  1)getInitParameter(String parameterName):获取初始化driver的参数值

   2)getInitParameterNames():获取所有的parameterName值

  3)getRealPath(String path):获取当前应用的某一个文件在服务器上的绝对路径,必须在WebContent文件夹下

  4)getContexPath():获取当前应用的名称

  5)getResourceAsStream(String path) path的 / 为相对于 WEB 应用的根目录:获取当前WEB应用的某一个文件对应的输入流(很重要),在src下创建jdbc.properties

  1. @Override
  2. public void init(ServletConfig servletConfig) throws ServletException {
  3. System.out.println("init");
  4.  
  5. // 1.获取ServletContext对象,当前的web应用的信息
  6. ServletContext servletContext = servletConfig.getServletContext();
  7.  
  8. // 2.获取初始化driver的参数值
  9. String driver = servletContext.getInitParameter("driver");
  10. System.out.println("driver :" + driver);// output -> driver
  11. // :com.mysql.jdbc.Driver
  12.  
  13. // 3.获取所有的parameterName值,输出
  14. Enumeration<String> names = servletContext.getInitParameterNames();
  15. while (names.hasMoreElements()) {
  16. String name = names.nextElement();
  17. System.out.println(name);// output -> driver jdbcUrl
  18. }
  19.  
  20. // 4.获取当前应用的某一个文件在服务器上的绝对路径,必须在WebContent文件夹下
  21. String realPath = servletContext.getRealPath("/hello.jsp");
  22. // output
  23. // -> E:\java_workspase\eclipes\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\javaWEB\hello.jsp
  24. System.out.println(realPath);
  25.  
  26. // 5.获取当前应用的名称
  27. String contextPath = servletContext.getContextPath();
  28. System.out.println(contextPath); // output -> /javaWEB
  29.  
  30. // 获取当前WEB应用的某一个文件对应的输入流
  31. // 方式一:
  32. try {
  33. ClassLoader classloader = getClass().getClassLoader();
  34. InputStream is = classloader.getResourceAsStream("jdbc.properties");
  35. System.out.println("1." + is);
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. }
  39.  
  40. // 方式二:
  41. try {
  42. // 路径为想对于web项目在服务器中的绝对路径 ,其中/为 根 :即 开发中的 WebContent
  43. InputStream is2 = servletContext
  44. .getResourceAsStream("/WEB-INF/classes/jdbc.properties");
  45. System.out.println("2." + is2);
  46. } catch (Exception e) {
  47.  
  48. e.printStackTrace();
  49. }
  50.  
  51. }

4.总结

  1)充分理解 ServletContext对象:代表的是整个WEB应用

  2)理解各个方法

[原创]java WEB学习笔记06:ServletContext接口的更多相关文章

  1. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. [原创]java WEB学习笔记47:Servlet 监听器简介, ServletContext(Application 对象), HttpSession (Session 对象), HttpServletRequest (request 对象) 监听器,利用listener理解 三个对象的生命周期

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  6. [原创]java WEB学习笔记27:深入理解面向接口编程

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. [原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. git统计代码行数

    查看个人指定时期内代码行数,注意将 --author="user.name" 替换成自己的用户名 git log --since="2018-07-16" -- ...

  2. Android文章收藏

     Android集 1.Himi李华明的<Android游戏开发专栏>http://blog.csdn.net/column/details/androidgame.html2.老罗的&l ...

  3. MongoDB 常见的查询索引

    常见的查询索引 _id索引         _id 索引是绝大多数集合默认建立的索引.对于每一个插入的数据.MongoDB 会自己主动生成一条唯一的 _id 字段. 1 2 3 4 5 6 7 8 9 ...

  4. zabbix自动发现监控远程端口

    zabbix监控远程服务器端口,simple checks是zabbix用来监控无agent的主机 脚本和模板地址: https://github.com/mikeluwen/tcpmonitor

  5. vbox克隆虚拟机,网卡启动报错“Device eth0 does not seem to be present”

    vbox克隆虚拟机,网卡启动报错"Device eth0 does not seem to be present". 须要看以下三个地方:确保文件名称,设备名.mac地址都一致. ...

  6. C#中YieldReturn的用法

    Yield Return 和 Yield Break 的出现是为了简化迭代器. 类如果能被遍历则必须有IEnumerator<string> GetEnumerator() 方法, 并有用 ...

  7. centos 防火墙开放80端口

    辛辛苦苦编译安装完Ngnix,mysql ,PHP,后发现不能访问,后来发现是防火墙把80端口给禁用了.开启之:(以下参考自:http://llhdf.javaeye.com/blog/526176) ...

  8. codeforces 427 div.2 F. Roads in the Kingdom

    F. Roads in the Kingdom time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  9. 4.关于QT中的QFile文件操作,QBuffer,Label上加入QPixmap,QByteArray和QString之间的差别,QTextStream和QDataStream的差别,QT内存映射(

     新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CON ...

  10. Power of Cryptography - poj 2109

      Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 20351   Accepted: 10284 Description C ...