javaEE009.02 使用El+JSTL优化Jsp表达式、提取welcome.jsp(6个页面)_项目第三阶段4完结(包含、使用request域的缺陷、getParameter 对应 EL … )

系列文章目录

前言

前面一篇我们讲完,接着优化项目

一、使用El+JSTL优化Jsp表达式

使用El+JSTL优化Jsp表达式主要用在哪里呢?主要就是 登录注册的 回显
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【注意】任何功能代码 第一次改,先保留修改痕迹,将之前的代码注释,以防失败能够改回来
【注意2】使用JSTL之前记得要导包和加入标签 ,项目当中我们可以放到base中,这样就可以放一处,其它地方都有了
在这里插入图片描述
在这里插入图片描述
优化:不让文本独立出来
在这里插入图片描述

然后测试一下,后面的写法都是一样
现在我们看注册页面,注册页面就更能够体现出EL 和 JSTL 的优点了

在这里插入图片描述
而EL风格是 空根本不显示
在这里插入图片描述
其它地方也是如此 直接使用EL
在这里插入图片描述
注意上面的写法是有问题的
因为是用的getParameter 所以 EL 中就用 param,这是基础知识,一定要注意,完整如下:
在这里插入图片描述
在这里插入图片描述
然后测试一下
在这里插入图片描述

二、提取welcome.jsp(6个页面)_项目第三阶段完结

使用request域的缺陷

这里我们用session的原因
是因为重定向所以我们用session吗?

如果我们改成转发能不能用request呢?
在这里插入图片描述
我们具体问题具体分析

在这里插入图片描述
那我们使用request行不行,不行,因为重定向,不是当前请求
如果是转发就可以用request吗?

如果是转发,使用request会有什么样的风险呢?
当前的请求是可以,但是如果换一个页面呢?我们无法保证永远都是当前页码呀!
一定会跳转的,比如登录、注册、结算、购物车这些页面肯定不同
也就是说使用request域一定有bug

在这里插入图片描述
因为没有session,所以取一下session
在这里插入图片描述
在这里插入图片描述
除了index 页面,稍稍有些不同,其它大概有5个页面都需要用到用户信息
运行项目起来,我们发现一个问题即使是没有登录,我们在主页点击购物车,也会进入到购物车页面,并且默认提示如下
在这里插入图片描述

进入购物车之前和注册之前需要先判断用户有没有登录

在这里插入图片描述
另外注册页面也需要判断一下用户有没有登录,如果已经登录了,就不需要提供注册的服务了
没有登录才提示用户是否登录或者注册,已经登录了肯定就不需要了

所以我们要提取
在这里插入图片描述

在这里插入图片描述
至此业务分析完了,开始实现

提取welcome.jsp(6个页面)

在这里插入图片描述
然后像include里面其它的页面一样,先删掉冗余的代码
然后
在这里插入图片描述
复制,粘贴
最后使用EL和JSTL来做处理,如下:
在这里插入图片描述
判断是否登录
我们就要知道你登录之后干了啥?

在这里插入图片描述
所以只需要判断session里面的 user 是否为空就行
在这里插入图片描述
重点关注一下购物车
现在我们的页面是不管你登录没登录都能看到并且进入购物车
正确的应该是必须登录并且填好收件的地址才能够加入购物车
所以登录不能有购物车的超链接
我们遇到一个很尴尬的事情
在这里插入图片描述
在这里插入图片描述
session是空的 那个 div 里面的购物车链接删掉,移到上面去(session不为空的div)
写完之后我们就可以去使用了
在这里插入图片描述
静态包含,不需要被重新编译
在这里插入图片描述
其余的页面也是一样,复制粘贴就行了
在这里插入图片描述

然后启动服务器,测试
就距离成功近一步了
在这里插入图片描述
登录之后:
在这里插入图片描述

在这里插入图片描述

注意

1、改页面的代码是不用重启服务器的,刷新就行了
2、注意对应关系
getAttribute 对应EL 是 ${requestScope.errorMsg}
getParameter 对应 EL 是 ${param.username}
不对就会出错
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值