getServletContext()方法使用指南

1、getServletContext()方法代码片段

public class ServletContext01 extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.获取对象
        ServletContext context = getServletContext();
        String hobby = context.getInitParameter("hobby");
        System.out.println(hobby);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

2、web.xml代码片段

<context-param>
    <param-name>hobby</param-name>
    <param-value>唱跳rap</param-value>
  </context-param>

代码解释:
Servlet中getServletContext()实质上可以看做一个对象,其可以使用ServletContext接口中的方法。getInitParameter()即为其中一个方法,写入参数名称"hobby",获得其value,为"唱跳rap",打印出来的结果就是"唱跳rap"。

获取ServletContext对象:

1.在javax.servlet.Filter中直接获取

ServletContext context = config.getServletContext();

2.在HttpServlet中直接获取

this.getServletContext()

3.在其他方法中,通过HttpRequest获得

request.getSession().getServletContext();

每个web工程都只有一个ServletContext对象,上述方式获得的ServletContext对象都是同一个.

ServletContext常见方法介绍:
1、getServletContext().getInitParameter(String name)
获取在项目下的web.xml中设置Context的初始化参数;

2、getServletContext().getInitParameterNames()
获取在项目下所有全局的初始化参数的名字,返回Enumeration,可以通过各个参数的名字获取其value;

注意:ServletContext接口中的获取初始化参数的方法,只能获取当前Servlet自身的初始化参数

3、getServletContext().getResource(String parh)
path必须是/开头,代表当前web应用程序的根目录。返回该URL指向的资源;

4、getServletContext().getResoutceAsStream(String parh)
path必须是/开头,代表当前web应用程序的根目录。返回该URL指向的文件的InputStream对象,用于文件上传和下载时解析xml文件;

5、getServletContext().getContextPath()
获取当前应用的虚拟访问目录,即相对路径,返回相对路径字符串;

6、getServletContext().getRealPath(String path)
path必须是/开头,代表当前web应用程序的根目录。通过该相对路径获取绝对路径,返回一个路径字符串String,如果不能进行映射返回null;

7、getServletContext().setAttribute(String name, Object value)
在ServletContext中保存了一个域属性,域属性名称为name,域属性的值为value,也可以称之为存储一个域属性,无返回值。如果多次调用该方法,并且使用相同的name,那么会覆盖上一次的值,这一特性与Map相同;

8、getServletContext().getAttribute(String name)
获取ServletContext中已存储的域属性的数据,默认返回值同存储时设置的value属性,Object,也可强制转换,如:String value = (String)servletContext.getAttribute(“xxx”),获取名为xxx的域属性的值,以String形式返回;

9、getServletContext().removeAttribute(String name)
依据域属性名称移除ServletContext中的域属性;

10、Enumeration<String> getServletContext().getAttributeNames()
获取所有域属性的名称,返回一个字符串枚举类,可以再依据域名称获取域属性的值;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值