目录
一、JSP笔记
1.绝对路径与相对路径
2.jsp标签
二 EL表达式
1.EL表达式简介
2.传统编码风格中,从域对象对取数据并输出
3.EL表达式完整版
4.EL表达式的域对象别名
5.EL表达式,将域对象中高级类型对象的属性读取并输出
6.EL表达式常见异常
7.EL表达式简化版
8.可以对EL表达式读取的数据,进行简单运算后,在输出
9.EL表达式其它内置对象
10.EL表达式缺陷
三 JSTL工具包
1.JSTL介绍
2.JSTL使用
3.jstl标签使用介绍
1.定义
绝对路径:以当前文件为起点,寻找其他文件的路径格式
相对路径:以根目录(WebContent)为起点,寻找其他文件的路径
在Web工程开发时,建议禁止使用【相对路径】
2.在jsp文件中设置绝对路径
base标签要求当前网页中,禁止使用相对路径,只能使用绝对路径
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
1. 脚本程序语法
<% 代码片段 %>
2.指令程序语法
<%@ page include taglib%>
3.表达式语法
<%= 变量%>
3.注释语法
<%!不被执行的程序 %>
1.一组特殊工具类
2.EL表达式专门用于JSP文件
3.简单从域对象读取数据并输出的开发流程
4.EL表达式以来的工具包,存在tomcat的lib(el-api.jar),因此在开发的时候,不需要额外添加EL工具包
1.从域对象读取数据
2.将得到数据进行类型转换
3.将得到的数据推送
${域对象别名.关键字}
JSP:application session request pageContext
EL:applicationScope sessionScope requestScope pageScope
${域对象别名.关键字.属性名}
****属性名需要按照驼峰写法
javax.el.PropertyNotFoundException: 类型[java.lang.String]上找不到属性[empno]
没有找到属性
原因:
1)可能指定属性,真的在类中没有声明
2)如果发现指定属性,在类中已经声明了,说明这个属性没有声明对应的get方法
1.格式:${关键字}
2.原理:EL表达式简化版在执行时
首先会到pageContext--->request--->session--->application---->null
3.缺点:
1)增加程序运行时间
需要按顺序一步一步找关键字
2)导致数据定位错误
如果有同名属性,造成数据错误
4.适用场景:
当我们从pageContext读取数据时,可以使用简化版
1.数字运算
2.关系运算: > < >= <= == !=
gt ge lt le eq
3.逻辑运算:&& || !
1.param:读取请求对象包含的请求参数
${param.请求参数名}==request.getParameter("请求参数名")
2.initParam:读取全局作用域对象保存的共享数据(来自于web.xml)
代替application.getInitParameter("参数")
${initParam.参数}
3.pageContext ${pageContext.request.contextPath}
1.无法修改域对象中数据 session.setAttribute("key",1000)
2.没有提供语句判断(if...else if... else,for, while)导致EL表达式无法遍历集合
1.JSTL jsp标准标签库(sun)
2.JSTL包含(
core核心工具包,jsp日常基本操作,域对象赋值,控制语句
sql数据库工具包(不用)
xml文件工具包(不用)
format格式转换包
)
1.导入jstl.jar;standrad.jar
2.在jsp,通过taglib指令导入jstl中core工具包依赖的配置文件
<@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
1.:作用修改四大作用域对象内容
属性:scope:操作的作用域对象(application,session,request,page)
var:作用域对象关键字名称
value:要保存的数据
request.setAttribute("name","mike");
2.
输出内容
3.:处理多分支判断
4.:循环输出