JSP、EL动态页面技术

JSP、EL动态页面技术

 

JSP

jsp中写java代码的方式有三种

  1.<%java代码%>——被翻译到service方法内部

  2.<&=java变量或表达式&>——翻译成service方法内部out.print();

  3.<&!java代码&>——翻译成servlet成员内容

jsp里面的注释可见范围不同

  <!--  -->——可见范围jsp源码、翻译后的servlet、页面显示html源码

  //单行注释  /*多行注释*/——可见范围jsp源码、翻译后的servlet

  <%--注释内容--%>——可见范围jsp源码

jsp中三个指令

  1.page指令  <%@page属性名1="属性值1" 属性名2="属性值2"...%>

    language:jsp脚本中可以嵌入的语言种类(默认为java,无法修改)

    pageEncoding:当前jsp文件本身编码——内部可以包含contentType

    contentType:response.setContentType(text/html;charset=UTF-8)

    session:是否jsp在翻译时自动创建session(布朗值)

    import:导包

    errorPage:当前页面出错后跳转页面到哪

    isErrorPage:处理出错页面,配合errorPage使用

  2.include指令  页面静态包含<&@include file="被包含文件地址"&>

  3.taglib指令  引入标签库<%@taglib uri="标签库地址" prefix="前缀"%>

jsp中内置对象

  out、request、response、config、session、application、page、pageContext、exception

jsp中四个域

  pageContext域:当前jsp页面范围

  request域:一次请求中

  session:一次会话中

  application域:整个web应用

EL

${EL表达式  };

EL获得pageContext域中的值:${pageScope.key};

EL获得request域中的值:${requestScope.key};

EL获得session域中的值:${sessionScope.key};

EL获得application域中的值:${applicationScope.key};

el从上到下依次从4个域中寻找,获取key值,在某个域中获取后不再寻找

<!-- 模拟域中的数据 -->
<%
    pageContext.setAttribute("name", "pageContxt");
    //存储字符串
    request.setAttribute("name", "request");
    //存储一个对象
    Users user=new Users();
    user.setId(1);
    user.setUsername("lisi");
    user.setPwd("123");
    session.setAttribute("user", user);
    //存储一个集合
    List<Users> list=new ArrayList<Users>();
    Users user1=new Users();
    user1.setId(1);
    user1.setUsername("wangwu");
    user1.setPwd("123");
    list.add(user1);
    Users user2=new Users();
    user2.setId(1);
    user2.setUsername("zhaoliu");
    user2.setPwd("123");
    list.add(user2);
    application.setAttribute("List", list);
%>
<hr>
<!-- 使用脚本取出域中的值 -->
<%=request.getAttribute("name") %>
<%Users u=(Users)session.getAttribute("user");
    out.write(u.getUsername());
%>
<hr>
<!-- 使用EL表达式取出域中的值 -->
${requestScope.name}
${sessionScope.user.username}
${applicationScope.List[0].pwd}
<hr>
<!-- 使用el表达式 全域查找(会从最小的找,底层就是findAttribute()) -->
${name }
${user.username}
${List[0].pwd}

 

posted @ 2020-08-24 16:12  企鹅22  阅读(140)  评论(0编辑  收藏  举报