JSP第二天

来源:互联网 发布:网络掉包率测试 编辑:程序博客网 时间:2024/05/20 22:02

<jsp:useBean id="today" class="java.util.Date" scope="request"></jsp:useBean>
==>
 Object o = request.getAttribute("today");
 if(o != null){
  Date today = (Date)o;
 }else{
  Date today = new java.util.Date();
  request.setAttribute("today",today);
 }
 class是先查找,找不到则创建新对象,并设置属性在范围中

<jsp:useBean id="today" type="java.util.Date" scope="request"></jsp:useBean>
==>
 Object o = request.getAttribute("today");
 if(o != null){
  Date today = (Date)o;
 }else{
  throw new Exception("在scope中找不到名为today的信息");
 }
 type是先查找,找不到则报异常
 适用于多态环境下

<jsp:setProperty property="birthday" name="p" value="<%=request.getParameter("birthday") %>"/>
==>
 String birthday = request.getParameter("birthday");
 p.setBirthday(birthday);

<jsp:setProperty property="name" name="p"/>
==>
 String name = request.getParamter("name");
 p.setName(name);
 没有设置value,则系统默认从页面中按照属性名查找同名的参数。并设值

<jsp:setProperty property="*" name="p"/>
==》
 获取p对象中的所有属性名
 把每个属性名作为参数名查找页面中的参数值
 设置对象的属性值

 ===============================================
 前提:
  页面中的控件名==实体类中的属性名
 ===============================================

<jsp:getProperty property="name" name="p"/>
==》
 p.getName();


页面的作用:
 1 接受用户输入的数据
  <form...>
 2 获取某个范围中存储的数据,展现数据给客户端
  <jsp:useBean id="" type="" scope="">

跳转路径:
 建议使用绝对路径,即以/开头
 在html和redirect跳转中,/应用名/请求...
 在forward跳转中,/请求...


jsp中遗留的java代码:
 1 获取数据的代码
  参数
  属性
  系统内部信息
 2 逻辑分支、循环语句


EL:expression language表达式语言
 语法结构:
  ${...}
 作用:
  获取数据并显示
 数据包含:
  *参数
   ${param.参数名}
   ==》
   request.getParameter("参数名");

   ${paramValues.参数名}
   获取多个同名参数值
   request.getParameterValues("参数名")
  *属性
   ${属性名}
   ==》
   pageContext.findAttribute("属性名");

   PageContext-----代表当前web应用
    getAttribute("属性名",取的范围)
     PageContext.REQUEST_SCOPE
     PageContext.SESSION_SCOPE
     PageContext.APPLICATION_SCOPE
    setAttribute("属性名","属性值",设置的范围)
     PageContext.REQUEST_SCOPE
     PageContext.SESSION_SCOPE
     PageContext.APPLICATION_SCOPE
    findAttribute("属性名")
     request==>session==>application中依次     搜索属性,找到即停止。找不到则返回null

   ${内置对象名.属性名}
   ===>
   pageContext.getAttribute("属性名",内置对象名)
  *系统内部信息
   ${pageContext.对象名....}
 el的常用内置对象
  requestScope
  sessionScope
  applicationScope

 el中支持的数据信息:
 
  <INTEGER_LITERAL>
  <FLOATING_POINT_LITERAL>
  <STRING_LITERAL>  
  "true", "false"
  "null"
  "("
  "-"
  "not"
  "!"
  "empty"
  <IDENTIFIER>
 
 el中支持的运算符:
 "}", ".", ">", "gt", "<", "lt", "==", "eq", "<=", "le", ">=", "ge", "!=", "ne", "[", "+", "-", "*", "/", "div", "%", "mod", "and", "&&", "or", "||", "?"

 
 pageContext.getRequest():ServletRequest
 request.getContextPath();
 ==>
 ${pageContext.request.contextPath}