zoukankan      html  css  js  c++  java
  • Servlet之ServletContext获取web上下文路径、全局参数、和Attribute(域)

    1)获取web上下文路径

    public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //获取ServletContext对象
            //this.getServletConfig().getServletContext();
            //等同于下面一句,因为创建getServletContext必须要通过getServletConfig对象
            ServletContext context = this.getServletContext();
            
            //获取web的上下文路径,
            String path = context.getContextPath();
            
            //请求重定向,这样的好处可以让获取的路径更加灵活。不用考虑项目名是否发生了变化。
            response.sendRedirect(context.getContextPath()+"/index.jsp");
        }
    }


    2)获取全局参数

    public class ServletContextDemo1 extends HttpServlet {
        /**
         * 获取全局参数
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
             ServletContext context = this.getServletContext();
             //根据参数名获取参数值
             System.out.println(context.getInitParameter("MMM"));
             //获取所有的参数名,返回枚举类型
             Enumeration<String> emn = context.getInitParameterNames();
             while(emn.hasMoreElements()){
                 String paramName = emn.nextElement();
                 String paramValue = context.getInitParameter(paramName);
                 System.out.println(paramName+"="+paramValue);
             }
        }
     
    }

    3)和域相关

    域:域对象在不同的资源之间来共享数据,保存数据,获取数据。

    这个我使用了三个Servlet来说明这个问题,ScopeDemo1用于获取Attribute,ScopeDemo2用于设置Attribute,ScopeDemo3用于删除Attribute。

    保存共享数据:

    public class ScopeDemo2 extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //首先创建ServletContext对象
        ServletContext context =     this.getServletContext();
        //保存共享数据
        context.setAttribute("name", "zhangsan");//第一个参数为字符串,第二个是Object(也就是任意类型)
        System.out.println("设置成功");
        
        }
     
    }

    获取恭喜数据:

    public class ScopeDemo1 extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //创建ServletContext对象
            ServletContext context = this.getServletContext();
            //获取共享数据内容
            String name = (String)context.getAttribute("nnn");
            System.out.println(name);
        }
    }


    删除共享数据:

    public class ScopeDemo3 extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            //获取ServletContext对象
            ServletContext context =     this.getServletContext();
            //删除共享数据
            context.removeAttribute("name");
            System.out.println("删除成功");        
        }
    }
  • 相关阅读:
    逻辑智力题【更新中】
    每天进步一点点_抽奖程序
    GDC2016【For Honor-荣耀战魂】的次世代动画技术
    GDC2016【彩虹六号:围攻 】使丰富的“突破”成为可能的破坏系统
    GDC2016 【巫师3 狂猎】的游戏事件工作流
    GDC 2016 神秘海域4中使用Substance制作Texture
    GDC2016【全境封锁(Tom Clancy's The Division)】对为何对应Eye Tracked System,以及各种优点的演讲报告
    【FFXV】中物理模拟的结构以及游戏业界的乐趣
    龙珠 超宇宙 [Dragon Ball Xenoverse]
    如龙0
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/9309902.html
Copyright © 2011-2022 走看看