• 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("删除成功");        
        }
    }
  • 相关阅读:
    点击添加,上面div获取到值
    解决ios浏览器视频无法播放问题
    jquery中使用$(#form).submit()提交表单无效原因分析及解决Script
    html页面,css引用外部字体
    当页面信息填写不完整,点击提交后,直接跳转到未填写位置
    layui日历控件添加js校验后 页面点击提交后,点击日历插件不起作用
    jquery在线引用
    左侧导航高度,自适应右侧内容高度
    Mysql
    Linux文件编辑器,链接,及常用系统命令
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/9309902.html
Copyright © 2020-2023  润新知