一、jsp部分
只要是与页面显示相关的都是重点
1.jsp的脚本
<%java代码%>:被翻译到service方法内部,局部变量,局部的功能
<%=表达式或变量%>:翻译成service方法中out.write(表达式或变量)
<%!java代码%>:被翻译成servlet的全局的内容,方法,全局变量
2.jsp的运行原理
jsp在运行时翻译成servlet
index.jsp------>work/index_jsp.java----->work/index_jsp.class
3.jsp的注释
html注释:<!--注释--> 可见范围:html源码可见
java注释:注释写到脚本 // /**/ /***/ 可见范围:翻译后的servlet
jsp注释:<%--注释--%> 可见范围:jsp源码范围可见
4.jsp的指令
jsp的指令:page指令 taglib指令 include指令
jsp指令的一般格式:<%@ 指令名称 属性=“属性值” 属性=“属性值”%>
(1)page指令
配置整个jsp的信息
属性:
language:jsp中的脚本可以嵌入的语言代码 只能嵌入java 默认嵌java
import:在jsp中导入包
pageEncoding:本身jsp的编码 内部已经包含contentType
contentType:翻译成response.setContentType("text/html; charset=GBK");
errorPage:jsp出错后的跳转的地址
isErrorPage:true代表本身是一个错误处理的页面
isELIgnored:jsp是否可以解析el表达式 默认是false 可以解析
session:是否自动创建session
buffer:out缓冲区的大小 可以设置为0kb
(2)taglib指令
引入标签库
<%@ taglib uri=”” prefix=””%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
(3)include指令
包含页面用----静态包含
<%@ include file="/jsp/J2.jsp" %>
5.jsp的九大隐式对象(面试笔试常问)
什么是隐式对象?
在jsp脚本中直接使用的对象
request
response
pageContext
session
application
config
out
page
exception
其中
out对象:JspWriter
out.write()---->页面写内容
pageContext对象:页面的上下文对象
1)pageContext是一域对象
可见范围:当前jsp页面
setAttribute(name,value)
getAttribute(name)
removeAttribute(name)
setAttribute(name,value,scope)
getAttribute(name,scope)
removeAttribute(name,scope)
其中scope是指定的域范围
pageContext.setAttribute("name", "zhangsan", PageContext.SESSION_SCOPE);
findAttribute(name);
底层实现:从四个域中寻找属性 从小到大的顺序 找到属性后 后面的域不在寻找了
page域---->request域----->session域----->application域
${requestScope.name}
${name}-----底层findAttribute()
2)pageContext可以获得其他八大隐式对象
6.jsp的标签(jsp的动作)
<jsp:include>----面试经常问
包含页面----动态包含
静态包含与动态包含的区别?
静态包含:先将被包含的jsp与包含的jsp进行源码级别的合并,然后在翻译成一个servlet
动态包含:将两个jsp分别翻译,在运行阶段在将结果合并
<jsp:forward>
<jsp:param>
<jsp:useBean>
<jsp:setProperty>
<jsp:getProperty>
二、EL表达式
E L(Expression Language) 目的:为了使JSP写起来更加简单
1.El可以获取域中的数据
${pageScope.name}
${requestScope.name}
${sessionScope.name}
${applicationScope.name}
${name}
2.El可以进行运算
${1+1}
${name==’zhangsan’?true:false}
${list[2].name=='aaa3'?"等于":"不等于" }
关键字empty
${empty 域中的对象/变量}----->true/false
3.EL的内置对象 11个(了解)
pageScope requestScope sessionScope applicationScope
pageContext
${pageContext.request.contextPath }
4.El调用函数(方法)
使用步骤:
1)引入el函数库
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
2)在jsp页面上使用el函数
语法:${fn:函数(参数)} 返回值就是处理后的结果
${fn:toUpperCase("ahdkjalskhd")}
---->AHDKJA....
三、jstl标签库
JSTL(JSP Standard Tag Library,JSP标准标签库),替代jsp脚本中的逻辑代码
1.JSTL标签的组成
标签库功能描述 |
标签库的URI |
建议前缀 |
核心标签库 |
http://java.sun.com/jsp/jstl/core |
c |
XML标签库 |
http://java.sun.com/jsp/jstl/xml |
x |
国际化/格式化标签库 |
fmt |
|
数据库标签库 |
sql |
|
EL函数 |
http://java.sun.com/jsp/jstl/functions |
fn |
2.jstl的核心库
开发步骤:
1)页面引入jstl核心库<%@ taglib%>
2)在页面使用jstl核心库标签
jstl标签:
<c:forEach>
两种使用方式:
a) items+var+varstatus
b) begin+end+var
<c:if>
test属性:内部是一个boolean的判断
<c:set>
直接向域中设置数据
var:域中的数据的name
value:域中的数据的value
scope:哪个域
Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库的更多相关文章
-
jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
-
JavaWeb基础Day17 (JSP EL表达式 jstl标签库 beanutil工具类)
JSP jsp的实质就是指在html界面中嵌入Java代码 jsp脚本 <% Java代码 %> 相当于写在service方法中. <%=java 变量或者表达式 %> ...
-
2.EL表达式&;JSTL标签库常用方法
1.EL表达式 Expression Language表达式语言,主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出. 格式为${表达式} EL表达式输出Bean的普通属性.数组属性.Li ...
-
java攻城师之路--复习java web之jsp入门_El表达式_JSTL标签库
JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...
-
复习java web之jsp入门_El表达式_JSTL标签库
JSP 技术掌握:JSP语法 + EL + JSTL 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP ...
-
jsp之el表达式jstl标签
不管是el表达式还是jstl标签最终的目的都是要消除jsp中的java代码,当然是消除显式的java代码 el表达式的出现是为了简化jsp中读取数据并写入页面的操作. el表达式的功能不多,也很好记 ...
-
el和jstl标签库讲解视频
https://www.bilibili.com/video/av22415283/?p=1
-
EL表达式与标签库
https://blog.csdn.net/panhaigang123/article/details/78428567
-
Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)
一.JSP技术 1.jsp脚本和注释 jap脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部,比如写在doget.dopost 内的代码 2) ...
随机推荐
-
iOS 支持 IPv6
苹果的规定:2016年6月1日提交到App Store必须支持IPv6-only网络. 官方文档:https://developer.apple.com/library/mac/documentati ...
-
回顾yii的学习进程 总结了一下的发展过程
如果看到这篇文章,我想说恭喜你 不用,你可以先放下学习yii了 我先学在把结论发给你们节省精力 yii2的学习教程:http://www.digpage.com/recent_update.html ...
-
JQuery 实现页面无刷新
对于JQuery实现页面无刷新的效果,即:应用这个JQuery这个组件,可以实现在页面上加载数据库中的数据信息,但是并没有给用户页面刷新的感觉,这样既可以有效的进行数据交互,也可以不妨碍用户的其他操作 ...
-
aliCloud基于RAMService实现跨账户资源访问
1,aliCloud基于RAM service实现跨账户ECS资源访问Example 主要的资源为Instance,Image,Snapshot,disk,SecurityGroup Action太多 ...
-
Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)
(一)Java中的继承: 关于继承,在Java中类的继承只能是单继承,不像C+++那样灵活,可以多继承,多继承的后果就是各种关系乱套,就相当于一个孩子有2个母亲一样,社会关系的复杂,不利于程序后期的开 ...
-
jQuery中的选择器(下)
这一篇主要写过滤选择器和表单选择器 在这里,我不再已表格形式说明(自己太懒了),主要以文字形式说明一下每个选择器的作用描述. 3.过滤选择器 过滤选择器主要是通过特定的过滤规则筛选出所需的DOM元素 ...
-
为什么函数式编程可以没有while?
以前想不通,今天在写代码时不知怎么的,偶然就发现了答案.. 比如说把某个字符串s中所有"00"及更长的'00'统统换为'0'.最后结果中不能包含'00'. 00001100--&g ...
-
python爬取中国天气网站数据并对其进行数据可视化
网址:http://www.weather.com.cn/textFC/hb.shtml 解析:BeautifulSoup4 爬取所有城市的最低天气 对爬取的数据进行可视化处理 按温度对城市进行排 ...
-
sql-多表查询
一:外连接 1.左外连接(left join) select * from A left join B on A.id=B.a_id 结果如下 很明显,A表的所有数据都显示出来了 ...
-
tjoi2018D2T2(luogu4590) 游园会 (状压dp)
题解劝退系列 设长的那个串是A,短的那个串是B. 那我们在如果已经知道某个A的时候,A[1..i]和B[1..j]的最长公共子序列$f[i][j]=max\{f[i-1][j],f[i][j-1],f ...