JSP

JSP——Java Server Pages(Java服务器端页面)

可以理解为一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码,用于简化书写。

JSP的原理

JSP本质上就是一个Servlet。

JSP的脚本

JSP定义Java代码的方式

  1. <% 代码 %>——定义的java代码在service方法中。service方法中可以定义什么,该脚本就可以定义什么。
  2. <%! 代码 %>——定义的java代码,在jsp转换后的java类的成员位置。
  3. <%= 代码 %>——定义的java代码,会输出页面上。输出语句中可以定义什么,该脚本就可以定义什么。

JSP指令

作用——用于配置JSP页面,导入资源文件
格式
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2…%>
分类

  1. page——配置JSP页面的
  • contentType——等同于response.setContentType()
    ①设置响应体的mime类型以及字符集。
    ②设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
  • import——导包
  • errorPage——当前页面发生异常后,会自动跳转到指定的错误页面。
  • isErrorPage——标识当前页面是否是错误页面。
    ①true——是,可以使用内置对象exception。
    ②false——否,默认值。不可以使用内置对象exception。
  1. include——页面包含的。导入页面的资源文件。
  2. taglib——导入资源

注释

html注释——只能注释html代码片段

<!-- -->

jsp注释——可以注释所有

<%-- --%>

JSP的内置对象

在jsp页面中不需要获取和创建,可以直接使用的对象。
jsp一共有9个内置对象。
变量名———————————真实类型———————————— 作用
pageContext————————pageContext——————————— 当前页面共享数据,还可以获取其他八个内置对象
request——————————HttpServletRequest————————— 一次请求访问的多个资源(转发)
session——————————Httpsession———————————— 一次会话的多个请求间
application—————————ServletContext —————————— 所有用户间共享数据
response—————————HttpServletResponse———————— 响应对象
page———————————Object——————————————— 当前页面(Servlet)的对象 this
out—————————————JSPWriter————————————— 输出对象,数据输出到页面上
out——字符输出流对象,可以将数据输出到页面上。和response.getWriter()类似。
response.getWriter()和out.write()的区别
在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
response.getWriter()数据输出永远在out.write()之前。
config————————————ServletConfig——————————— Servlet的配置对象
exception——————————Throwable————————————— 异常对象

EL表达式

概念——Expression Language——表达式语言
作用——替换和简化jsp页面中java代码的编写
语法——${表达式}
注意
jsp默认支持el表达式的。如果要忽略el表达式。
设置jsp中page指令——isELIgnore=“true” 忽略当前jsp页面中所有的el表达式。
${表达式}——忽略当前这个el表达式。

使用

  1. 运算
  • 算术运算符 + - * /(div)%(mod)
  • 比较运算符 > < >= <= == !
  • 逻辑运算符 &&(and) ||(or) !(not)
  • 空运算符——empty
    用于判断字符串、集合、数组对象是否为null或者长度是否为0
    $(empty list)——判断字符串、集合、数组对象是否为null或者长度为0
    ${not empty list)——表示判断字符串、集合、数组对象是否不为null并且长度>0
  1. 获取值
  • el表达式只能从域对象中获取值
    ${域名称.键名}
    pageScope——————pageContext
    requestScope—————request
    sessionScope—————session
    applicationScope————application(ServletContext)
  • ${键名}—— 表示因此从最小的域中查找是否有该键对应的值,直到找到为止。
  • 获取对象
    对象${域名称.键名. 属性名}
    本质上会去调用对象的getter方法
  • 获取List集合
    ${域名称.键名[索引]}
  • 获取Map集合
    ${域名称.键名.key名称}
    ${域名称.键名[“key名称”]}

el隐式对象

el表达式中有11个隐式对象
pageContext
获取jsp其他八个内置对象
${pageContext.request.contextPath}——动态获取虚拟目录

JSTL

JavaServer Pages Tag Library——JSP标准标签库
是由Apache组织提供的开源的免费的jsp标签 <标签>
作用——用于简化和替换jsp页面上的java代码
使用步骤

  1. 导入JSTL相关ar包
  2. 引入标签库——taglib指令——<@ taglib %>
  3. 使用标签

JSTL常用标签

  • if———————相当于java代码的if语句
  • choose————相当于java代码的switch语句
  • foreach————相当于java代码的for语句
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值