JSP重点知识

JSP重点知识:

一:三大元素:

1、脚本元素   <%!声明变量/方法 %>     <%=   %> (表达式后面不加分号)   <%脚本(java代码)%>

2、指令元素 page指令    include指令:在当前页面,静态导入另一个页面      taglib指令:导入标签库指令(需要在工程中将标签库的jar包导入)

3、动作元素:jsp自带的标准标签(减少jap在jap中的出现)        

 eg:  < jsp:include> .... </jsp:include>       <jsp:param>....</jsp:param> (表示参数 key  value)         <jsp:forword  page=“页面url”>... ..</jsp:forword>(将参数发送到指定页面)

注: 在jsp文件中:
1、动作元素 之间 不能加注释语句,否则运行项目会报错!(原因:在.jsp翻译时,将注释翻译到了.java文件中了...)
2、在jsp:include动作元素标签中,需要加flush="true"属性及属性值    否则,就会报错!

二:九大内置对象:(在_jspService()方法中自动定义,即直接使用即可)

out   request   respone   session   application  (5种)

 page(当前的jsp页面)  pageContext(当前的jsp页面的上下文)   config   exception(4种)


三、四大容器:(作用:存储数据)

page(等价于pageContext)   request   session   application


四、静态导入与动态导入的区别:

1、静态导入:当前.jsp页面-----(静态)导入页面-----两页面一起翻译成--- .java文件----生成.class文件

(1)特点:(使用指令元素中的include指令)被导入页面发生在 翻译成.java文件阶段 之前 被导入的   即翻译阶段

(2)优点:执行效率高(两页面一起翻译成.java  一起生成.class文件 ),即.jsp文件执行速度快

(3)缺点:若被导入页面的内容修改,则.jsp文件需重新翻译成.java文件 ,重新生成.class文件

2、动态导入:当前jsp页面----当前页面翻译成----.java文件 ----编译------(动态)导入页面-----一起生成.class文件

(1)特点:(使用动作元素中的  jsp:include  元素) 被导入页面发生在 翻译成.java文件(servlet类) 之后 才会被导入 即执行阶段

(2)优点:若被导入页面内容修改,则.jsp文件不需要重新翻译(因为被导入页面本身就不在翻译之前被加载a!!!而是在翻译成.java之后加载滴!!!

(3)缺点:执行效率低(因为两页面在执行阶段融合在一起,生成.class文件),即.jsp文件执行速度慢


五、JSTL:第三方标签库,即jsp标签集合(需要导入jar包才可以使用)

1、分类:

核心 标签库 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

格式化 标签库<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

SQL标签库 <%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

XML标签库 <%@taglib prefix="xml" uri="http://java.sun.com/jsp/jstl/xml" %>

函数标签库 <%@taglib............................................../functions%>

2、使用:

在使用之前 都要进行定义 才可以使用标签  eg:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

(1)<c:if>  </c:if> 

(2)<c:Foreach>  </c:ForEach>


标签中的一些属性:

名字    类型      描述

var String 存放变量(迭代出来的)的属性名(scopepage)

items     ${list} / ${map} 任何支持的类型遍历集合/数组/枚举/Iterator中的数据

varStatus    String      迭代的状态,可以访问迭代的自身信息,如索引号

begin int  itemsindex[begin]开始迭代 (若没有指定items从0开始做循环)

end int  itemsindex[end]结束(若没有指定items在end结束)

step  int  迭代的步长(step>0)

eg1:遍历list集合      eg2:遍历map集合


六、EL详解

1、形式:  ${ }

2、作用:  从一个范围里面取值 从某对象中取值 或 向页面输出值

3、示例:

(1)接收/获取 客户端参数为name1 对应的值.:    ${param.name1 }

(2)指定容器 并取name2 对应的值:       ${pageScope.name2 }

(3)可以不指定范围 再去取值:  ${name}

注:按照pageContext(page) request session application四大容器 这样一个顺序依次的去找name对应的值,一旦找到,就显示该值,后面就会不再找!

(4)取出指定容器中 的指定对象中的 属性值:    ${对象.属性}   ==  ${requestScope.student.id}

(5)输出字符串                        ${"hello"}





  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值