学习笔记【JavaWeb-第十一节:EL表达式、JSTL标签、三层架构】

EL表达式

Expression Language 表达式语言

作用: 替换和简化jsp页面中java代码的编写

语法: ${表达式}

注意:
JSP默认支持EL表达式
要忽略el表达式的两种方法

  • 设置isELIgnored="true":忽略当前JSP页面的所有el表达式
  • \${表达式}:忽略当前这个el表达式
使用:

1.运算
运算符:

  • 算数运算符:+ - * /(div) %(mod)
  • 比较运算符:> < >= <= != ==
  • 逻辑运算符:&&(and) ||(or) !(not)
  • 空运算符:empty。功能:用于判断字符串、集合、数组对象是否为null并且长度是否为0 如${empty list}

2.获取值
el表达式只能从域对象中获取值
语法:

  • 1.${域名称.键名}
    从指定的键中获取指定键的值
    域名称:

    • pageScope:pageContext
    • requestScope:request
    • sessionScope:session
    • applicationScope:application(ServletContext)

    如:

<%
request.setAttribute("username","zhangsan");
session.setAttribute("password","1234");
%>

${requestScope.username}
${sessionScope.password}

没有则显示空字符串

  • 2.${键名}
    标识一次从最小的域中去查找是否有该键对应的值,直到找到为止

  • 3.获取对象、List集合、Map集合的值
    对象:${域名称.键名.属性名}${requestScope.u.name}(本质是调的getter方法)

    List集合:${域名称.键名[索引]}

    Map集合:${域名称.键名.key名称}${域名称.键名["key名称"]}

3.动态获取虚拟目录
${pageContextScope.request.contextPath}


JSTL标签

JavaServer Pages Tag Library JSP标准标签库

是由Apache组织提供的开源的免费的jsp标签

作用: 用于简化和jsp页面上的java代码

使用步骤:

  • 导入jstl相关jar包
  • 引入标签库:taglib指令:<%@ taglib%>
  • 使用标签

常用的JSTL标签

1.if

相当于java代码的if语句

<c:if></c:if>
属性:
必须属性test。接受布尔表达式,如果表达式为true,则显示if标签体的内容,反则不显示。
test一般会结合el表达式一起使用 。

**注意:**没有else情况,若想有,则再定义一个<c:if></c:if>标签

2.choose

相当于java代码的swith语句
<c:choose>相当于原来的switch
<c:when test="">相当于原来的case
<c:otherwise>相当于原来的default
例子

<%
    request.setAttribute("number",3);
%>
<c:choose>
    <c:when test="${number==1}">星期一</c:when>
    <c:when test="${number==2}">星期二</c:when>
    <c:when test="${number==3}">星期三</c:when>
    <c:when test="${number==4}">星期四</c:when>
    <c:when test="${number==5}">星期五</c:when>
    <c:when test="${number==6}">星期六</c:when>
    <c:when test="${number==7}">星期天</c:when>
    <c:otherwise>输入数字不合法</c:otherwise>
</c:choose>
3.foreach

相当于java代码的for语句

a.完成重复操作
以往:for (int i=0;i<10;i++){}

属性:

  • begin:初始值(包括自身)
  • end:结束值(包括自身)
  • var:临时变量
  • step:步长(1就是+1)
  • varStatus:循环状态对象
    • index:容器中元素的索引,从零开始
    • count:循环次数,从1开始
      例子:
<c:forEach begin="1" end="10" var="i" step="1" varStatus="s" >
    ${i}  <h3>${s.count}</h3>  <br>
</c:forEach>

b.遍历容器
以往:

List<User> list;
for (User user:list);

属性:

  • items:容器对象
  • var:容器中元素的临时变量
  • varStatus:循环状态对象
    • index:容器中元素的索引,从零开始
    • count:循环次数,从1开始

例子:

<%
    List list=new ArrayList();
    list.add("aaa");
    list.add(123);
    list.add(true);
    request.setAttribute("list",list);
%>

<c:forEach items="${requestScope.list}" var="i" varStatus="s">
    ${s.index} ${s.count} ${i}<br>
</c:forEach>

三层架构

软件设计架构

  • 界面层(表示层:用户看得到的界面。用户可以通过界面上的组件和服务器进行交互)

  • 业务逻辑层:处理业务逻辑的。

  • 数据访问层:操作数据存储文件。

在这里插入图片描述


案例:用户信息列表展示

需求: 用户信息的增删改查操作

设计:

1.技术选型:

Servlet+JSP+MySQL+JDBCTempleat+Druid+BeanUtils+Tomcat

2.数据库设计:
create database userdb;
use userdb;
create table user(
	id int primary key auto_increment,
	name varchar(32) not null,
	gender varchar(5),
	age int,
	address varchar(32),
	qq varchar(20),
	email varchar(50)
);
3.开发

a.环境搭建:

  • 创建数据库环境
  • 创建项目,导入需要的jar包

b.编码

4.测试
5.部署运维
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值