1.<%! %>和<% %>声明变量的区别,<%! %>声明变量后编译为Servlet.class 会变成java类中的全局变量,而<% %>声明的变量会成为方法中的局部变量。
2.EL表达式中,{requestScope.XXX} 拿到的值是request.setAttribute("name","value"),而value是对象,如果想拿到request.getParameter中的字符串,必须使用{param.xxx}
的形式,而且拿到的值只能为字符串,不可存放对象。如果需要拿到requestScope中的list,可以使用{requestScope.list[i].xxx}来拿到list中具体某个对象的属性。
3.el表达式中的requsetScope和request并不等价,requset的范围比requestScope大得多,requestScope只是jsp为了方便操作attribute设立的内置对象,只是request的一个小小的缩影。
4.目前EL表达式最常用的一个EL表达式为:
${pageContext.request.contextPath}拿到当前项目的根路径
5.EL表达式中可以使用运算操作,例子如下:
{1+1}
{1==1?true:false}
{empty ""}