Servlet学习笔记(3)——ServletContext

  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);

使用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: [email protected]

2: [email protected]

5)和attribute相关的几个方法

时间: 2024-10-13 18:15:56

Servlet学习笔记(3)——ServletContext的相关文章

JavaWeb 后端 &lt;二&gt; 之 Servlet 学习笔记

JavaWeb 后端 <二> 之 Servlet 学习笔记 一.Servlet概述 1.什么是Servlet Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应. 2.Servlet中的方法 public void service(ServletRequest req,ServletResponse res) throws ServletException,java.io.IOException ServletRequest req:代表着请

Servlet学习笔记(七)—— JSP概述

1.Servlet两个缺陷: ①所有HTML标签必须包在Java字符串中,使得发送HTTP响应十分繁琐: ②所有文本和HTML标签都必须进行硬编码,即使对表示层做极其微小的修改,也需要重新编译. 2.注释: (1)JSP备注:<% %>,不会发送到浏览器,不能嵌套 (2)HTML备注:<!-- -->,不被容器处理,直接发送到浏览器,用途之一是标识JSP页面.在处理带有许多JSP片段的应用程序时,开发者通过查看HTML源代码,可以轻松查出某个HTML代码部分生成了那个JSP页面.

测试servlet学习笔记

操作方法: 1.新建工程: File-->new-->Java Project-->TestServlet(工程名称)-->Finish. 2.加载servlet-api.jar类包: TestServlet(右键)-->Build Path-->Configure Build Path-->Library -->Add External JAR Selection-->(浏览在tomcat的lib目录下找到servlet-api.jar选中后点击打开

SERVLET 学习笔记

SERVLET 学习笔记 一.Servlet基本定义 Servlet是服务器端上面运行的一段小的java程序,一个servlet就是一个简答的java类.通常servlet都是通过请求和返回的模式来被访问的,客户端通过resuest请求,servlet则通过response来返回需要的内容. 二.Tomcat容器等级 Tomcat容器等级分为四个等级,由内向外分别是:context容器àSERVLET容器àHOST(主机)容器àENGINE(引擎)容器.其中,CONTEXT容器,一个CONTEX

Servlet学习笔记(八)—— 自定义过滤器的编写改进:自定义实现FilterChain

笔记六中实现了三种过滤器:字符编码过滤.登录权限过滤.敏感词过滤,但是有个缺陷就是,限定了过滤顺序,而不能实现先进行request过滤,最后response过滤,并且中间几项过滤的顺序不能动态改变.所以这里做个改进,实现一个过滤顺序的FilterChain. 多个Filter的执行顺序在这篇博文中得到很仔细的讲解,总结一点,多个过滤器的执行顺序是根据web.xml中不同<filter-mapping>的顺序来先后执行的,比如: <?xml version="1.0"

Servlet学习笔记(六)—— 自定义过滤器的编写

Boss今天让我写一个类似BBS留言板的过滤器,要求对字符编码.登录权限.敏感词进行过滤操作. 总体分两模块: 一.过滤器 //Filter.java package lewa; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public interface Filter { public void init(); public void doFilter(ServletRequest reu

重温Servlet学习笔记--servletContext对象

一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对象在tomcat启动时就创建,在tomcat关闭时才被销毁.有时候我们也把这个对象叫做application. ServletContext对象的作用就是在整个web应用的动态资源之间共享数据,比如在AServlet中向ServletContext中保存一个数据,然后在Bservelt中获取这个数据

Other - 01 - Servlet学习笔记 - 概览

Servlet规范 本文第一段是 copy 过来的,请各位看官谅解,顺序结构参照 Servlet 3.1 规范. 什么是 Servlet Servlet 是基于 Java 技术的 web 组件,容器托管的,用于生成动态内容.像其他基于 Java 的组件技术一样,Servlet 也是基于平台无关的 Java 类格式,被编译为平台无关的字节码,可以被基于 Java 技术的 web server 动态加载并运行.容器,有时候也叫做 servlet 引擎,是 web server 为支持 servlet

基于Tomcat的Servlet学习笔记

看的<深入分析Java技术内幕> -------------Servlet------------- 1.大体介绍:JavaWeb如何基于Servlet工作,Servlet容器工作原理(Tomcat为例),Web工程在Servlet容器中如何启动,Servlet容器如何解析web.xml定义的Servlet,用户请求如何分配给指定的Servlet,Servlet容器如何管理Servlet生命周期.2.Servlet与Servlet容器的关系:类似枪和子弹.为了解耦,通过标准化接口相互协作.3.