JavaWeb(四)

news2024/12/23 15:45:13

前言

在学习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

不等于 != ne

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

以此类推
大于 < 或 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

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

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

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

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

禁用当前页面的EL表达式

<%@ page isELIgnored="true" %>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java_题目_学生管理系统_注册登录忘记密码

学生管理系统升级版 Java_题目_学生管理系统_业务分析并搭建主菜单_查询添加删除修改 需求&#xff1a; ​ 为学生管理系统书写一个登陆、注册、忘记密码的功能。 ​ 只有用户登录成功之后&#xff0c;才能进入到学生管理系统中进行增删改查操作。 分析&#xff1a; 登录…

微信小程序自动化测试实践(附 Python 源码)| 实战系列

为什么要进行小程序自动化测试 随着微信小程序的功能和生态日益完善&#xff0c;很多公司的产品业务形态逐渐从 App 延升到微信小程序、微信公众号等。小程序项目页面越来越多&#xff0c;业务逻辑也越来越复杂&#xff0c;全手工测试已无法满足快速增长的业务需求。 然而&am…

LL(1)文法的核心原理

来自编译原理课本&#xff0c;课本上讲的非常好&#xff0c;这里用我自己的方法再讲述一下。 讨论范围&#xff1a;2型文法&#xff0c;产生式的左边只有一个非终结符号。&#xff08;这样才能构建树&#xff09; 用语法树去进行巨型分析的时候会遇到的问题&#xff1a;多个候…

web前端期末大作业 html+css+javascript汽车介绍网页设计实例 企业网站制作(带报告3490字)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

WEB前端网页设计 CSS网页代码 基础参数(三)

目录 font-size属性单位; color&#xff1a;文本颜色 间距 text-decoration&#xff1a;文本装饰 text-align&#xff1a;水平对齐方式 white-space&#xff1a;空白符处理 text-overflow&#xff1a;标示对象内溢出文本 盒子模型&#xff1a; 高度坍…

Python课程设计-图书管理系统

Python课程设计-图书管理系统摘要第一章 绪论1.1 开发环境及技术1.2 系统实现功能描述第二章 功能详细设计与实现2.1 系统框架各层次实现2.1.1 可视页面设计2 数据库设计3 逻辑流程设计2.2 主要功能的设计与实现1 功能 1用户登录2 功能 2展示图书3 功能 3添加图书4 功能 4删除图…

3dmax 打开查看模型

下载一个3dmax模型如下图&#xff1b;包含一个.max文件&#xff0c;一个文件夹&#xff1b; 从File菜单打开该模型&#xff1b;打开对话框右侧会显示模型的一个缩略图&#xff1b; 有任何情况均忽略&#xff0c;直接打开&#xff0c;出现一个Scene Converter对话框&#xff0c;…

Spring MVC 源码分析

Spring MVC 源码分析1. 回顾Servlet1.1. 什么是Servlet1.2. Servlet工作模式1.3. Servlet的工作原理1.4. 源码分析1.4.1. Servlet接口1.4.2. GenericServlet抽象类1.4.3. HttpServlet抽象类1.5. Servlet的局限性2. Spring MVC简介2.1. 什么是MVC2.2. 什么是Spring MVC&#xff…

【深度学习】详解 BEiT

目录 摘要 一、引言 二、方法 2.1 图像表示 2.1.1 图像 patch 2.1.2 视觉 token 2.2 主干网络&#xff1a;图像 Transformer 2.3 预训练 BEiT&#xff1a;掩码图像建模 2.4 从变分自动编码器的角度来看 2.5 预训练设置 2.6 在下游视觉任务微调 BEiT 三、实验 3.…

谁还说我没表情包用?马上用Python采集上万张个表情包

前言 今天来表演一手 采集全网表情包图片 虽然我现在的wx表情包已经996个了&#xff0c;但是我还在存表情包哈哈&#xff0c;多了就继续删 现在跟人聊天&#xff0c;不发个表情包&#xff0c;我都觉得不对劲&#xff0c;怪难受的 索性今天就来&#xff0c;给你们分享一下&a…

