温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Servlet学习笔记(3)——ServletContext

发布时间:2020-08-10 16:54:15 来源:网络 阅读:382 作者:殷岩泉 栏目:开发技术
  1. 定义

    servlet引擎为每个web应用程序都创建一个对应的ServletContext对象,它被包含在ServletConfig对象中,调用ServletConfig.getServletContext方法可以返回ServletContext对象的引用。

注:由于一个web应用程序中的所有Servlet都共享同一个ServletContext对象,所以,ServletContext对象也被称为application对象(web应用程序对象)。

    可以获取当前应用的各方面信息

2.  功能

1)获取当前web应用的初始化参数

设置初始化参数:可以被所有的servlet获取,而servlet的初始化参数只用那个servlet可以获取。

ServletContext的初始化参数设置节点在<web-app>节点里面,与<servlet>节点并列,如

 <context-param>
      <param-name>driver</param-name>
      <param-value>com.mysql.jdbc.Driver</param-value>
  </context-param>
  <context-param>
      <param-name>jdbcUrl</param-name>
      <param-value>jdbc:mysql:///atguigu</param-value>
  </context-param>
  
  <!-- 配置和映射servlet -->
  <servlet>
      <servlet-name>HelloServlet</servlet-name>
      <servlet-class>day_0206.HelloServlet</servlet-class>

2)获取当前web应用的某一个文件在服务器上的绝对路径:getRealPath(String path);

Servlet学习笔记(3)——ServletContext

使用getRealPath()方法如

		String realPath = servletContext.getRealPath("/note.txt");
		System.out.println(realPath);

效果:输出

E:\JavaWorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\day_0206\note.txt


3)获取当前web应用的名称:getContextPath()

String contextPath = servletContext.getContextPath();
		System.out.println(contextPath);

输出

/day_0206


4)获取当前web应用的某一个文件对应的输入流:getResourceAsStream(String path),path的 / 相当于当前应用的根目录,如

		try {
			ClassLoader classLoader = getClass().getClassLoader();
			InputStream is = classLoader.getResourceAsStream("test.txt");
			System.out.println("1: " + is);
			
			InputStream is2 = servletContext.getResourceAsStream("/WEB-INF/classes/test.txt");//必须用根目录来定位,否则如用“servletContext.getResourceAsStream("test.txt")”则输出null
			System.out.println("2: " + is2);
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

输出结果

1: java.io.BufferedInputStream@156d9dd

2: java.io.FileInputStream@12734c2


5)和attribute相关的几个方法

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI