专栏首页Java 源码分析jsp指令和EL表达式

jsp指令和EL表达式

1.page指令

1.pageEncoding

指定jsp的编码

2.contextType

设置响应头 这两个东西其实使用任意一个即可。

3.errorPage

如果这个页面抛出异常以后重定向到哪一个页面。

2.静态包含 include

他是静态包含和RequestDispatcher类似,但是就是包含的时期不一样。 静态包含就是在jsp编译成java的时候形成的,也就是最终是两个文件合并成了一个class,最后形成一个class文件 RequestDispatcher则是动态包含,他们在显示之前始终是两个java文件,两个class,在最后需要显示的时候才把内容整合发送给客户端。

3.导入标签库 import

prefix制定标签库的前缀,uri就是标签库的位置。

4.九大内置对象

  • out jsp的输出流,向浏览器输出数据
  • page 当前的jsp对象,也就是在编译成大java中有page=this
  • config 对应的servletConfig对象
  • pageContext 包含其他的所有 域对象之一
  • request
  • response
  • exception
  • session HttpSession
  • application servletContext

5.四大对象作用范围

  • ServletContext 一个应用
  • Session 一个会话
  • Request 一个请求
  • pageContext 一个jsp页面 ,一般用来jsp标签的数据传输

6.pageContext作用

  1. 代理其他的三大域对象 pageContext.setAttribute(“key”,”value”,pageContext.SESSION_SCOPE); 存放在session中代理了session
  2. 全域查找 pageContext.findAttribute(“key”) 在这四大域对象中依次查找
  3. 获取其他的jsp八大内置对象

7.JSP动作标签

  • 转发
  • 包含
  • 为其他的标签传递参数

8.EL表达式

EL表达式主要就是用来代替JSP中的 <%= %> 这个标签的,他可以简单的用于输出语句

  1. 输出四大域对象中的内容 ${key} 这样就可以全域查找到四大域对象中的key变量 如果key是一个对象的话,我们希望获取这个对象里面的某个get方法的返回值,我们只需要key.key1 key1就是getKey1()这个方法的返回值。
  2. 精确的四大域对象查找 ${pageScope.key} ${requestScope.key} ${sessionScope.key} ${applicationScope.key}
  3. 其他7个内置对象
  • param
  • paramValue
  • header
  • headerValue
  • cookie
  • pageContext 他可以获取其他所有的10个对象,因为它里面有其他十个对象的get方法。
  1. EL 函数库 导入对应的库,然后使用标签调用函数库

9.JSTL

JSTL是EL的扩展,因为EL只是进行输出而已,但是有一些判断,遍历等等,这些操作就是JSTL。他需要引入jstl.jar 他有四大库,但是常用的只有两个一个是core另外一个就是formate标签库 注意导入的时候uri是jsp/core 或者 jsp/formate

1.core标签库(c标签)

  • out 输出标签 value就是要输出的变量
  • set 设置某个变量的值 var变量名 value变量值
  • url url格式化的标签 value 自动添加上项目名 里面如果加param标签那么就可以传递参数 name/value
  • remove 删除域变量 var变量名 scope域范围,不写的话删除全域的对象中的此值
  • if if语句 test 判断的条件 ${not empty key} 如果key不是空
  • forEach
    • 计数方式 var循环变量 begin循环变量从几开始 end到几结束 step设置步长
    • 用来遍历 items需要迭代的变量 var每一次迭代的变量
  • choose/when 多分支
<c:choose>
  <c:when test></c:when>
  <c:when test></c:when>
  <c:when test></c:when>
  <c:when test></c:when>
</c:choose>

2.formate标签库

  • formateDate value需要格式化的变量 pattern yyyy-MM-dd HH:mm:ss
  • formateNumber value变量 pattern 0.00 需要小数点两位 四舍五入

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HashSet 源码分析

    HashSet 源码分析 1. 在阅读源码时做了大量的注释,并且做了一些测试分析源码内的执行流程,由于博客篇幅有限,并且代码阅读起来没有 IDE 方便,所以在...

    lwen
  • SpringBoot 笔记(十):错误处理

    lwen
  • JavaWeb基础

    1. XML xml一般就用来存放少量的数据,或者是作为配置文件。 xml的声明<?xml version=”1.0” encoding=”utf-8”?> ...

    lwen
  • php设计模式之策略模式应用案例详解

    策略模式定义一系列的算法,将每个算法封装起来,并让它们可以相互装换。策略模式让算法独立于使用它的客户而独立变化。

    砸漏
  • HashMap实现原理分析(Java源码剖析)内部实现存储结构-字段功能实现-方法Map中各实现类的总结小结

    HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对Ha...

    desperate633
  • Android更新资源文件浅思考

    最近在看 《深入探索Android热修复技术原理7.3Q.pdf》 时,遇到一个之前没有注意过的问题:关于资源修更新的Android的版本兼容?作为程序员我们需...

    静默加载
  • 网络编程第三讲UDP编写

      UDP是面向无连接的.就是说数据传输会丢掉.网络延时比较大的情况下.会早上丢包.例如视频通话.就是UDP

    IBinary
  • 重磅!谷歌Chrome再添标签组黑魔法,微软Edge瑟瑟发抖

    对于极简主义者和收藏家一样,谷歌 Chrome 浏览器带来了一种新的方式来组织标签到 Chrome 标签组。这个功能现在可以在 Chrome 测试版中使用。

    程序员小助手
  • python中csv的应用

    dic = {'张三':123, '李四':456, '王二娃':789} csvFile3 = open('ming.csv','w') writer2 =...

    py3study
  • 使用 TIMSDK 的自定义字段 iOS 示例

    "用户资料自定义字段","好友自定义字段","群成员维度自定义字段","群维度自定义字段" 均已键值对 Key-Value 形式存储并使用。扩展相应的字段 Ke...

    腾讯云 - zjiezhu

扫码关注云+社区

领取腾讯云代金券