JavaWeb-ServletContext接口简单介绍(通俗易懂)

ServletContext是什么:

简单地说就是Servlet规范中的一个接口。如果有多个Servlet来自同一个网站,那么这些Servlet可以通过网站的ServletContext实例对象进行数据共享。

ServletContext相当于一个盒子,美羊羊(OneServlet)打开盒子,可以向里面存物品(setAttribute(String s,Object o)),喜羊羊(TwoServlet)打开盒子,向里面查看物品(getAttribute(String s)),清除物品(removeAttribute(String s))…喜羊羊美羊羊必须都是羊村的(同一个网站)

生命周期:

全局作用域对象(ServletContext)生命周期贯穿网站整个运行期间。
(Http服务器启动,全局作用域对象创建。Http服务器关闭,全局作用于对象销毁)

简单示例:

代码展示

OneServlet

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class OneServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//通过请求对象向服务器索要当前网站中的ServletContext对象	
        ServletContext application = request.getServletContext();
        application.setAttribute("key",100);//存入100
        PrintWriter out = response.getWriter();
        out.println("add successfully");
    }
}

TwoServlet

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;


public class TwoServlet extends HttpServlet {


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
        ServletContext application = request.getServletContext();
        Integer money = (Integer)application.getAttribute("key");
        PrintWriter out = response.getWriter();
        out.println(money);
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>OneServlet</servlet-name>
        <servlet-class>com.xy.controller.OneServlet</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>TwoServlet</servlet-name>
        <servlet-class>com.xy.controller.TwoServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>OneServlet</servlet-name>
        <url-pattern>/one</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>TwoServlet</servlet-name>
        <url-pattern>/two</url-pattern>
    </servlet-mapping>
</web-app>

结果

在这里插入图片描述在这里插入图片描述

小结

这里ServletContext对象相当于Map——类似于键值对的方式
getServletContext()方法返回值类型是Object,上面举例中转化成Integer类型。
(不能用用Int类型,否则如果返回null就会出现空指针异常)

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值