设为首页
收藏本站
切换到宽版
首页
Portal
论坛
BBS
图库
资讯
导读
Guide
动态
Space
排行榜
Ranklist
帮助
Help
记录
Doing
登录
立即注册
ROOT开源
»
论坛
›
ROOT资讯
›
科技
›
day24-服务器端渲染技术02
返回列表
发布新帖
day24-服务器端渲染技术02
IP属地:
四川省成都市
222
0
[db:作者]
Lv.6
发表于 2023-5-29 01:22:59
|
查看全部
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
charset=UTF-8″ language=”java” %>h3>%=request.getAttribute(“name”)%>/h3>“<: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的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得真正的电脑专家网站内容还不错,欢迎将真正的电脑专家推荐给好友。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发布新帖
回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
[db:作者]
Lv.6 化神
主题
1686
回帖
2
积分
1721
+ 关注
发消息
图文热点
抖音/快手下载工具v2.7 支持点赞下载 下载
115 人气
#工具
AsrTools:智能语音转文字工具
114 人气
#工具
天盾网络验证离线版,带全套教程
2295 人气
#工具
已解决:diacuz3.5手机触屏版如何修改帖子
87 人气
#杂谈
推荐话题
1
Topaz Video AI 4.2.2(智能视频无损放大)汉化简体中文版
2575 阅读
善渊
2
天盾网络验证离线版,带全套教程
2295 阅读
道法孜然
3
Topaz Gigapixel AI 7.1.0(人工智能图片降噪软件)简体中文汉化版
2351 阅读
善渊
4
【4.16 更新V1.2】支持多人配音、全局间隔、免费微软配音工具
1495 阅读
善渊
5
免费AI变声神器!多样音源任你选,让你的声音瞬间变身!
1321 阅读
善渊
最新发布
GPT-SoVITS-WebUI 强大的少样本语音转换与
基于Emotion2Vec模型的批量音频情感自动标
克隆素材要求
已解决:diacuz3.5手机触屏版如何修改帖子
花卷有声小说下载器(2024/10/24更新到V1.1.
突破123盘1G下载限制工具分享
抖音/快手下载工具v2.7 支持点赞下载 下载
CompressO 版本V1.2.0一个视频压缩工具,可
关于我们
关于我们
加入我们
新闻动态
联系我们
服务支持
官方商城
官方QQ群
常见问题
售后服务
投诉/建议联系
908164873@Qq.com
让我们一起寻找开源的乐趣
加入QQ群把ヽ( ̄ω ̄( ̄ω ̄〃)ゝ
关注公众号
添加微信客服
Copyright © 2001-2024
ROOT开源
版权所有
All Rights Reserved.
网站地图
|
仅供演示
|
仅供演示
关灯
在本版发帖
官方QQ群
QQ客服
返回顶部
快速回复
返回顶部
返回列表