我们可以将 JSP 看作 Java Servlet的一种扩展,在使用时 JSP 必须被编译为 Servlet,也就是 Java 类,然后才能调用执行,Servlet 所产生的 Web 页面不能包含在 HTML 标签中。JSP 的应用特点如下。

1. 实现跨平台操作

JSP 技术的最大特点是其编写的代码与设计平台完全无关,用户可以将在任何平台上编写的 JSP 页面拿来在任何 Web 服务器或 Web 应用服务器上运行,然后通过任何 Web 浏览器访问。

除此之外,JSP 还可以在任何平台上建立服务器组件,在任何服务器上运行程序。从 JSP 的这个特点可以看出,应用程序开发者只要在自己选用的任意平台上编写 Web 页面,就可以将编写好的页面放在任意服务器上运行,当需要对页面进行修改时,也无须考虑开发运行平台。

JSP 页面的内置脚本语言是基于 Java 编程语言的,因此,JSP 页面都要被编译为 Servlet。

2. 可重复使用组件

JSP 页面依赖于可重用的、跨平台的组件来执行应用程序中所要求的更为复杂的处理。基于组件的方法的特点是:能够提高总体开发过程的效率,使得各种组织在他们现有优点的基础上得到更好的优化处理。

开发人员能够共享并且交换执行普通操作的组件,这些组件除了可以将网页的设计与逻辑程序的设计分离以节约开发时间,还可以充分利用 Java 以及其他脚本语言的跨平台的能力及其灵活性。

3. 标记简化的语言

标准的 JSP 标记可以访问和实例化JavaBean组件,并且可以设置或检索组件属性,以及下载Applet,执行用其他方法更难以编码和耗时的功能。

JSP技术可以将许多功能封装起 来,在进行Web页面开发时,利用这些封装的功能就可以方便地使用与JSP相关的XML 标记进行动态内容的生成。

4. 实现应用程序与页面显示的分离化

应用程序与页面显示的分离化可以使 Web 页面的设计者和管理人员能够互不影响地编辑和使用 JSP 页面,而不影响其内容的生成。

Web 页面的开发人员可以利用 HTML 或 XML 标记来设计和格式化最终页面,而利用 JSP 标记或 Scriptlet 来生成页面上的动态内容。生成的内容被封装在标记和 JavaBean 组件中,并将它们捆绑在 Scriptlet中,使得所有的脚本程序都运行在服务器端。

通常,在服务器端由 JSP 引擎解释 JSP 标记和 Scriptlet,生成所请求的内容,同时,将结果以 HTML 或者 XML 页面的形式发送回浏览器。这样做,不但可以对程序代码进行保密,又可以保证任何基于 HTML 的 Web 浏览器的跨平台使用。

与 Servlet 相比,JSP 可以提供所有 Servlet 的功能,比使用 println 编写和修改 HTML 更方便。

提示:

JSP 还可以更明确地进行分工,Web 页面的设计人员编写 HTML 时,只需要留出地方让 Servlet 程序员插入动态部分就可以了。

在编写 JSP 程序时,要了解它的执行顺序,JSP 的执行流程如图 1 所示。首先,客户端向 Web 服务器提出请求,然后 JSP 引擎负责将页面转化为 Servlet,此 Servlet 经过虚拟机编译生成类文件,然后再把类文件加载到内存中执行。最后,由服务器将处理结果返回给客户端。

图1 JSP的执行流程

提示:

JSP 页面代码会被编译成 Servlet 代码,执行效率没有 Servlet 快,但并不是每一次都需要编译 JSP 页面。当 JSP 第一次被编译成类文件后,重复调用该 JSP 页面时,若 JSP 引擎发现该 JSP 页面没有被改动过,那么会直接使用编译后的类文件而不会再次编译成新的 Servlet。当然,如果页面被修改后,则需要重新加载和编译。