Vue3:分析elementplus表格第一列序号hover变多选框实现思路

灵感来自Vue el-table 表格第一列序号与复选框hover切换 源码是通过Vue2elementui去实现的&#xff0c;本篇是通过Vue3elementplus实现&#xff0c;所以在代码上面有些许不同&#xff0c;但函数名一致 实现思路&#xff1a; ①通过表头是多选框&#xff0c;我们可以判定这一…

9.1、面向对象编程

文章目录面向对象编程简介面向对象编程面向对象编程的三大特性对象和类封装练习继承什么是继承重写父类方法多继承私有属性和私有方法多态项目案例&#xff1a;栈和队列的封装栈的封装队列的封装python是面向对象的编程语言 面向对象编程简介 “面向过程”(Procedure Oriente…

Java并发编程—synchronized

文章目录synchronized 的底层实现原理监视器锁对象的锁的获取过程如下&#xff1a;monitorexit&#xff1a;加synchronized锁前后对比synchronized的作用synchronized的三种主要用法synchronized为什么是 非公平锁&#xff1f;————————————————————————…

大数据项目 --- 电商数仓(一)

这个项目实在数据采集基础使用的,需要提前复习之前学的东西,否则的话就是很难继续学习.详见博客数据项目一 ---数据采集项目.大数据项目 --- 数据采集项目_YllasdW的博客-CSDN博客大数据第一个项目笔记整理https://blog.csdn.net/m0_47489229/article/details/127477626 目录 …

Android 基于物理特性动画 —— 弹簧动画

在安卓开发中我们可以通过动画添加视觉提示&#xff0c;向用户通知应用中的动态。当界面状态发生改变时&#xff08;例如有新内容加载或有新操作可用时&#xff09;&#xff0c;动画尤其有用。动画还为应用增加了优美的外观&#xff0c;使其拥有更高品质的外观和风格。 首先来…

Java并发编程—并发和并行、线程上下文

文章目录并发和并行并发和并行的区别上下文切换相关问题为什么循环次数少的情况下&#xff0c;单线程快&#xff1f;什么时候需要用多线程&#xff1f;线程上下文切换消耗的时长&#xff1f;用什么测试的线程上下文&#xff1f;面试回答下面的工具会加分&#xff1a;如何减少上…

DQL简介

学习笔记之DQL 数据查询语言&#xff0c;用来查询数据库中表的记录。 查询关键字&#xff1a;select 基本查询 1查询多个字段 select 字段1&#xff0c;字段2&#xff0c;字段3.. from 表名; select * from 表名;2设置别名 select 字段1 [别名1],字段2[别名2]... from 表名;3…

233搞懂HMM(隐马尔可夫)

文章目录2条性质3个参数3个问题维特比算法参考资料有向图模型&#xff0c;主要用于时序数据建模&#xff0c;在语音识别&#xff0c;自然语言处理等领域&#xff0c;以及在知识图谱命名实体识别中的序列标注&#xff0c;有广泛应用。 HMM模型由两部分组成&#xff0c; 观测变量…

spring boot 应用mybatis

Mybatis入门: Mybatis入门_做测试的喵酱的博客-CSDN博客 目录 一、spring boot 应用mybatis 核心 二、举例&#xff1a; 2.1 背景 2.2 项目结构&#xff1a; 2.3 依赖包 pom 2.4 项目配置文件application.yml 2.5 实例层entity 2.6 mybatis的mapper层 2.7 spring boot…

Android—过渡按钮的简单实现

Android—过渡按钮的简单实现前言准备工作登录页面(activity_main.xml)登录成功页面(activity_new.xml)主要代码给登录按钮设置监听事件(MainActivity.xml)点击登录按钮出现加载动画(TransitionButton.java)当isSuccessful判断为true时(MainActivity.xml)加载动画结束时切入跳转…