三 JSP 技术

一 JSP 概述

  1. 本质:在 HTML 语言中混合 Java 程序代码,由服务器端 Java 语言引擎解释执行。其中,HTML 负责描述信息显示格式,JSP 负责描述处理逻辑。

  2. JSP 代码运行环境:需要系统安装 JSP 引擎,最常用的如 Tmocat 和 Apache。

  3. JSP 开发的典型方式:

    a) 直接使用:显示简单的动态效果。

    b) JSP+JavaBeans:需要与数据库连接,管理诸如账号之类的信息。

    c) JSP+JavaBeans+Servlet:将事物逻辑和表现逻辑分开,JSP 负责表现逻辑的处理和输出,Servlet 专注于处理 Web 的关键业务逻辑。

    d) MVC 模式:把一个应用的输入、处理、输出流程分成模型层、视图层、控制层等三个层。

二 JSP 网络应用服务框架

  1. JSP 交互过程:

    a) 服务器接收请求后分析请求,如果是 HTML 页面则直接返回。

    b) 如果客户请求的是 JSP 页面,服务器调用 JSP 引擎翻译并处理所请求 JSP 页面,然后将处理后生成的 HTML 页面返回。

    c) 如果遇到 JavaBeans 组件,则调用相应的 JavaBeans 组件,并在得到结果后返回给客户。

  2. JSP 交互过程图示:

    

  3. JSP 引擎工作原理:

    a) 将 JSP 页面翻译成一个 Servlet (Java文件)

    b) JSP 引擎调用 Java 编译器对这个 Servlet 进行编译,得到可执行的 class 文件。

    c) JSP 引擎调用 Java 虚拟机来解释执行 class 文件,生成向客户端发送的应答,然后发送给客户。

  上述步骤仅仅在 JSP 页面第一次被访问时才会执行,以后会因为类文件已经生成而提高效率。

  4. JSP 引擎工作原理图示:

    

  5. JSP 访问模型 --- JSP + JavaBean:

    a) JSP页面独自响应请求并将处理结果返回客户,所有的数据库操作通过JavaBean来实现。

    b) 大量地使用这种模式,会导致在JSP页面中嵌入大量的Java代码,使得JSP页面变得非常臃肿。

    c) 前端的页面设计人员稍有不慎,就有可能破坏关系到商业逻辑的代码。

    d) 该模式只适用于中小规模的项目。

  6. JSP 访问模型 --- JSP + JavaBean 图示:

  

  7. JSP 访问模型 --- MVC 模式

    a) MVC 模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器” 。

    b) MVC 把一个应用的输入、处理、输出流程分成模型层、视图层、控制层等三个层。

      i) Event (事件)导致 Controller 改变 Mode l或 View,或者同时改变两者

      ii) 只要 Controller 改变了 Models 的数据或者属性,所有依赖的 View 都会自动更新。

      iii) 类似的,只要 Controller 改变了 View,View 会从潜在的 Model 中获取数据来刷新自己。

    c) MVC 处理流程:

      i) 首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。

      ii) 然后模型用业务逻辑来处理用户的请求并返回数据。

      iii) 最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

      

    d) MVC 模式的优点:

      i) 数据层代码和表示层代码没有混在一起

      ii) 多个视图能共享一个模型

      iii) MVC 的应用程序的三个部件相互独立

    e) MVC 实际处理流程:

      i) Servlet 用来处理请求的事务,充当控制器的角色。

      ii) JSP 页面处于表现层,即视图的角色。

      iii) JavaBean则负责数据处理,即模型的角色。

    f) MVC 实际处理流程图示:

      

三 JSP 基本语法

  1. JSP 页面基本组成:

    a) 脚本元素:用来嵌入Java代码,使之成为转换得到的 Servlet 的一部分。

    b) 指令:为页面提供全局信息,如导入语句、错误处理页面等。

    c) 声明:对网页全局变量和方法的说明。

    d) 表达式:将表达式格式化包含在页面输出中的一个串。

    e) 行为:引入现有组件或控制 JSP 引擎行为。

  2. JSP 基本语法表达式:

    a) 编译器指令 <%@ 编译器指引 %>

    b) 预定义 <%! 预定义 %>

    c) 运算式 <%= 运算式 %>

    d) 程序代码 <% 程序代码 %>

    e) 注解 <%-- 注解 - -%>

  PS:具体语法细节就不做累述了。

转载于:https://www.cnblogs.com/scut-fm/p/3782114.html

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

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

相关文章

Don't Laugh!I'm An English Book笔记(五)——面部词语大总结加补充

head hairscalp&#xff1a;头皮dandruff&#xff1a;头皮屑braincerebral deathforeheadwrinkleeyebroweyelideyeeyelashcrows feetdouble eyelidnosesnub nose strawberry noseaquiline nosenostrilvibrissa&#xff1a;鼻毛cheek earearlobe&#xff1a;耳唇facial hairmous…

vue 3D旋转木马轮播图

