JSP基础复习(二)

PageContext

本身也是一个域对象:它可以操作其它三个域对象(request session application)的数据
void setAttribute(String name,Object o);
Object getAttribute(String name);
void removeAttribute(String name);

操作其它域对象的方法
void setAttribute(String name,Object o,int Scope);
Object getAttribute(String name,int Scope);
void removeAttribute(String name,int Scope);

scpoe的值:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE

代码例子:
1.jsp: (上下代码相互等价)

//pageContext.setAttribute("a", "aa");
pageContext.setAttribute("a", "aa",PageContext.PAGE_SCOPE);

//request.setAttribute("a", "request");
pageContext.setAttribute("a", "request",PageContext.REQUEST_SCOPE);

//session.setAttribute("a", "session");
pageContext.setAttribute("a", "session", PageContext.SESSION_SCOPE);

//request.getRequestDispatcher("/2.jsp").forward(request, response);
//response.sendRedirect(request.getContextPath()+"/2.jsp");
pageContext.forward("/2.jsp");

2.jsp:

<%=pageContext.findAttribute("a") %>

findAttribute(String name); 自动从page request session application依次查找,找到了就取值,结束查找。

四大域对象

  1. PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。
  2. ServletRequest: request 存放的数据在一次请求(转发)内有效。使用非常多。
  3. HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。
  4. ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。

EL表达式

  1. EL概述和基本语法
    • EL表达式:expression language 表达式语言
    • 要简化jsp中java代码开发。
    • 它不是一种开发语言,是jsp中获取数据的一种规范
  2. EL的具体功能
    • 获取数据
      • EL表达式只能获取存在4个作用域中的数据
        • ${u} 原理: pageContext.findAttribute(“u”);
      • EL获取对于null这样的数据,在页面中表现为空字符串
        • url?name=tom ${param.name}
      • 点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。
        • ${u.name} == u.getName()方法
      • []运算符:点能做的,它也能做; 它能做的,点不一定能做
    • 运算
      • empty :判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true
      • 三元运算符
        • ${empty list ? "你还没有买东西" : "你买的东西有:" }
        • <input type=“radio” name=“sex” value=“m” ${s==0 ? “checked=‘checked’”:"" }/>男
        • <input type=“radio” name=“sex” value=“f” ${s==1 ? “checked=‘checked’”:"" }/>女
      • 隐式对象JSP基础复习(二)
<form action="${pageContext.request.contextPath }/success.jsp" method="post">
	用户名:<input type="text" name="userName" /><br /> 
	密码:<input type="password" name="pwd" /><br /> <input type="submit" value="登录" /><br />
</form>
上一篇:PDO::setAttribute


下一篇:vue.js 自定义指令(拖拽、拖动、移动) 指令 v-drag