• JavaWeb(四)


    前言

    在学习JSP之前,首先咱们要了解的是,学这个语言有什么用,这个语言用在哪里呢?
    这就要从咱们的MVC框架开始讲起
    MVC模式是一种软件架构模式,对于我这种软件工程专业的人来说,真的是逃离不了学这个东西。所谓的M(Model)V(View)C(Controller)模型,视图,控制器
    在这里插入图片描述
    当用户通过浏览器向服务器发送一个请求,控制器向Model发送请求,调用Model,让其进行业务操作,然后Model执行一系列操作之后,返回给控制器,控制器然后发送给view,进行图形展示。而控制器的操作其实就是Servlet进行操作的,而Model就是JavaBean(特殊的 Java 类),而对于视图这一部分就是JSP。
    三层架构是基于业务逻辑分的,而MVC是基于页面来分的。MVC的三个加起来其实才是三层架构中的表现层,MVC把三层架构中的表现层再度进行了分化,分成了控制器,视图,实体。三层架构和MVC是可以共存的。
    三层架构的分层模式是典型的上下关系,上层依赖于下层。但MVC作为表现模式是不存在上下关系的,而是相互协作关系。
    在这里插入图片描述

    JSP

    JSP(Java Server Pages)是与PHP ASP等语言类似的,运行在服务端的语言。JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。JSP语言可以嵌入HTML,JS代码中的。组成前端页面。
    JSP页面的本质上就是一个Servlet程序。当访问JSP页面时,Tomcat会将页面翻译为一个Java源文件,并对其进行编译为一个.class字节码文件。打开.java文件发现
    在这里插入图片描述
    HttpJspBase类直接继承于HttpServlet类,即JSP翻译出来的Java类间接继承于HttpServlet类,证明JSP页面是一个Servlet程序
    具体的JSP代码规范也没什么讲的,菜鸟教程讲的很好。

    菜鸟教程:https://www.runoob.com/jsp/jsp-tutorial.html

    EL

    EL表达式(Expression Language),是替换和简化JSP页面中的Java代码的编写<% %>,语法是${表达式}。JSP默认支持EL

    EL可以执行简单的加减乘除
    例如${5+2} 就等于7 ${2+3*2} 等于 8

    EL实现比较运算符
    等于 == eq

    ${6==6} 或 ${6 eq 6} //true
    ${"A"="a"} 或 ${"A" eq "a"} //false
    
    • 1
    • 2

    不等于 != ne

    ${6!=6} 或 ${6 ne 6}   //false
    ${“A"!=“a”} 或 ${“A” ne “a”} //true
    
    • 1
    • 2

    以此类推
    大于 < 或 lt
    小于 > 或 gt
    小于等于 <= 或 le
    大于等于>= 或 ge

    逻辑运算符

    与 && 或 and  ${3>2&&2<4 } 或 ${3>1and3<4 }  //true
    或 || 或 or  ${3<2||3>4} 或 ${3<2or3>4}  //false
    非 ! 或 not ${!(2>4)} 或 ${not (2>4)} //true
    
    • 1
    • 2
    • 3

    . 和 [ ]
    .和[ ]是 EL 中最常用的运算符,用来访问 JavaBean 中的属性和隐式对象的数据。一般情况下,.用来访问 JavaBean 属性或 Map 类型的值,[ ]用来访问数组或者列表的元素。

    EL运算符优先级
    优先级由高至低,由左至右
    在这里插入图片描述

    如果要禁用EL 在前面加上\

    \${2+3} 呢么输出就是${2+3} 而不是5
    
    • 1

    禁用当前页面的EL表达式

    <%@ page isELIgnored="true" %>
    
    • 1

    EL内置对象
    在这里插入图片描述

  • 相关阅读:
    Android 自定义PopupWindow,实现下拉框
    雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆以及两篇好用文章adb devices出现emulator-5554 offline的解决方案和Frida Hook方法大全
    网络安全(黑客)自学
    消除对特权账户的依赖使用Kaniko构建镜像
    4年测试工作经验,跳槽之后面试20余家公司的总结
    读书笔记:《次第花开》
    Gradle笔记 五 Gradle 中的文件操作
    从意义中恢复,而不是从数据包中恢复
    『现学现忘』Docker相关概念 — 1、云计算概念
    Algorithm基础算法学习
  • 原文地址:https://blog.csdn.net/qq_53142368/article/details/128169021