返回列表 发布新帖

day24-服务器端渲染技术02

IP属地:四川省成都市
222 0
发表于 2023-5-29 01:22:59 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
charset=UTF-8″ language=”java” %>h3>%=request.getAttribute(“name”)%>/h3&gt“&lt:EL表达式全称:Expression Language,是表达式语言

EL表达式主要是代替jsp页面的表达式脚本

EL表达式输出数据时,比jsp的表达式脚本简洁

EL表达式基本语法:${key}

底层其实走的还是jsp表达式脚本,可以理解为就是一个语法糖

11.2EL表达式快速入门
el_qs.jsp:


    el表达式的快速入门

el表达式的快速入门

1.jsp 表达式脚本
名字:
2.el 表达式
名字:${name}


       

                               
登录/注册后可看大图

       
注意:

EL表达式在输出null时,输出的是空串””
jsp脚本在输出null时,输出的是 “null” 字符串

       

                               
登录/注册后可看大图

       
11.3EL常用输出形式
EL表达式常用输出Bean的普通属性,数组属性,List集合属性和map集合属性

应用实例

book.java:
package com.li.entity;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public class Book {
    private String name;//书名
    private String[] writer;//作者
    private List reader;//读者
    private Map topics;//评价
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String[] getWriter() {
        return writer;
    }
    public void setWriter(String[] writer) {
        this.writer = writer;
    }
    public List getReader() {
        return reader;
    }
    public void setReader(List reader) {
        this.reader = reader;
    }
    public Map getTopics() {
        return topics;
    }
    public void setTopics(Map topics) {
        this.topics = topics;
    }
    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", writer=" + Arrays.toString(writer) +
                ", reader=" + reader +
                ", topics=" + topics +
                '}';
    }
}

el_output.jsp:




    el表达式输出数据演示

el表达式输出数据演示
readers = new ArrayList();
    readers.add("小李");
    readers.add("小王");
    book.setReader(readers);
    //创建topics
    HashMap topics = new HashMap();
    topics.put("topic1", "这是我看过的最好的动画片");
    topics.put("topic2", "不错的电影~~");
    book.setTopics(topics);
    //把book放入到request域对象中
    request.setAttribute("bookKey", book);
%>
book对象:${bookKey}

book.name=${bookKey.name}

book.writer=${bookKey.writer}

第一个作者book.writer[0]=${bookKey.writer[0]}

book.readers=${bookKey.reader}

第二个读者book.readers[1]=${bookKey.reader[1]}

book.topics=${bookKey.topics}

第一个评价=${bookKey.topics.get("topic1")}

第一个评价=${bookKey.topics["topic1"]}


       

                               
登录/注册后可看大图

       
11.4EL运算操作符
EL的运算操作符和java基础的操作符在概念和用法上都是一样的,只是形式上有些变化。

基本语法:${运算表达式}

关系运算

       

                               
登录/注册后可看大图

       

逻辑运算

       

                               
登录/注册后可看大图

       

算术运算

       

                               
登录/注册后可看大图

       


应用实例


    el运算符

el运算符
num1+num2=${num1+num2}
num1>num2?=${num1>num2}


       

                               
登录/注册后可看大图

       
11.5EL的empty运算
empty运算可以判断一个数是否为空,如果为空,返回true,否则返回false
以下几种情况为空:
值为null
值为空串时
值是Object类型数据,但长度为零时
list集合,元素个数为零时
map集合,元素个数为零时


应用实例



    el empty的运算

());//为空的list集合
    request.setAttribute("k5", new HashMap());//为空的map集合
%>
k1是否为空=${empty k1}
k2是否为空=${empty k2}
k3是否为空=${empty k3}
k4是否为空=${empty k4}
k5是否为空=${empty k5}


       

                               
登录/注册后可看大图

       
11.6EL的三元运算
表达式1?表达式2:表达式3

如果表达式1的值为真,返回表达式2的值,反之返回表达式3的值

       

                               
登录/注册后可看大图

       

11.7EL的11个隐含/内置对象
       

                               
登录/注册后可看大图

       
下面以pageScope,requestScope,sessionScope,applicationScope四个常用的隐含对象为例子演示。

演示el常用的四个隐含对象(域对象)


    演示el的四个常用的隐含对象(域对象)

演示el的四个常用的隐含对象(域对象)
1.jsp脚本方式获取
2.el方式来获取域对象的数据
request域中的k1=${requestScope.k1}
pageContext域中的k1=${pageScope.k1}
session域中的k1=${sessionScope.k1}
application域中的k1=${applicationScope.k1}


       

                               
登录/注册后可看大图

       
11.7.1pageContext对象的使用

我们可以通过pageContext.request.xxx来获取和http协议相关的信息:
通过request对象来获取和HTTP协议相关的数据:

request.getScheme() 它可以获取请求的协议
request.getServerName() 获取请求的服务器 ip 或域名
request.getServerPort() 获取请求的服务器端口号
getContextPath() 获取当前工程路径
request.getMethod() 获取请求的方式(GET 或 POST)
request.getRemoteHost() 获取客户端的 ip 地址
session.getId() 获取会话的唯一标识


