JspAndEl表达式

JSP

JSP指令

1.用于配置jsp页面的和导入资源文件
2.格式:<%@ 指令名称 属性名=xxx ,%>

3.分类:

1. page 配置jsp页面的
    1. contentType:设置相应的MIME类型和响应类型
    2. language:语言类型
    3. buffer :缓冲区 默认是8kb
    4. import:导包
    5. errorPage:错误页面:当前页面发生异常后会跳转到指定的错误页面
    6.isErrorPage:是否是错误页面 true可是使用内置对象Exception 对象默认是false
2. include :页面包含的 导入页面的资源文件
    1. 比如说页面的logo和导航栏任意一个jsp页面都是可以共用的 就可以使用include标签 包含
3. taglib:导入资源的 
    1. 用來导入标签库使用taglib引入
    2. 

Jsp注释

1. html注释:<!---->
2. 代码注释:<% -- --%>

Jsp内置对象 #(在jsp中不需要创建对象直接能够使用的对象)

1. pageContext
    1. 真实类型:PageContext
    2. 范围:当前页面共享数据
    3. 他可以用来获取其他的八个内置对象
2. request  
    1. 一次请求访问的多个资源(转发)
3. session
    1. 一次会话的多个请求之间共享数据
4. application
    1. 真实对象:ServletContext
    2. 所有的用户共享数据
5. response
    1. HttpServletResponse
6. page
    1. 当前的servlet对象 this
7. config
8. exception:(只有在isErrorPage为true的时候 才会有这个对象)
    1.  1. 真实类型: Throwable
9. out
    1. jspWriter

EL表达式 #(使用el表达式和jstl标签 替换jsp中的java代码 )

  1. 语法:${表达式}
  2. 运算符
  3. 使用el表达式获取域对象中的值(request application session pageContext)
  4. 语法:${域名城.键名}
  5. pageScope requestScope sessionScope applicationScope
  6. 用法:${requestScope.name}
  7. 用法:${键名} 依次从最小的域对象开始找到为止
  8. 8.

8. ` <h1>运算符号</h1>
  ${3>4}
  <%--算数运算符号 比较运算符 逻辑预算符--%>
  <%System.out.println("这是一个分割符号");%>
  <% request.setAttribute("name","nihaoJava");
     session.setAttribute("age",11);
    pageContext.setAttribute("sex",0);
    application.setAttribute("school","beijing");
  %>
  <h1> 使用el表达式</h1>
  ${sessionScope.age}</br>
  ${requestScope.name}</br>
  ${sex}</br>
  ${school}

`

EL表达式获取对象的值


`<%@ page contentType="text/html;charset=UTF-8" language="java" import="com.liangxin.domain.user" %>
<%@ page import="java.util.Date" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<% user user = new user();
    user.setAge(13);
    user.setName("javaEE");
    user.setBirthday(new Date());
    request.setAttribute("user", user);%>
<h1>使用El表达式读取对象的值</h1>
${requestScope.user}<br>
${requestScope.user.name}<br>
${requestScope.user.age}<br>
${user.birthday}<br>
${requestScoper.user.birth}<br>
</body>
</html>`

使用EL表达式获取集合中的值

----------
    `<%@ page contentType="text/html;charset=UTF-8" language="java" import="com.liangxin.domain.user" %>
<%@ page import="java.util.Date" %>
<%@ page import="javax.management.ListenerNotFoundException" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    List list= new ArrayList() ;
    list.add("aaa");
    list.add("bbb");
    list.add(new user("java",13,new Date()));
    request.setAttribute("list",list);
%>

<%
    HashMap map = new HashMap();
    map.put("sname","javase");
    map.put("score",88);
    map.put("suser",new user("python",66,new Date()));
    request.setAttribute("map",map);

%>
<h1> 使用el表达式读取list集合中value</h1>
${requestScope.list[0]}<br>
${list[1]}<br>
${list[2].name}<br>
<h1>使用El表达式读取map集合中的value</h1>
${map.sname}<br>
${requestScope.map.suser.name}<br>
${requestScope.map.suser.birthday}<br>
</body>
</html>

`

