第四十一天 Java基础学习(三十五)

这篇具有很好参考价值的文章主要介绍了第四十一天 Java基础学习(三十五)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、JSP内置对象

●内置对象

因为SP的本质是Servlet,在JSP文件经过转译之后,生成JAVA代码,在运行时JSP给我们准备好了九个可以直接使用而不用我们自己去new的对象,这九个对象我之为内置对象.

内置对象完全由SP自行去维护,我们直接使用即可。

●九大内置对象

confia ;page ;exception;request ;response ;session ;application ;out ;pageContext 

●四个域对象

pageContext    page域                当前页面内可用

request          reqeust域            一次请求

session          session域             一次会话

application      application域        整个项目运行

●响应对象

response        响应对象

●输出流对象

out              打印流对象

●其他三个对象

servletConfig      由于JSP本身也是一个Servlet,所以容器也会给准备一个ServletConfig

page                  就是JSP转换的Servlet的对象,也就是当前SP对象本身

exception          异常对象在错误提示页上使用,当isErrorpage=true才具有该对象

●注意事项:

•response对象

当服务器创建request对象时会同时创建用于响应这个客户端的response对象。

•out对象

是JspWriter类的实例,不是PrinterWriter的实例;用来在response对象中写入内容。JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter增了一些专为处理缓存而设计的方法。另外JspWriter类会抛出IOExceptions异常。

最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作。可以在page指令中使用buffered='false"属性来轻松关闭缓存。

•pageContext对象

PageContext类的实例,用来代表整个JSP页面;提供对SP页面所有对象以及命名空间的访问。

●Servlet与JSP的联系和区别

联系:

1.JSP和Servlet都是Sun公司推出的动态网页技术

2.基于Servlet开发页面的繁琐性,推出JSP来简化页面开发

3.JSP本质上是一个Servlet,会翻译成一个Servlet

区别:

1.JSP使人们把显示和逻辑分隔成为可能,这意味着两者的开发可并行进行;而Servlet并没有把两者分开。

2.JSP是在HTML代码里写JAVA代码,框架是HTML;而Servlet是在JAVA代码中写HTML代码,本身是个JAVA类。

3. Servlet需要在web.xml中配置,而JSP无需配置。

4.目前JSP主要用在视图层负责显示,而Servlet主要用在控制层负责调度

 文章来源地址https://www.toymoban.com/news/detail-561258.html

JSP表面上是一个HTML,本质上是一个Servlet。

●JSP的使用总结

1.创建Jsp文件,在项目的web目录下创建。

2.使用page指令设置Jsp的转译细节(一般自动生成的就够用)

3.使用tablib指令引入第三方的自定义标签来使用(JSTL标签)

4.使用HTML,CSS,JQuery完成页面的开发

5.使用<%%>声明java脚本片段完成数据的动态拼接

6. 获取request或者session中的数据拼接到当前页面中(内置对象)

四、EL表达式学习

1.问题

Servlet负责请求的处理;jsp负责请求处理结果的展示。

往往是使用Servlet处理完请求,将请求结果数据放在request域中,然后转发到jsp页面,在jsp页面通过<%%>也就是java脚本的方式取出request域中的据,然后进行展示。

也可以将Servlet处理请求后的结果放在session域中,然后将请求重定向到jsp页面,在jsp页面通过<%%>也就是java脚本的方式取出session域的数据,然后进行展示。

虽然Servlet结合jsp的方式已经极大的简化了开发功能和页面的操作。但在jsp页面中取域中的数据要使用<%%>和HTML代码进行拼接的方式展示数据,是比较麻烦,而且不利于阅读。

•可以在jsp页面中使用EL表达式来获取域对象中的数据

●特点

1.可以获取作用域对象中的数据

2.底层使用的是反射,在使用的时候可以通过键名即可获取对应的值

3.简化了在jsp页面中使用<%%>获取域对象数据的方式

●使用

基本语法

1.${键名},键名是域对象中存储的数据的键

2.${键名.属性名.属性名..},可以获取域对象中级联属性的值

3.${键名[角标]},获取域对象中存储的list集合或者数组中指定角标的数据

4.注意:${}不仅可获取域对象中的数据,而且会将该数据打印到浏览器中。如果获取不到数据,也不会报错,只是不显示而已。

•作用域数据查找顺序 

使用EL表达式获取域数据的时候,如果没有指明作用域,那会按照作用域由小到大的顺序去找,直到找到为止:pageContext ---> request ---> session ---> application

●指定获取某个作用域中的数据

•${pageScope.键名}          获取page域对象中的数据

• ${requestScope.键名}     获取request域对象中的数据

•${sessionScope.键名}       获取session域对象中的数据

•${applicationScope.键名}  获取application域对象中的数据

●获取request对象中的请求数据

${param.键名},可以获取request中携带的请求参数的数据

●EL表达式可以使用比较运算和算术运算

${键名 逻辑运算符 键名}

${键名 算术运算符 键名}

注意:+表示的是算术运算,而不是字符串拼接。

●JDK8新特征

•Lambda 表达式:

Lambda表达式基于数学中的入演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。

•Lambda 表达式好处:

使用Lambda 表达式可使代码变的更加简洁紧凑。并且Lambda表达式可和StreamAPI等相结合,使代码更加简洁紧凑。Lambda 表达式经常用来替代部分匿名内部类。

