JSP&EL

1. JSP简介

JSP:
    Java server pages, java服务器端页面
概念:
    一个特殊的页面,其中既可以指定定义html标签,又可以定义Java代码
优势:
    就是简化代码
执行过程:
    1.服务器解析请求消息,找是否有index.jsp资源
    2.如果找到了,会将index.jsp转换为.java文件
    3.编译.java文件,生成.class字节码文件
    4.由字节码文件提供访问
原理:
    JSP本质就是一个Servlet

JSP的脚本:
    1. <% %> 定义Java代码,在service方法中,service方法可以定义什么,该脚本中就可以定义什么
    2. <%! %> 定义Java代码,在jsp转换后的Java类的成员位置
    3.<%= %> 定义Java代码,会输出到页面上,输出语句中可以定义什么,该脚本中就可以定义什么
JSP的内置对象:
    在JSP页面中不需要获取和创建,可以直接使用的对象
注意:
    out.write()与response.getWriter().write()区别?
    1.在Tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据
    2.response.getWriter()数据输出永远在out.write()之前

2. JSP使用

2.1 指令

作用:
     用于配置jsp页面,导入资源文件

格式:
     <%@ 指令名称 属性名1=属性值1 …%>

2.2 指令分类:

1.page : 配置jsp页面的

  • contentType: 等同于response.setContentType()
    • 1,设置响应体的mime类型以及字符集
    • 2,设置当前jsp页面的编码(只能是高级开发工具才能生效,idea)
  • import:导包
  • errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
  • isErrorPage:标识当前也是是否是错误页面
    • true:可以使用内置对象exception
    • false:不可以使用内置对象exception

2.include: 页面包含的。导入页面的资源文件

     <%@include file=“top.jsp”%>

3.taglib : 导入资源

    <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>
    prefix:前缀,自定义的

2.3 注释
  • 1.HTML注释: <!-- -->

  • 2.jsp注释:<%-- --%>可以注释所有,推荐使用

2.4 内置对象

    内置对象在jsp页面中不需要创建,直接使用

变量名真实类型作用
pageContextPageContext当前页面共享数据
requestHttpServlet一次请求访问的多个资源
sessionHttpSession一次会话的多个请求间
applicationServletContext所有用户间共享数据
responseHttpServlet响应对象
pageObject当前页面(servlet)对象 this
outJspWriter输出对象,数据输出到页面上
configServletConfigservlet的配置对象
exceptionThrowable异常对象

3. EL表达式

概念 : Expression Language 表达式语言
作用: 替换和简化jsp页面中java代码的编写
语法: ${表达式}
注意: jsp默认支持el表达式的

  • 如果要忽略el表达式
    1.设置jsp中page指令中: isElIgored=“true” 忽略当前jsp页面中所有的el表达式
    2.${表达式}:忽略当前这个el表达式

4. EL表达式的使用

4.1 运算
  • 1.算数运算符 + - * /(div) %(mod)
  • 2.比较运算符 > < >= <= == !=
  • 3.逻辑运算符 &&(and) ||(or) !(not)
  • 4.空运算符 empty
    功能:用于判断字符串,集合,数组对象是否为null并且长度是否为0
4.2 获取值:el表达式只能从域对象中获取值

方式一:
${域名称.键名},从指定域中获取指定键的值

  • 域名称:
    1.pageScope -->pageContext
    2.requestScopr -->request
    3.sessionScope -->session
    4.appicationScope -->appication(ServletContext)
  • 举例:在request域中存储了name=张三
    获取:${requestScope.name}

方式二:
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止

方式三:

  • 获取对象,List集合,map集合的值
    1.对象:${域名称.键名.属性名} 本质:条用对象的getter方法
    2.list集合:${域名称.键名[索引]}
    3.map集合:${域名称.键名.key名称}
4.3 隐式对象(和jsp的内置对象有点像)
  • el表达式中有11个隐式对象,pageContext(隐式对象)获取其他八个内置对象
  • ${pageContext.request.contextPath}:在jsp中动态获取虚拟目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值