• 2022-8-31 第七小组 学习日记 (day55)JSP


    遇到出错自己解决:出错先看控制台,前端就f12看开发中工具,最后再查看路径

    目录

    JSP简介

    面试题:JSP和servlet区别?

    JSP脚本片段:

    JSP表达式:

    JSP声明片段:

    JSP的指令标识:

    page的属性:

    Include指令

    Taglib指令

    JSP标签

    1、内置标签

    2、JSTL标签,需要导入JSTL标签库

    3、自定义标签

    (面试题)jsp:include标签和include指令的区别?

    动态引入和静态引入的区别

     (面试题)JSP四大作用域:

    (面试题)JSP的九大内置对象。

    EL表达式

    EL中的基础操作符

    EL表达式的内置作用域对象

    总结 


    JSP简介

    jsp语言与PHP、ASP、ASP.NET等语言类似,都是运行在服务端的语言

    JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。

    JSP文件后缀名为*.jsp

    JSP开发的WEB应用可以跨平台使用,既可以运行在Linux上也能运行在Windows上

    面试题:JSP和servlet区别?

    1.JSP本质上就是servlet

    2.JSP更侧重于视图展示,servlet更侧重于逻辑处理

    3.先有的servlet,后有的JSP 

    JSP脚本片段:

    用于在JSP页面内写JAVA代码

    1. <%
    2.     int num=0;
    3.     num++;
    4.     System.out.println(num);
    5. %>

    注意: 

    1.JSP脚本片段中只能出现java代码,不能出现HTML元素,在访问JSP时,JSP引擎翻译JSP页面中的脚本片段。
    2.JSP脚本片段中JAVA代码必须严格遵守JAVA的规则
    3.一个JSP页面可以有多个脚本片段
    4.多个脚本片段中的代码可以相互访问

    JSP表达式:

    格式:<%=%>,用于将已经声明的变量或者表达式输出到网页上面。

    <%= num %>

    JSP声明片段:

    其中写的内容将来会直接翻译在Servlet类中,因为我们可以在类中定义方法和属性以及全局变量,所以我们可以在<%!%>中声明方法、属性、全局变量。

    1. <%!
    2.     int x = 10;
    3.  
    4.     static{
    5.  
    6.     }
    7.  
    8.     public void fun(){
    9.  
    10.     }
    11. %>

    JSP的指令标识:

    <%@ 指令名 属性1=“值1” 属性2=“值2”.....%>

    那都有什么指令呢:

    page指令:定义整个JSP页面的相关属性

    include指令:引入其他的JSP页面。先把两个页面结合,在去编译成servlet。

    taglib指令:引入页面上需要用到的标签库

    page的属性:

    使用语法格式:一般在页面最顶上:<%@ page attribute="value" %>

    属性描述
    buffer指定out对象使用缓冲区的大小
    autoFlush控制out对象的 缓存区
    contentType指定当前JSP页面的MIME类型和字符编码
    errorPage指定当JSP页面发生异常时需要转向的错误处理页面
    isErrorPage指定当前页面是否可以作为另一个JSP页面的错误处理页面
    extends指定servlet从哪一个类继承
    import导入要使用的Java类
    info定义JSP页面的描述信息
    isThreadSafe指定对JSP页面的访问是否为线程安全
    language定义JSP页面所用的脚本语言,默认是Java
    session指定JSP页面是否使用session
    isELIgnored指定是否执行EL表达式
    isScriptingEnabled确定脚本元素能否被使用

    Include指令

    语法格式:<%@ include file="文件相对 url 地址" %>

    Taglib指令

    语法格式:<%@ taglib uri="uri" prefix="prefixOfTag" %>

    JSP标签

    1、内置标签

            (1)jsp:include:引入指定的页面

            (2)jsp:forward:转发页面

            (3)jsp:param:传参数

    2、JSTL标签,需要导入JSTL标签库

    3、自定义标签

    使用格式:

     或:

    (面试题)jsp:include标签和include指令的区别?

            include标签:先把要引入的页面编译,再合并

            include指令:先把要引入的页面合并,再编译

    动态引入和静态引入的区别

    静态引入:

    <%@ include file="/xxx.jsp" %>

    静态引入会生成一个java文件,两个jsp文件中可以共享同一个变量,但不能定义重名的变量。

    动态引入:

    <jsp:include page="/xxx.jsp"/>

    动态引入会生成两个java文件,两个jsp文件中不可以共享同一个变量,可以定义重名的变量。

    在静态引入与动态引入均可使用时,一般使用静态引入。因为在程序运行时只存在一个Servlet,对资源的消耗较少,且不存在调用问题,执行效率较高。

     (面试题)JSP四大作用域:

    1、当前页(pageContext):一个属性只能在一个页面中获取。

    2、一次请求(request):一个页面中设置的属性,范围是一次请求。

    3、一次会话(session):一个会话中的属性,只要页面不关闭,都能获取到

    4、整个web应用(application):在这个服务器上,当前项目下的任何一个位置都能获取。

     往作用域中放置数据:

    1. <%
    2.     pageContext.setAttribute("pageContext","pageContext");
    3.     request.setAttribute("request","request");
    4.     session.setAttribute("session","session");
    5.     application.setAttribute("application","application");
    6. %>

     获取:

    1. pageContext:<%= pageContext.getAttribute("pageContext")%>

    2. request:<%= request.getAttribute("request")%>

    3. session:<%= session.getAttribute("session")%>

    4. application:<%= application.getAttribute("application")%>

    (面试题)JSP的九大内置对象。

            内置:不需要创建,直接就能用。

    ***request

    请求

    ***response

    响应

    ***session

    会话

    out

    输出

    page

    当前JSP页面对象

    application

    应用

    exception

    异常,只能在指定了isErrorPage="true"使用

    pageContext

    当前页,作用域

    config

    配置

    EL表达式

    SP表达式语言(EL)使得可以轻松访问存储在JavaBeans组件中的应用程序数据。JSP EL允许用来创建算术和逻辑表达式。在JSP EL表达式中,可以使用整数,浮点数,字符串,布尔值的内置常量为true和false以及null值。

    语法:

    通常,当在JSP标记中指定属性值时,只需使用字符串即可。 例如 

    setProperty name = "box" property = "perimeter" value = "100"/>

    JSP EL允许为这些属性值指定一个表达式。JSP EL的语法如下:

    ${expr}

    EL中的基础操作符

    EL表达式支持大部分Java所提供的算术和逻辑操作符:

    操作符描述
    .访问一个Bean属性或者一个映射条目
    []访问一个数组或者链表的元素
    ( )组织一个子表达式以改变优先级
    +
    -减或负
    *
    / or div
    % or mod取模
    == or eq测试是否相等
    != or ne测试是否不等
    < or lt测试是否小于
    > or gt测试是否大于
    <= or le测试是否小于等于
    >= or ge测试是否大于等于
    && or and测试逻辑与
    || or or测试逻辑或
    ! or not测试取反
    empty测试是否空值

    EL表达式的缺陷:1、只能读,不能写  2、不支持流程控制语句 

    EL表达式的内置作用域对象

    pageContext

    requestScope

    sessionScope

    applicationScope

    总结 

            JSP虽然是使用方面较少了,但是它在面试题仍然不能马虎,我将老师特意讲的面试题标红以备不时之需 

  • 相关阅读:
    数据安全出境系列——数据追溯能力
    6.网络编程套接字(下)
    定义现代化实时数据仓库,SelectDB 全新产品形态全面发布
    JavaScript知识系列(3)每天10个小知识点
    Kafka概述及使用
    【C语言】堆排序详解
    ARM:使用汇编完成三个灯流水亮灭
    ZCMU--1379: The Black Hole of Numbers(C语言)
    mysql innodb 存储引擎
    PicoDet 训练自己的数据集(COCO)
  • 原文地址:https://blog.csdn.net/weixin_56982770/article/details/126619306