概述
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个作用域中的数据
u原理:pageContext.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:迭代的步长。
最后
以上就是唠叨云朵为你收集整理的JSP、EL表达式以及JSTL常用标签的用法的全部内容,希望文章能够帮你解决JSP、EL表达式以及JSTL常用标签的用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复