•Lambda 表达式的语法

(parameters) -> expressiom或(parameters) ->( statements;

参数:要重写的方法的形参列表

->:lambda运算符

表达式/语句体:要重写的方法的方法体

•Lambda 表达式的本质:Lambda表达式是一种匿名函数(不是匿名内部类),简单地说,它是没有声明的方法,也即没有访问修饰符、返回值声明和名字。它实质属于函数式编程的概念。(不是匿名内部类的,此点在此不做展开)。

注意:

    Lambda表达式如果多个参数,参数外的()不可省略。

     有返回值的Lambda表达式,如果方法体只有一条语句,可同时省略return和{}。

      虽然使用 Lambda 表达式可以对某些接口进行简单的实现,但并不是所有的接口都可以使用Lambda 表达式来实现。Lambda 规定接口中只能有一个需要被实现的抽象方法,不是规定接口中只能有一个方法,称为函数式接口。

 

• 参数类型可以省略不写

•如果只有一个参数,()可以省略不写

 

到了这里,关于第四十一天 Java基础学习(三十五)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第四十一章 Unity 输入框 (Input Field) UI

    本章节我们学习输入框 (Input Field),它可以帮助我们获取用户的输入。我们点击菜单栏“GameObject”-“UI”-“Input Field”,我们调整一下它的位置,效果如下 我们在层次面板中发现,这个InputField UI元素包含两个子元素,一个是Placeholder,另一个是Text。如下所示 同样,我们查看

    2024年02月04日
    浏览(37)
  • 算法第四十一天-排除排序链表中的重复元素Ⅱ

    题意:在一个 有序 链表中,如果一个节点的值出现不止一次,那么把这个节点删除掉 重点: 有序链表 ,所以,一个节点的值出现不止一次,那么他们必相邻。 方法一:递归 链表和树的问题,一般都可以有递归和迭代两种写法。对于本题一定要记住是有序链表,值相同的节

    2024年04月11日
    浏览(94)
  • 【LeetCode75】第四十一题 二叉搜索树中的搜索

    目录 题目: 示例: 分析: 代码: 题目给我们一个搜索二叉树,让我们找出节点值等于目标的节点并返回出去。 首先我们可以直接遍历整棵二叉树,找到值相同的节点就返回出去,不过这样就没有用到二叉搜索数的特性了。 二叉搜索数的特性就是,每一个节点的左子树上所

    2024年02月10日
    浏览(44)
  • 算法训练第四十一天|343. 整数拆分 、96.不同的二叉搜索树

    题目链接:343. 整数拆分 参考:https://programmercarl.com/0343.%E6%95%B4%E6%95%B0%E6%8B%86%E5%88%86.html 题目描述 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 输入:

    2023年04月24日
    浏览(40)
  • 【正点原子STM32连载】 第四十一章 SPI实验 摘自【正点原子】APM32E103最小系统板使用指南

    1)实验平台:正点原子APM32E103最小系统板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/docs/boards/xiaoxitongban 本章将介绍使用APM32E103驱动板载的NOR Flash进行读写操作。通过本章的学习,读者将学习到使用SPI驱动

    2024年01月19日
    浏览(41)
  • 第四十天 Java基础学习(三十四)

    一、Tomcat的初步使用 ● Tomcat目录结构与介绍 •bin:用来存放Tomcat服务器的可执行程序,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令) •conf:用来存放Tomcat服务器的配置文件 •lib:用来存放Tomcat服务器的jar包 •logs:用来存放Tomcat服务器运行

    2024年02月16日
    浏览(39)
  • 学习java第四十三天

    Spring AOP 相关术语 (1)切面(Aspect):切面是通知和切点的结合。通知和切点共同定义了切面的全部内容。 (2)连接点(Join point):指方法,在Spring AOP中,一个连接点总是代表一个方法的执行。连接点是在应用执行过程中能够插入切面的一个点。这个点可以是调用方法时

    2024年04月15日
    浏览(47)
  • 学习JAVA打卡第四十二天

    正则表达式及字符串的替换与分解 ⑴正则表达式 正则表达式是string对象的字符序列,该字符序列中含有具有特殊意义的字符,这些特殊字符称作正则表达式的元字符。  注:由于“   ”代表任何一个字符,所以在正则表达式中如果想使用普通意义的点字符必须使用[.]或5

    2024年02月11日
    浏览(37)
  • 学习JAVA打卡第四十五天

    StringBuffer类 StringBuffer对象 String对象的字符序列是不可修改的,也就是说,String对象的字符序列的字符不能被修改、删除,即String对象的实体是不可以再发生变化,例如:对于  StringBuffer有三个构造方法: ⑴StringBuffer(); ⑵StringBuffer(int Size); ⑶StringBuffer(String s);

    2024年02月11日
    浏览(40)
  • 学习JAVA打卡第四十六天

    Date和Calendar类 Date类 ⑴使用无参数构造方法 使用Date 类的无参数构造方法创建的对象可以获取本机的当前日期和时间,例如: Date nowtime =new Date(); ⑵使用带参数的构造方法 计算机系统将其自身的时间的设“公元”设置在1970年1月1日零时可(格林威治时间),可以根据这个

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包