如题
EL表达式仅写共享数据名时的查找优先级,
优先级顺序为pageContext,requestScope,sessionScope再是applicationScope
因为某些原因,仅写出后面三个的相关优先级示例代码
servlet代码
req.setAttribute("key1", "req输出");
ServletContext servletContext = req.getServletContext();
servletContext.setAttribute("key1", "输出");
HttpSession httpSession = req.getSession();
httpSession.setAttribute("key1", "Session输出");
req.getRequestDispatcher("/index.jsp").forward(req, resp);
jsp代码
输出1:${key1}<br>
输出2:${applicationScope.key1}<br>
输出3:${sessionScope.key1}<br>
输出4:${requestScope.key1}<br>
结果
servlet代码改为
req.setAttribute("key2", "req输出");
ServletContext servletContext = req.getServletContext();
servletContext.setAttribute("key1", "输出");
HttpSession httpSession = req.getSession();
httpSession.setAttribute("key1", "Session输出");
req.getRequestDispatcher("/index.jsp").forward(req, resp);
jsp代码改为
输出1:${key1}<br>
输出2:${applicationScope.key1}<br>
输出3:${sessionScope.key1}<br>
输出4:${requestScope.key2}<br>
输出
这种方法虽然方便,但编程时应该避免这样的写法,会降低程序运行速度且比较难以在真的有必要改源代码时定位写入数据的位置,毕竟这种写法是为从pageContext读取数据而发明的
结果仅为自己测试时产生,可能有错误
本文用于备忘和分享