JSP的特点与工作流程相关推荐

  1. Struts2的工作流程

    Struts2与WebWork的工作方式类似,它同样使用了拦截器作为其处理用户请求的控制器.在Struts2中有一个核心控制器FilterDispatcher,这个核心控制器相当于Struts1的Ac ...

  2. java mvc模式工作流程_SpringMVC的简介和工作流程

    一.简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.Spri ...

  3. 【面试题】struts2的工作流程

    [面试题]struts2的工作流程 struts2框架本身大致可以分为3个部分: 核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 核心控制器Filte ...

  4. 【struts2】struts2工作流程

    一.struts2的线程安全 struts1中的所有Action都只有一个实例,该Action实例会被反复使用.JavaWeb都是使用线程来处理用户请求(request)的,一次请求对应一个处理线程. ...

  5. Struts2的工作原理及工作流程

    众所周知,Struts2是个非常优秀的开源框架,我们能用Struts2框架进行开发,同时能 快速搭建好一个Struts2框架,但我们是否能把Struts2框架的工作原理用语言表达清楚,你表达的原理不需 ...

  6. java什么是工作流程_springmvc工作流程是什么

    springmvc工作流程是什么: 1.springmvc工作原理图 2.springmvc工作流程 1. 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中 ...

  7. springmvc工作流程_SpringMVC工作原理

    买了好多书,但是没有一本是看完的,这是看完的第一本书,虽然页数不多.技术早就用了老多遍了,还是总结一下吧! 一.MVC模式 MVC是 model.view.和controller的缩写,分别代表web ...

  8. springmvc工作流程_springMVC工作原理及流程详细讲解

    简述 本文主要介绍springMVC工作原理. 工作原理 客户端发送HTTP请求,DispatcherServlet控制器拦截到请求,调用HandlerMapping 解析请求对应的Handler,H ...

  9. 学习Struts框架系列(一):模拟Struts工作流程

    进入j2ee的学习,听到了不少框架,可谓百家争鸣,框架对基本的操作进行了封装,如果不懂得实现原理,尽管可以配配文件,让网站跑起来,但未免有时一头雾水,不知其因,所以想要明白其理,甚至灵活运用,必须对框 ...

最新文章

  1. 71张图详解IP 地址、IP 路由、分片和重组、三层转发、ARP、ICMP
  2. Maven 发布到本地仓库
  3. centos 安装PHP7并且与其他版本共存并且为PHP7安装redis扩展
  4. 爬虫 spider11——搭建分布式架构通过feign技术,开发服务消费者
  5. 30%企业定位平台型,不会出现类似BAT巨头
  6. 一元二次方程python脚本_Python实现求解一元二次方程的方法示例
  7. mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数
  8. 超9000万LoRa节点,全球物联网的事实标准已形成?
  9. 中文信息处理(四)—— 神经网络基础
  10. “我不是个优秀的 Web 开发人员,我只是擅长搜索谷歌”
  11. linux awk 时间范围,如何用awk从日志文件中找到时间范围的记录
  12. 基于STM32的录音与播音
  13. 没学历,如何成为一名优秀的Java程序员
  14. 非满管电磁流量计测量平均流速
  15. 语音社交系统源码中实时音频常见问题分析和解决:延时和抖动
  16. Windows10键盘快捷键大全
  17. 磁盘分区之MSDOS与GPT
  18. 使用GCD 转自 Posted by 唐巧
  19. MSYS是什么,他与CYGWIN有什么区别?
  20. 非易失内存技术NVDIMM

热门文章

  1. c语言随机数毫秒变化,C语言随机数生成
  2. linux内核sock_sendmsg,为什么linux中sendto函数中的msg.msg_iovlen=1;
  3. AutoCAD2005软件下载AutoCAD2005安装教程(中文版)
  4. Ubuntu 13.04搭建J2EE开发环境
  5. 网新恒天2011 9 21招聘会笔试题
  6. Django学习系列之五:Django 的模板的render替换render_to_string用法及templates模板查找路径顺序
  7. 2022年计算机二级考试C++语言程序设计冲刺试题及答案
  8. MATLAB GUI设计 多个选项卡/子页面
  9. 大唐杯学习笔记(2)—— 5G网络频谱划分与应用
  10. 售后服务的基本流程有哪些