按照平时如果我们想在jsp当中使用servlet处理后的对象 我们需要强制类型转换,处理null,并且有代码掺杂的问题
${域对象.域对象的属性.属性.属性.级联属性}
点操作符 ${requestScope.student.address.schoolAddress}
中括号操作符 ${requestScope.student.[“address”][‘schoolAddress’]} 双引号单引号都可以 区别: 点操作符使用更方便(敲起来好敲) 中括号的功能更强大 1⃣️可以包含特殊字符(. 、-) 2⃣️可以获取变量值 比如String name =“haha” ; $[request[name]] 这里不用加引号 3⃣️可以获取数组元素 $[requestScope.array[0]] 4⃣️都可以获取map属性 Map<String,Object> map = New HashMap<>(); map.put(“cn”,“中国”); map.put(“us”,“美国”) 放到request里面
$[requestScope.map.cn] $[requestScope.map.us]${3>2} ${3 gt 2} ${3>2 || 3<2} ${3>2 || 3<2}
empty运算符:判断一个值null、不存在 String s = null; ${empty requestScope[s]} //输出为true s = “haha”; ${empty requestScope[s]} //输出为false
(不需要new就能使用的对象、自带的对象)
作用域访问对象:pageScope, requestScope, sessionScope, applicationScope,如果不指定域对象,则默认会根据从小到大的顺序,依次取值 比如我直接写$[student],就会先从pageScope中找,然后找requestScope,以此类推 pageScope < requestScope < sessionScope < applicationScope参数访问对象: 1⃣️获取表单数据 2⃣️超链接中传的值 jsp?a=b&c=d 3⃣️地址栏中的值 jsp?a=b&c=d 都可以通过以下的方式来获得request.getParameter("name"); ${params}//代替上面的java代码 request.getParameterValues("name"); ${paramValues}//代替上面的java代码 jsp隐式对象 像session,page,servletConfig都可以通过pageContent来获得 原本:pageContext.getSession() => ${pageContext.session} 其他都是类似的