ServletContext接口

ServletContext

Servlet,ServletConfig,ServletContext 关系:

  • 一个servlet对应一个ServletConfig。
  • 所有的servle共享一个ServletContext 对象。

ServletContext 是什么?什么时候创建?什么时候销毁?创建几个?

  • ServletContext 被翻译为servlet上下文。
  • 一个webAPP只有一个ServletContext 对象。
  • ServletContext 在服务器启动阶段实例化。
  • ServletContext 在服务器关闭的时候销毁。
  • 用户若想共享同一数据,可以放到ServletContext 里面。(修改数据存在线程安全问题)
  • 跨用户传递数据。

ServletContext 常用方法:

  1. String getRealPath();
  2. String getInitParameter(String var1);
  3. Enumeration getInitParameterNames();
  4. Object getAttribute(String var1); 向ServletContext 获取数据
  5. void setAttribute(String var1, Object var2);向ServletContext 添加数据
  6. void removeAttribute(String var1); 向ServletContext 删除数据

代码示例:

这里写图片描述
这里写图片描述

package test1;

import javax.servlet.*;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.jsp.tagext.VariableInfo;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
/**
 * Created by hasee
 * on 2017/4/9.
 */
@WebServlet(name ="cymone",urlPatterns = "/a")
public class Servletcym implements Servlet {
    private ServletConfig servletConfig;

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        //目的:可以在service中使用servletConfig
        this.servletConfig = servletConfig;
    }
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        servletResponse.setContentType("text/html; Charset = UTF-8");
        PrintWriter writer = servletResponse.getWriter();
        //获取ServletConfig
        ServletConfig config = getServletConfig();
        ServletContext application = config.getServletContext();
        Enumeration<String> names = application.getInitParameterNames();
        while (names.hasMoreElements()) {
            String name = names.nextElement();
            String value = application.getInitParameter(name);
            writer.print(name+"="+value);//name2=今天星期三个
            writer.print("</br>");       //name1=今天星wwww期三个
        }
        //获取绝对路径,当前web/web-INF目录下
        String path1 = application.getRealPath("/index.jsp");
        String path2 = application.getRealPath("/souces/ff.jsp");
        writer.print(path1);     //E:\workspace\Demo\out\artifacts\web_war_exploded\index.jsp
        writer.print("</br>");
        writer.print(path2);    //E:\workspace\Demo\out\artifacts\web_war_exploded\souces\ff.jsp
    }

    @Override
    public ServletConfig getServletConfig() {
        //让子类可以使用servletConfig,
        // 通过getServletConfig方法获取servletConfig对象
        return servletConfig;
    }

    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值