利用carousel-3d插件。 安装 npm install -S vue-carousel-3d全局引入 import Vue from vue import Carousel3d from vue-carousel-3d Vue.use(Carousel3d&#xff09;局部引入 import { Carousel3d, Slide } from "vue-carousel-3d";export default {components:…

Vue基础之事件处理器

监听事件&#xff1a; 可以用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码 示例 方法事件处理器&#xff1a; 许多事件处理的逻辑都很复杂&#xff0c;所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 可以接收一个定义的方法来调用 示例 内…

React开发(102):别写立即执行函数

<Buttontype"link"onClick{() > {this.handlePro(row.certificationImg);}}>查看</Button>

删除windows换行符^M

有些内容从windows下拷贝到unix下后&#xff0c;发现文本文件中多了^M&#xff08;在vim中查看&#xff09;&#xff0c;那么如何删除这个字符呢。 在网上找了下答案&#xff0c;有好几种方法&#xff0c;但是我试了下&#xff0c;只有一种是成功的&#xff0c;那就是”tr -d &…

React开发(103):详细路径 不然找不到

import { BaseTabs, BaseUploadImage, BaseHighSearch, BaseTable } from /common/components; import BaseTables from /common/components/BaseTables;

vmin、vmax用处

vmin、vmax用处 100vmin指的是屏幕宽和高中较小的那个 100vmax指的是屏幕宽和高中较大的那个 做移动页面开发时&#xff0c;如果使用 vw、wh 设置字体大小&#xff08;比如 5vw&#xff09;&#xff0c;在竖屏和横屏状态下显示的字体大小是不一样的。 由于 vmin 和 vmax 是当…

分享SharpZipLip使用代码

zip类public class ZipClass { /**//// <summary> /// 压缩方法 /// </summary> /// <param name"strPath">要压缩文件夹</param> /// <param name"strFileName">生成的文件名</p…

Vue基础之表单控件绑定

你可以用 v-model 指令在表单控件元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇&#xff0c;但 v-model 本质上不过是语法糖&#xff0c;它负责监听用户的输入事件以更新数据&#xff0c;并特别处理一些极端的例子 基础用法&#xff1…

Makefile函数使用

使用函数 在Makefile中可以使用函数来处理变量&#xff0c;从而让我们的命令或是规则更为的灵活和具有智能。make所支持的函数也不算很多&#xff0c;不过已经足够我们的操作了。函数调用后&#xff0c;函数的返回值可以当做变量来使用。 [编辑] 函数的调用语法 函数调用&am…

[LeetCode] Search in Rotated Sorted Array

二分 : 判断条件 当a[left] < a[mid]时&#xff0c;可以肯定a[left..mid]是升序的 循环有序 一共有以下两种情况 第一种 / / / /    /  /  条件&#xff1a; (A[mid] > A[low]) &#xff0c;low~mid 二分&#xff0c;mid~high 递归 第二种 /  / / /   / /  条件…

失败者的特征

1 狂妄自大型:自以为老子天下第一,认为自己的认识才是正确的,才是没有错误的,实际上这些人的知识大部分来自于道听途说或是妄自没有求证的猜测就下定论,并一棍子打死,还不允许其它人也相信.2 口是心非型:心里面还是相信有某种力量能够支配人生,甚至还会经常拿着彩票的轨迹图天天…

@keyframes中translate和scale混用问题

当你动画的这个节点用到translate定位居中时&#xff0c;再使用动画scale就会出现不居中的问题 这时需要把keyframes中translate写在scale的前面就解决了 keyframes bubble-in {0% {transform:translateX(-50%) scale(0);}100% {transform:translateX(-50%) scale(1);} }

导入 IMP

Oracle 的导入实用程序 (Import utility) 允许从数据库提取数据&#xff0c;并且将数据写入操作系统文件。 imp 使用的基本格式&#xff1a; imp[username[/password[service]]] &#xff0c;以下例举 imp 常用用法。 1. 获取帮助 imp helpy 2. 导入一个完整数据库 imp sy…

Vue基础之组件

什么是组件&#xff1f; 组件&#xff08;Component&#xff09;是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素&#xff0c;封装可重用的代码。在较高层面上&#xff0c;组件是自定义元素&#xff0c; Vue.js 的编译器为它添加特殊功能。在有些情况下&#xff0c;组件也…

sql 保留小数

select ROUND(12.555, 2) --12.560 select cast(12.5550 as decimal(10,2)) --12.56 转载于:https://www.cnblogs.com/kedarui/p/3791337.html

React开发(105):没有定义变量报错

const { pageIndex, pageSize, selectTabVal, sortModel } this.state;

常用的前端JavaScript方法封装(49种)

1、输入一个值&#xff0c;返回其数据类型 function type(para) { return Object.prototype.toString.call(para) } 2、数组去重 function unique1(arr) { return […new Set(arr)] } function unique2(arr) { var obj {}; return arr.filter(ele > { if (!obj[ele]) { ob…

发一个flash+PHP的简单上传代码

示例文件1。Flash8:uploader.as--------------------------------------------------------------------------------import flash.net.FileReference; //调用上传控件&#xff0c;这个是必须的&#xff0c;要传文件就要用这个控件var frT…