El表达式中空运算符合隐式对象


`<h1>运算符empty</h1>
<% String str= "liang";
        request.setAttribute("string",str);
%>
<%--empty运算符用来判断字符串,数组,集合是否是null并且长度是否大于零--%>
${empty str}`

el中的隐式对象十一个


  1. 获取其他的jsp中八个对象
  2. ${pageContext.request.contextPath}动态的获取虚拟路径的问题

JSTL #(JavaServer Page Tag Library)jsp标准标签库

  1. 常用的jstl的标签if choose foreach
  2. 2.

jstl中if标签的使用

1. `<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>jstlif标签的使用</title>
</head>
<body>
<% List list = new ArrayList();
    list.add("java");
    list.add("python");
    request.setAttribute("list", list);
/*
* <c:if test="true">
    test是必须的属性, 接受boolean类型的表达式 如果表达式为true 则会显示if标签体中的内容
    这里面没有else标签
</c:if>
* */
%>
<c:if test="true">
    <h1> 如果test中的条件成立 标签内容就会输出</h1>
</c:if>
<c:if test="${ not empty requestScope.list}">
    <h1> request域对象中不为空我我就会输出</h1>
</c:if>
</body>
</html>`

1.jstl中choose标签的使用

`<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>jstl中choose标签的使用</title>
</head>
<body>
<%--完成数字编号 对应星期几的案例
使用choose去取出數字 相当一 switch
使用when标签做判断条件  相当于case
使用otherwise 做其他条件的判断 相当于default
--%>
<%
    request.setAttribute("num", 3);
%>
<c:choose>
    <c:when test="${requestScope.num==1}">星期一</c:when>
    <c:when test="${requestScope.num==2}">星期二</c:when>
    <c:when test="${requestScope.num==3}">星期三</c:when>
    <c:when test="${requestScope.num==4}">星期四</c:when>
    <c:when test="${requestScope.num==5}">星期五</c:when>
    <c:when test="${requestScope.num==6}">星期六</c:when>
    <c:when test="${requestScope.num==7}"> 星期日</c:when>
    <c:otherwise>内容不符合要求</c:otherwise>
</c:choose>
</body>
</html>`

jstl中foreach标签的使用


`<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>jstl中for标签的使用 相当于for循环</title>
</head>
<body>
<%--使用for循环 1.完成重复的操作 2. 遍历容器--%>
<%-- 一下代码相当于 for(i=1; i<=10 ;i++){
System.out.pirintln(i);
}--%>
<%--varStatus 代表的是循环状态 item 相当于容器中临时变量--%>
<c:forEach begin="1" end="10" var="i" step="1">
    ${i} <br>
</c:forEach>
<%--遍历容器--%>
<hr>
<%
    List list = new ArrayList();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    request.setAttribute("list",list);
%>
<%--一下代码相当于 foreach(String str : list){
System.out.println(str)}--%>
<c:forEach items="${list}" varStatus="s" var="str">
    ${s.index} ${s.count} ${str}<br>
</c:forEach>
</body>
</html>

demo练习 ### `

`<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="com.liangxin.domain.user" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>练习将request域对象中的list集合输出到页面的表格中使用jstl和el表达式完成</title>
</head>
<body>
<%--准备数据--%>
<% List list = new ArrayList();
    list.add(new user("python", 111, new Date()));
    list.add(new user("java", 122, new Date()));
    list.add(new user("javaScript", 111, new Date()));
    list.add(new user("C++", 4444, new Date()));
    request.setAttribute("list", list);
%>

<table border="1px" align="center" width="500px">
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>生日</th>
    </tr>
    <c:forEach items="${requestScope.list}" var="user" varStatus="s">
        <tr>
            <td>${s.count}</td>
            <td>${user.name}</td>
            <td>${user.age}</td>
            <td>${user.birthday}</td>
        </tr>
    </c:forEach>

</table>
>
</body>
</html>
`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值