作用:动态读取JavaBean、隐式对象;动态算术运算
案例1,后端放数据,jsp中取出来,如下:Servlet中写:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
HttpSession secssion = request.getSession();//获取secssion
secssion.setAttribute("name", "toy");//存放name值toy
secssion.setAttribute("sex", "男");//存放sex值男
request.getRequestDispatcher("index.jsp").forward(request, response);//转发到index页面
}
jsp中写:
后端数据姓名:${sessionScope.name}
后端数据性别:${sex}
案例2,secssion.setAttribute与request.setAttribute区别,如下:
Servlet中写:
HttpSession secssion = request.getSession();//获取secssion
secssion.setAttribute("name", "toy");//存放name值toy
request.setAttribute("sex", "男");//存放sex值男
request.getRequestDispatcher("index.jsp").forward(request, response);//转发到index页面
jsp中写:
后端数据姓名:${sessionScope.name}
后端数据姓名:${name}
后端数据姓名:<%=session.getAttribute("name") %>
后端数据性别:${sessionScope.sex}
后端数据性别:${requestScope.sex}
后端数据性别:${sex}
结论:
存取的位置对应,才能取出值。
不加sessionScope或requestScope时,系统会自动匹配,是用的最多的形式。
案例3,探讨查找机制,如下:Servlet中写:
HttpSession secssion = request.getSession();//获取secssion
secssion.setAttribute("name", "secssion");//
request.setAttribute("name", "request");//
request.getRequestDispatcher("index1.jsp").forward(request, response);
jsp中写:
sessionScope名:${sessionScope.name}
requestScope名:${requestScope.name}
简拼-----------名:${name}
结论:
1.简写取值优先级,从小范围到大范围检索,page,request,session,application,找到为止。
2.同时使用了request和session时,若取session中的值,必须用完全形式,而非简写。
案例4,运算-关系-逻辑,如下:Servlet与案例3一致,jsp中写:
后端num的数值:${num}
后端num+1的数值:${num+1}
后端num*2的数值:${num*2}
后端num是否等于2:${num==2}
后端num是否大于5:${num>5}
后端num是否大于3或小于2:${num>3||num<2}
后端num是否大于2且大于3:${num>2&&num>3}



