ServletContext

ServletContext:

    1)是服务器端的一块公共存储区域,可供所有客户存取数据(全局区域);

        模型图:


    2)一个web应用程序只有一个ServletContext;

    3)在Servlet中,获取ServletContext:(2种方法)

ServletContext servletContext = this.getServletContext();
ServletContext servletContext1 = req.getSession().getServletContext();

    4)设值/取值和删除:

servletContext.setAttribute("count", 1); //设值
servletContext.getAttribute("count"); //取值
servletContext.removeAttribute("count"); //删除

    5)ServletContext用法:

        a、可以读取全局配置文件:

        配置文件:

<context-param> <!-- 配置全局变量 所有ServletContext都可以访问 -->
    <param-name>name</param-name>
    <param-value>char</param-value>
</context-param>

        Servlet中代码:

String value = this.getServletContext().getInitParameter("name");
        b、读取资源文件:

            资源文件放于根目录下,和WEB-INF同级:

InputStream is = this.getServletContext().getResourceAsStream("db.properties");
Properties pros = new Properties();
pros.load(is);

            如果资源文件在src下:

InputStream is = ContextServlet.class.getClassLoader().getResourceAsStream("db.properties");
Properties pros = new Properties();
pros.load(is);

        c、作为全局变量的应用:网站计数器/网络聊天室;

    6)servlet局部变量:

<servlet>
    <servlet-name>configServlet</servlet-name>
    <servlet-class>servlet.ConfigServlet</servlet-class>
  	<!-- 局部变量设置 -->
  	<init-param>
  		<param-name>name</param-name>
  		<param-value>char</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>configServlet</servlet-name>
    <url-pattern>/config</url-pattern>
  </servlet-mapping>

Servlet代码:

public class ConfigServlet extends HttpServlet{
	@Override
	public void init(ServletConfig config) throws ServletException {
		String value = config.getInitParameter("name");
		System.out.println(value);
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		this.doGet(req, resp);
	}
}

    7)ServletContext生命周期:和服务器一致,即服务器启动时自动创建该对象,服务器关闭后自动销毁该对象;

    8)三种存储数据的方式:request/session/ServletContext:

        存储时间长短:ServletContext > session(会话时间范围内) > request(请求时间范围内)

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值