JSP入门

JSP

在这里插入图片描述

1. JSP热部署

20210602225357

2. 脚本标签
  1. <%= %> :输出脚本,调用out.println方法
  2. <% %> 普通脚本,在Service方法中,使用Java代码
  3. <%! %> 声明脚本,定义全局变量和方法
3. 注释

20210603213659

4. 指令
  1. <%@ page ...%>

    1. 作用

      定义页面的依赖属性,比如脚本语言,error页面,缓存需求等

    2. 使用方式

      <%@ page attribute1 = “value1” attribute2 = “value2”%>

    3. 常用属性

      属性描述
      contentType指定当前JSP页面的MIME类型和字符编码格式
      errorPage指定当JSP页面发生异常需要转向的错误处理页面
      isErrorPage指定当前页面是否可以作为另一个JSP的错误处理页面
      import导入需要使用的Java类
      language定义JSP页面所用的脚本语言,默认是Java
      session指定JSP页面是否使用Session,默认为true立即创建,false为使用时创建
      pageEncoding指定JSP页面的编码格式

      注:errorPage和isErrorPage经常是结合在一起使用的

      20210603220209

      注:以前Servlet使用session是通过request.getSession()拿到session的

      pageEncoding是指定JSP页面的编码格式,对比HTML页面,使用的是<meta charset="UTF-8">

  2. <%@ include ...>

    1. 作用

      被包含的文件可以是JSP文件,HTML文件或者文本文件,包含的文件就好像是当前JSP文件的一部分,会被同时编译执行。

    2. 使用方式

      <%@ include file = "被包含的JSP路径">

      20210603221320

      注:静态包含可能会有重名的冲突问题,不建议使用。建议使用下面的动作标签进行动态引用。

  3. <%@taglib ...%>

    1. 作用:引入JSP的标准标签库

    2. 使用方式

      <%@taglib uri = "外部标签库路径" prefix = "前缀"%>

5. 动作标签
  1. include

    1. 语法

      <jsp:include page = "相对URL地址"/>

    2. 作用

      动作元素会将外部文件输出结果包含在JSP中(动态包含)

      注:前面的指令include是将外部文件的输出代码复制到了当前的JSP文件中,这里的动作,是将外部的文件输出结果引入到了当前的JSP文件中。在不同JSP中定义的重名变量,不会产生冲突。

  2. useBean

    1. 语法

      <jsp:useBean id = "name" class = "package.className"/>

    2. 作用

      用来加载一个,将在JSP页面中使用的JavaBean

  3. setProperty / getproperty

    1. 语法

      jsp:getProperty

      jsp:setProperty

    2. 作用

      jsp:getProperty动作提取Bean属性的值,转换成字符串,然后输出

    3. 属性

      name:表示要检索的Bean属性名称,Bean必须已经定义

      property:表示要提取Bean属性的值

    4. 使用方式

      <jsp:useBean id = "user" class = "com.yuannheng.entity.User"/>

      <jsp:setProperty name = "user" property = "username" value = "tom"/>

      20210604223155

      20210604223233

  4. forward

    1. 语法

      <jsp:forward page = "相对URL地址"/>

      jsp:forward动作将请求转到另外的页面

    2. 属性

      page:page属性包含的是一个相对URL

    3. 使用方式

      <jsp:forward page = "index.jsp">

  5. param

    1. 语法

      <jsp:param name = "xxx" value = "xxx">

    2. 使用方式

      在forward内部进行使用,以请求的方式进行参数传递

      20210604224106

      20210604224135

6. 内置对象

20210604230452

7. 域对象

20210604231121

  • 通过request域对象进行存取值

    1. 存值

      20210604234434

    2. 取值

      20210604234509

  • 通过session域对象进行存取值

    1. 存值

      20210604234836

    2. 取值

      20210604234944

8. pageContext的作用

20210605004928

使用pageContext的原因:

  1. 有可能无法获取内置对象,使用pageContext拿。
  2. pageContext可以操作别的域对象的作用域

20210605200414

20210605200721

这个是一个重载方法,选择存在哪个作用域中。

还可以使用pageContext.findAttribute()方法进行取值,其会从四大域对象中所有的作用域中查找,先从pageContext,之后request,session,application,依次增大进行查找。

9. EL表达式
  1. 作用:

    用于替换具体某个作用域中的数据

  2. ${} 获取作用域中的数据,如果不指定scope,会逐级查找{pageContext / request / session / application}

  3. 使用方式:

    • ${score.name}
    • ${name}
  4. EL表达式,如果获取不到Attribute,什么都不会显示,区别于Jsp

  5. EL表达式获取对象

    如果是希望通过EL拿到存放到作用域里面的对象,可以直接${对象名},如果进一步需要拿到对象中的属性,可以通过.拿到。注意,${对象名.属性}拿属性的方式不是通过类中的属性,而是属性的get方法。

  6. EL表达式获取Array,List,Map

    因为Set没有下标,暂时不提。

    20210605205911

    20210605210955

  7. EL运算符

    • 基本运算符

    只能写在EL表达式里面,如果写在了外面,就会当做页面上的元素进行输出了。

    加减乘除取余,五种常见的运算。

    其中除与取余,可以使用英文关键字替代:div / mod

    • 空运算符:

      20210605211935

      结果返回为true,证明""是符合empty的,为null,同样返回true.

  8. EL内置对象

    EL内置对象共有11个

    20210605215803

10. JSTL
  • 引入原因

    为了解决EL表达式存在的不足:

    20210606112110

  • JSTL名称

    Java Server Pages Standard Tag Library ,是一个JSP标签集合。

  • 作用

    1. 可对El获取到的数据进行逻辑操作
    2. 与EL合作完成数据的展示
  • 使用方式

    20210606112428

  • 实例

    1. 单条件判断

      20210606112938

      判断条件需要结合EL表达式,JSTL只是逻辑控制

      注:JSTL中if标签没有else,如果需要else,重新写一个if

    2. 多条件判断

      20210606113427

    3. 迭代

      1. 语法

        20210606113752

        20210606114021

      2. 实例

        20210606114327

        输出结果

        20210606114249

      3. 进阶使用

        20210606114516

        输出结果

        20210606114538

    4. URL标签

      当浏览器禁用了Cookie,会将JsessonId拼接在返回的路径上,使用下面<%=%>或者JSTL中URL标签都可以获取到完整的路径(包含JSessionId),所有涉及到页面跳转或者重定向跳转时,都应该使用URL重写。

      20210606115248

      浏览器显示如下:

      20210606115504

      查看源代码如下:

      20210606115550

11. 注意

20210605215744

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值