JSP、EL表达式以及JSTL常用标签的用法

JSP

什么是JSP:
JSP(Java Servlet Page)是原SUN公司开发的一款运行在Web服务器中动态web技术之一,属于JavaEE体系架构之一.

jsp可做Web页面显示,包括静态页面显示和动态页面显示;jsp=html技术+java技术+jsp特有技术.浏览器不能直接解析,要运行在web服务器中;

html:静态内容
servlet:服务器端的小应用程序。适合编写java逻辑代码,(获取表单数据、处理业务逻辑、分发转向)
jsp:适合编写输出动态内容,但不适合编写java逻辑。

jsp运行原理:

翻译–>编译–>执行

Tomcat服务器软件:
Servlet引擎和JSP引擎

将date.jsp翻译成data_jsp.java代码,位于work/../目录下,有源码和字节码,本质:JSP就是Servlet,传递给Servlet引擎,Servlet引擎转换成html,最后由浏览器执行html文件

浏览器解析器:
1.html解析器
2.css解析器
3.JavaScript解析器
4.xml解析器

jsp基础语法:

1.jsp模板元素
html标签,在jsp中一样可以书写html标签。

2.jsp脚本
2.1 小脚本 <% java代码 %> 多个脚本片段可以相互访问;
2.2 表达式 <%= 4+5 %> 相当于out.print(4+5);
2.3 声明 <%! %> 表示在类中定义全局成员,和静态块。

3.jsp注释

<% jsp特有注释(jsp引擎会忽略该注释,不会翻译进Servlet源代码,省时间) %>
注意:注释不能嵌套

4.jsp指令
jsp指令是通知jsp引擎如何处理该jsp页面

在JSP 2.0规范中共定义了三个指令:
page指令
include指令
taglib指令

语法:
<%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”…%>
或者:
<%@ 指令名称 属性1=“属性值1”%>
<%@ 指令名称 属性2=“属性值2”%>

4.1 page:
import 和java代码中的import是一样的
<%@ page import=”java.util.Date,java.util.List”%>
JSP会自动导入以下的包:
import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

jsp与Servlet域对象:

jsp中四大域对象
pageContext 存放的数据在当前页面有效
request 存放的数据在一次请求(转发)内有效
session 存放的数据在一次会话中有效
application 存放的数据在整个应用范围内都有效

Servlet中三个域对象
httpservletRequest 存放的数据在一次请求(转发)内有效
HttpSession 存放的数据在一次会话中有效
ServletContext 存放的数据在整个应用范围内都有效

EL表达式

EL表达式:expression language 表达式语言
简化jsp中java代码开发,它不是一种开发语言,是jsp中获取数据的一种规范

注意事项:
EL获取对于null这样的数据,在页面中表现为空字符串
用EL,一定要放在域对象

EL的功能:

1、获取数据
EL表达式只能获取存在4个作用域中的数据
upageContext.findAttribute(u);url?name=tom {param.name}

${u.name} == u.getName()方法
点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。

属性导航

[]运算符:点能做的,它也能做; 它能做的,点不一定能做
student.name== {student[‘name’]} == ${student[“name”]}

2、运算
empty 的作用:判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true
算术(+-*/),关系(>>=<<=!=和==),逻辑(&&||!)

3、EL11大内置对象:
- EL隐式对象引用名称 类型 JSP内置对象名称 说明
- pageContext javax.servlet.jsp.PageContext pageContext 一样的
- pageScope java.util.Map

JSTL

1、什么是JSTL:
JSTL(JavaServerPages Standard Tag Library)JSP标准标签是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的,在所有支持JSP的Web服务器中都可以运行。

2、JSTL的作用:
使用JSTL实现JSP页面中逻辑处理。如判断、循环等。不管是动作标签,EL,还是JSTL,他们都是为了在JSP中,封装业务操作,但又不想在JSP中书写大量的<%%>符号,达到页面的整体统一,让人觉得JSP页面都是由标签组成。

3、使用JSTL
3.1、在JSP页面添加taglib指令
<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>
JSTL核心标签库包含了一组用于实现WEB应用中的通用操作的标签,JSP规范为核心标签库建议的前缀名为c。

3.2、使用JSTL标签

4、常用标签库介绍:
通用标签:
设置变量
输出数据
移除变更

条件标签:
没有else





一个choose中只能有一个otherwise

迭带标签:
普通循环:

迭代器:

var:迭代参数的名称。在迭代体中可以使用的变量的名称,用来表示每一个迭代变量。类型为String。

items:要进行迭代的集合。标签的items属性支持Java平台所提供的所有标准集合类型。
此外,还可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:
java.util.Collection:调用iterator()来获得的元素。
java.util.Map:通过java.util.Map.Entry所获得的实例。
java.util.Iterator:迭代器元素。
java.util.Enumeration:枚举元素。
Object实例数组:数组元素。
基本类型值数组:经过包装的数组元素。
用逗号定界的String:分割后的子字符串。
javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。

varStatus:迭代变量的名称,用来表示迭代的状态,可以访问到迭代自身的信息。
begin:如果指定了items,那么迭代就从items[begin]开始进行迭代;如果没有指定items,那么就从begin开始迭代。它的类型为整数。
end:如果指定了items,那么就在items[end]结束迭代;如果没有指定items,那么就在end结束迭代。它的类型也为整数。
step:迭代的步长。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值