Jsp 中的getServletContext全局数据共享

发布于:2024-04-18 ⋅ 阅读:(60) ⋅ 点赞:(0)

servletContext作用于不同用户之上

1. 一个用户将数据保存到了servletContext中,

// getcontext的servlet程序
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext context = this.getServletContext();  //通过全局变量servletcontext 拿到另一个servlet 不同url中username
        String username = (String) context.getAttribute("username");
        resp.setContentType("text/html");  // 这里set浏览器的数据格式后可以拿到其username ,非则会null
        resp.setCharacterEncoding("utf-8");   // 这里是修改数据格式适应浏览器编码,使得文本内容可以正常显示
        System.out.println("岗位"+username);  // 后台显示打印
        resp.getWriter().println("岗位"+username);  // 浏览器页面显示

通过不同的servlet来实现彼此之间的数据共享

每一个web程序都会创建一个对应的servletContext 对象, 它表示当前的web应用,做到了共享数据, 在一个servlet中保存数据, 在另一个servlet 中拿数据

// setcontext的servlet的java程序
@Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        resp.setCharacterEncoding("utf-8");

        ServletContext context = this.getServletContext();
        String username = "数据开发";
        context.setAttribute("username",username); // 将数据保存到servletcontext中,名字为username , 值为username

写完servlet程序后去注册servlet

web.xml  对servlet 的注册配置以及servlet——mapping 配置
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.rong.servlet.servletHello</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>getc</servlet-name>
        <servlet-class>com.rong.servlet.dogetc</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>getc</servlet-name>
        <url-pattern>/getc</url-pattern>
    </servlet-mapping>

 eg: 如何servlet 没有先保存数据就去get username数据是获取不到的

eg :先去保存数据,然后在去拿数据即可

上述中的username保存的样式是数据开发的str 

这样就实现了servletContext 的数据共享在不同的servlet 


网站公告

今日签到

点亮在社区的每一天
去签到