例子

       

                               
登录/注册后可看大图

       


    pageContext 对象的使用

pageContext 对象的使用

协议: ${ pageContext.request.scheme }
服务器 ip:${ pageContext.request.serverName }
服务器端口:${ pageContext.request.serverPort }
工程路径:${ pageContext.request.contextPath }
请求方法:${ pageContext.request.method }
客户端 ip 地址:${ pageContext.request.remoteHost }
会话 id :${ pageContext.session.id }
使用 jsp 表达式脚本获取如上信息
ip 地址:
会话 id :
...
使用 el 表达式形式获取信息-简化写法
ip 地址: ${req.remoteHost}
获取请求方法: ${req.method}
客户端 ip 地址:${ req.remoteHost }
...


       

                               
登录/注册后可看大图

       
12.JSTL 12.1JSTL介绍
JSTL(Java server pages standarded tag library,即JSP标准标签库。
EL表达式是为了替换jsp中的表达式脚本,JSTL是为了替换代码脚本,这样可以使jsp页面变得更加简洁。

JSTL由五个标签库组成:

       

                               
登录/注册后可看大图

       

使用JSTL,需要导入相关的jar包:

下载连接:https://tomcat.apache.org/download-taglibs.cgi

       

                               
登录/注册后可看大图

       

12.2快速入门
将两个jar包直接复制粘贴到web应用程序的WEB-INF\lib目录下,add as library

       

                               
登录/注册后可看大图

       

在jsp页面的引入标签,要放在文件第一行

       

                               
登录/注册后可看大图

       

导入jstl jar包后,要重新发布web工程,否则不识别jstl


    jstl的快速入门

jstl的快速入门
2){
        out.println("xxx")
    }
--%>
2}">
    10>2成立~~~


       

                               
登录/注册后可看大图

       
12.3core核心库 12.3.1标签
例子:
set标签可以往域中保存数据

等价于 域对象.setAttribute(key,value);
scope 属性设置保存到哪个域
page表示PageContext域(默认值)
request表示Request域
session表示Session域
application表示ServletContext域

var 属性设置 key 是什么
value 属性设置值

例子



    c:set标签的使用

c:set标签的使用


c:set-name的值:${requestScope.name}


       

                               
登录/注册后可看大图

       
12.3.2标签
例子:2″>hello


if标签用来做if判断
test属性表示判断的条件(用EL表达式输出)

例子



    c:if标签使用

c:if标签使用

num2}">
    ${num1}>${num2}


       

                               
登录/注册后可看大图

       
12.3.3标签
介绍:多路判断。跟switch…case…default非常接近

例子



    c:choose标签的使用


request-> session->application
  --%>
k1=${k1}
c:choose标签的使用
     80}">
        ${scope}-成绩优秀!
   
     60}">
        ${scope}-成绩及格!
   
   
        ${scope}-成绩不及格,继续努力!
   


       

                               
登录/注册后可看大图

       
12.3.4标签
介绍:c:forEach标签用来遍历输出,主要有4种形式

普通遍历输出i到j
遍历数组
遍历Map
遍历List

例子




    c:forEach标签

c:forEach标签
第一种遍历方式:从i到j

   
   
        
  • 排名=${i}
       

    第二种遍历方式:遍历数组

        运动名称=${sp}

    第三种遍历方式:遍历Map
    map = new HashMap();
        map.put("key1", "北京");
        map.put("key2", "上海");
        map.put("key3", "天津");
        request.setAttribute("cities", map);
    %>

        城市信息=${city.key}--${city.value}

    第四种遍历方式:遍历List
    monsters = new ArrayList();
        monsters.add(new Monster(100, "小妖怪", "巡山的"));
        monsters.add(new Monster(200, "大妖怪", "做饭的"));
        monsters.add(new Monster(300, "老妖怪", "打扫位置的"));
        request.setAttribute("monsters", monsters);
    %>

        妖怪信息=${monster.id}-${monster.name}-${monster.skill}



           

                                   
    登录/注册后可看大图

           
    13.练习
    需求分析:使用jsp+servlet+jstl+el完成查询-显示案例,需求如下:

    点击超链接,可以显示所有的妖怪信息
    要求显示的数据在servlet中准备,并放入到request域对象中
    扩展,如果要求增加根据薪水sal条件过滤,怎么处理?

           

                                   
    登录/注册后可看大图

             
           

                                   
    登录/注册后可看大图

           

    练习

    思路:

           

                                   
    登录/注册后可看大图

           
    总结
    以上是真正的电脑专家为你收集整理的day24-服务器端渲染技术02的全部内容,希望文章能够帮你解决所遇到的问题。
    如果觉得真正的电脑专家网站内容还不错,欢迎将真正的电脑专家推荐给好友。
  • 回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    投诉/建议联系

    908164873@Qq.com

    让我们一起寻找开源的乐趣
    加入QQ群把ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
    • 关注公众号
    • 添加微信客服
    Copyright © 2001-2024 ROOT开源 版权所有 All Rights Reserved. 网站地图|仅供演示|仅供演示
    关灯 在本版发帖 官方QQ群 QQ客服返回顶部
    快速回复 返回顶部 返回列表