jsp工作原理(jsp的执行过程是怎样的)

2023-09-23 21:20:07 61

jsp工作原理(jsp的执行过程是怎样的)

本文目录

jsp的执行过程是怎样的

JSP的执行过程

JSP的执行过程主要可以分为以下几点:

客户端发出请求。

Web容器将JSP转译成Servlet源代码。

Web容器将产生的源代码进行编译。

Web容器加载编译后的代码并执行。

把执行结果响应至客户端。

过程介绍

客户端发出请求,请求为JSP,web容器就会找出相应的servlet进行处理。

将servlet转成字节码文件。

将字节码文件加载到web容器里。

这时会在web容器里建立实例。

进行初始化。

通过service接受请求。

然后web容器会自动产生两个对象servlet和service最后进行销毁。

扩展资料:

JSP的运行原理

WEB容器(Servlet引擎)接收到以。jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。

每个JSP页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。

Tomcat 5.x把为JSP页面创建的Servlet源文件和class类文件放置在“《TOMCAT_HOME》\work\Catalina\《主机名》\《应用程序名》\”目录中,

Tomcat将JSP页面翻译成的Servlet的包名为org.apache.jsp.《JSP页面在WEB应用程序内的目录名》。

JSP规范也没有明确要求JSP中的脚本程序代码必须采用Java语言,JSP中的脚本程序代码可以采用Java语言之外的其他脚本语言来编写,但是,JSP页面最终必须转换成Java Servlet程序。

可以在WEB应用程序正式发布之前,将其中的所有JSP页面预先编译成Servlet程序。

参考资料:

百度百科——JSP(java服务器页面)

简述jsp 工作原理

客户访问这个页面的时候,只要该文件没有发生过更改,JSP引擎就直接调用已经装载的Servlet。如果已经做过修改的话,那就会再次执行以上过程,翻译、编译并装载。其实这就是所谓的“第一人惩罚”。因为首次访问的时候要执行一系列以上的过程,所以会耗费一些时间;以后的访问就不会这样了。jsp是由servlet发展过来的,你应该知道jsp主要是用来做页面显示的,早期jsp没出现之前servlet担当这一角色,servlet编写前端页面时非常繁琐效率低的,jsp实在servlet的基础上做了一层封装,更倾向于表现层,现在的servlet更倾向于业务逻辑层,这样做的目的也就是分层.把业务层和表现层的代码分离开来,便于开发和维护.jsp在运行的第一次速度会比较慢,因为第一次他需要编译成servlet的文件,实际上你运行的就是一个jsp翻译过来的servlet.

jsp的工作原理是什么

JSP工作原理 原创2019-03-04 14:01:10 2点赞 lmm0513 码龄3年关注1. 当用户访问一个JSP页面时,会向一个Servlet容器(Tomcat等)发出请求;2. 如果页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为class文件(test.class文件);这种过程(编译)会耗费时间3. JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求;如果用户有多个请求,则容器会建立多个线程处理多个请求;4. 容器执行字节码文件(包括调用的servlet:formprocessor.java字节码),并将其结果返回到客户端;(返回的最终方式是有servlet输出html格式的文件流)写评论 评论22分享

简述JSP运行原理

SP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。

标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。

扩展资料:

特点

1、能以模板化的方式简单、高效地添加动态网页内容。

2、可利用JavaBean和标签库技术复用常用的功能代码(设计好的组件容易实现重复利用,减少重复劳动)。标签库不仅带有通用的内置标签(JSTL),而且支持可扩展功能的自定义标签。

3、有良好的工具支持。

4、继承了Java语言的相对易用性。

5、继承了Java的跨平台优势,实现“一次编写,处处运行”。因为支持Java及其相关技术的开发平台多,网站开发人员可以选择在最适合自己的系统平台上进行JSP开发;不同环境下开发的JSP项目,在所有客户端上都能顺利访问。

6、页面中的动(控制变动内容的部分)/静(内容不需变动的部分)区域以分散但又有序的形式组合在一起,能使人更直观地看出页面代码的整体结构,也使得设计页面效果和程序逻辑这2部分工作容易分离(外观视图与逻辑分离)。从而方便分配人员并发挥各自长处,实现高效地分工合作。

7、可与其它企业级Java技术相互配合。JSP可以只专门负责页面中的数据呈现,实现分层开发。

JSP的原理是什么和Servlet的区别是什么

jsp经过编译之后就是servlet,这个servlet你可以查找到,某种程度上说jsp就是servlet,实际上jsp出现只是很好的与html的代码结合,更多的是用来编写前台的页面,所以jsp中要尽量没有java的代码片段

jsp引擎是什么是什么工作原理

1、JSP引擎: 执行JSP代码需要在服务器上安装JSP引擎,比较常见的引擎有WebLogic和Tomcat。把这些支持JSP的web服务器配置好后。就可以再客户端通过浏览器来访问JSP页面了. 2、JSP引擎的工作原理 当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤: (1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序 (2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class (3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端 以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。

Tomcat中JSP引擎工作原理

JSP运行环境:执行JSP代码需要在服务器上安装JSP引擎,比较常见的引擎有WebLogic和Tomcat。把这些支持JSP的web服务器配置好后。就可以再客户端通过浏览器来访问JSP页面了。默认端口一般是7001.JSP生命周期:JSP处理请求的方法就是把这些请求都统一看做Servlet。由于这个原因,JSP的很多功能和生命周期,都由Java Servlet技术标准定义的。这种限制,在动态内容方面更加明显。所以学习JSP的时候,需要温习Servlet的内容和标准。JSP网络应用服务器框架:在符合J2EE规范的服务器构建起来之后,就可以编写JSP页面了,在HTML页面中嵌入JSP脚本,该页面就成为JSP页面了。JSP脚本用特定的标记括起来,如《%...%》,或者《JSP》…《/JSP》。JSP的工作流程如下:当其读到HTML的代码的时候,就直接输出到客户端,而如果读到嵌入JSP脚本的时候,就需要对这些脚本进行另外的翻译和处理,得到输出之后再输出到客户端。下面通过一个简单页面编写来了解JSP网络应用的框架:1.JSP客户端交互JSP的大部分工作就是与客户端进行交互。客户端一般指的是浏览器,它们与置于服务器端得JSP页面进行交互。JSP脚本中所有的Java语句都是在服务器执行,服务器接受客户端提交的请求,通过一定的处理之后,将结果返回给客户端,客户端得到的仅仅是HTML代码。下面是一个JSP的HelloWorld程序代码:《html》 《head》 《title》HelloWorld for JSP《/title》 《/head》 《body》 《h1》HelloWord for JSP《/h1》 《%out.println(“《h3》Hello World!《/h3》“);%》 《/body》 《/html》 2.交互过程的流程在一般的客户端和服务器端的交互中,是用HTTP协议,客户端通过下面4个步骤也服务器段进行交互:(1)客户端和服务器端建立连接(2)发送客户端请求(3)服务器返回应答给客户(4)客户端关闭连接所有的请求都是由客户端主动发出的,而服务器一直出于被动的监听状态。用户在浏览器键入要访问的地址,按回车键确认后,浏览器开始与服务器建立连接,从这时开始,就开始了一次交互过程。浏览器通过一段时间的等待后,从服务器得到响应,并且把相应的信息以HTML方式呈现给用户。用户在浏览网站的过程中,实际上包含了很多这样的交互应答过程。在客户端与JSP页面的交互过程中,只有服务器接收请求和返回应答的动作可能不一样,其他与上面过程基本一致。基本情况如下:(1)服务器在收到一个请求后首先要分析这个请求,如果请求的页面只是一般的HTML页面,服务器就直接读出HTML页面并返回给客户端(2)如果客户端请求的是JSP页面,服务器调用JSP引擎翻译处理所请求的JSP页面,并将翻译和处理之后的HTML返回给客户端(3)如果遇到JavaBeans组件,JSP引擎将调用相应的JavaBeans组件,得到JavaBeans的返回值,最后返回给JSP页面3.JSP引擎的工作原理当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:(1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序(2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class(3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。4.对请求信息的处理在大部分的交互过程中,一个JSP页面首先对用户提出的请求进行分析,然后从请求中得到有用的数据,比如接收用户提交的数据或者请求的方法,然后进行相应的处理。而这就需要了解得到传入参数的方法和得到用户其他信息的方法。(1)得到传入参数的方法在交互过程中,服务器必须从客户端得到一些数据,来帮助处理过程的进行。这些数据包括用户身份验证数据(如用户名、密码等)以及其他中要信息。而这些数据的载体,就是用户提交的请求。请求的组成主要有两部分,一是头信息。头信息包含了以下信息:请求的方法(GET和POST)、请求的URL和浏览器信息。其他信息包含了一些数据信息。首先要了解的是GET方法发送请求时,这种方法是客户端用来向服务器段请求信息的,所以在请求中不包含信息体。用户只能把请求的内容作为参数附加在URL后面进行发送,参数之间用“&”符号隔开,如代码:一个典型的GET请求的表单get.html《html》 《head》 《title》Get《/title》 《/head》 《body》 《h1》Get Method《/h1》 《form action = “submit.jsp“ method = “GET“》 username《input name = “uername“ value = “aaa“》《br》 password《inpput type = password name = “password“ value = “111111“》《br》 《input type = submit value = “submit“》 《/form》 《/body》 《/html》 (代码中有一个表单,表单在定义的时候,定义了属性method=“GET”,这表明表单提交的方法是GET。这个表单向服务器提交两个参数,其中一个是username,缺省值为aaa,另外一个是password,其缺省值是111111。)这个页面只是得到了输入数据,只有submit.JSP才能实现提交这个页面的数据。这就是需要用到JSP了,代码如下:submit.JSP《html》 《head》 《title》submit《/title》 《/head》 《body》 《h1》submit《/h1》 request method:《%=request.getMethod() %》《br》 user name:《%=request.getParameter(“user“) %》《br》 password:《%=request.getParameter(“password“) %》《br》 《/body》 《/html》 在这个JSP页面中是用了JSP的内置对象request的两个方法,一个是getMethod,用来获取当前请求的类型,另一个是getParameter,用来获取指定参数的值。在get.html中单击submit按钮,就可以显示表单请求方法,用户名以及密码等信息。(2)得到其他信息的方法得到非用户输入的其他参数信息,就需要用到其他的方法。如下所示是一个得到客户端信息的简单程序。根据这个程序我们可以初步了解如何得到客户端信息的大致思路。代码如下:《html》 《head》 《title》得到消息《/title》 《/head》 《body》 《h1》请求中所包含的URL《/h1》《br》 《%=request.getQueryString()%》《br》 《/body》 《/html》

JSP运行原理什么

1、当用户访问一个JSP页面时,会向一个Servlet容器(Tomcat等)发出请求;

2、如果页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为class文件(test.class文件);这种过程(编译)会耗费时间

3、JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求;如果用户有多个请求,则容器会建立多个线程处理多个请求;

4、容器执行字节码文件(包括调用的servlet:formprocessor.java字节码),并将其结果返回到客户端(返回的最终方式是有servlet输出html格式的文件流)。

扩展资料:

语言优点:

1、一次编写,到处运行。除了系统之外,代码不用做任何更改。

2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。

3、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。

4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

5、支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。

参考资料来源:百度百科--JSP

jsp工作原理(jsp的执行过程是怎样的)

本文编辑:admin

更多文章:


jquery设置select选中(jquery怎么根据value来动态选中select下的option)

jquery设置select选中(jquery怎么根据value来动态选中select下的option)

各位老铁们,大家好,今天由我来为大家分享jquery设置select选中,以及jquery怎么根据value来动态选中select下的option的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大

2024年7月13日 01:01

fished out(fish out的用法fish out是不是捕捞的意思每天捕捞鱼能用fish out这短语吗怎么用英文说)

fished out(fish out的用法fish out是不是捕捞的意思每天捕捞鱼能用fish out这短语吗怎么用英文说)

大家好,今天小编来为大家解答以下的问题,关于fished out,fish out的用法fish out是不是捕捞的意思每天捕捞鱼能用fish out这短语吗怎么用英文说这个很多人还不知道,现在让我们一起来看看吧!本文目录fish out的

2024年8月27日 17:05

nginx负载均衡数据库(nginx负载均衡怎么访问数据库)

nginx负载均衡数据库(nginx负载均衡怎么访问数据库)

本文目录nginx负载均衡怎么访问数据库nginx如何实现负载均衡、限流、缓存、黑白名单和灰度发布用nginx负载均衡,提高并发Nginx支持TCP代理和负载均衡-stream模块nginx负载均衡怎么访问数据库  nginx 是一个轻量级

2024年7月22日 02:34

二选一抽签器在线(文殊灵签在线抽签)

二选一抽签器在线(文殊灵签在线抽签)

大家好,如果您还对二选一抽签器在线不太了解,没有关系,今天就由本站为大家分享二选一抽签器在线的知识,包括文殊灵签在线抽签的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录文殊灵签在线抽签灵签在线抽签解签,观音灵签在线

2024年7月27日 14:50

用于字符串比较的库函数是(函数sstrcmp()的功能是对两个字符串进行比较)

用于字符串比较的库函数是(函数sstrcmp()的功能是对两个字符串进行比较)

本文目录函数sstrcmp()的功能是对两个字符串进行比较C语言若干题目求解if(!(strcmp(del_num,stu[i].num)))c语言方面的问题2编写一个自己的库函数strcmp(),用来实现实现两个字符串的比较函数sstrc

2024年7月24日 07:56

fancying(crazy、fancy是什么意思)

fancying(crazy、fancy是什么意思)

本文目录crazy、fancy是什么意思fancy 的ing形式是fancying 吗i fancy you是什么意思fancy用法是什么crazy、fancy是什么意思friend,请查收,望采纳,THx!!crazya.1. 疯狂的;

2024年4月6日 03:00

“按钮”的拼音怎么写?按钮和按钮哪个正确

“按钮”的拼音怎么写?按钮和按钮哪个正确

大家好,按钮按钮相信很多的网友都不是很明白,包括“按钮”的拼音怎么写也是一样,不过没有关系,接下来就来为大家分享关于按钮按钮和“按钮”的拼音怎么写的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目录“按钮”的拼音怎么

2024年8月18日 19:55

teamviewer(teamviewer和teamviewer host有什么区别求指教)

teamviewer(teamviewer和teamviewer host有什么区别求指教)

大家好,今天小编来为大家解答以下的问题,关于teamviewer,teamviewer和teamviewer host有什么区别求指教这个很多人还不知道,现在让我们一起来看看吧!本文目录teamviewer和teamviewer host有

2024年7月23日 09:33

简述for与foreach语句的区别(for in,for of, for,forEach,map的区别)

简述for与foreach语句的区别(for in,for of, for,forEach,map的区别)

本文目录for in,for of, for,forEach,map的区别php foreach和for的区别for in,for of, for,forEach,map的区别 最近一直有在面试,各种准备,博客,慕课网都成了常客,看了那么久

2024年7月12日 09:57

nginx停止和启动命令(重启nginx服务器用哪个指令比较好)

nginx停止和启动命令(重启nginx服务器用哪个指令比较好)

本文目录重启nginx服务器用哪个指令比较好nginx 问一下nginx常用命令重启nginx服务器用哪个指令比较好nginx -s reload :修改配置后重新加载生效nginx -s reopen :重新打开日志文件nginx -

2024年6月13日 12:58

潍坊少儿编程(潍坊瓦力工厂少儿编程专业吗价格怎么样!)

潍坊少儿编程(潍坊瓦力工厂少儿编程专业吗价格怎么样!)

本文目录潍坊瓦力工厂少儿编程专业吗价格怎么样!潍坊童程童美怎么样潍坊编程培训班哪家好潍坊少儿编程国际比赛获奖容易吗对孩子升学有帮助吗潍坊瓦力工厂少儿编程专业吗价格怎么样!潍坊瓦力工厂少儿编程还可以。学习少儿编程推荐选择童程童美童程童美少儿编

2024年7月24日 01:43

部署图显示代码本身的结构(用图形画出一个web程序部署在tomcat的基本目录结构)

部署图显示代码本身的结构(用图形画出一个web程序部署在tomcat的基本目录结构)

本文目录用图形画出一个web程序部署在tomcat的基本目录结构统一建模语言UML中用来反映代码的物理结构的是如何在gerrit 网站中 显示代码的目录结构组件图的创建用于显示运行的处理结点以及居于其上的构件、进程和对象的配置的图是 ( )

2024年3月15日 05:50

字符串数组内容交换(C语言,怎么将字符数组值互换)

字符串数组内容交换(C语言,怎么将字符数组值互换)

其实字符串数组内容交换的问题并不复杂,但是又很多的朋友都不太了解C语言,怎么将字符数组值互换,因此呢,今天小编就来为大家分享字符串数组内容交换的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录C语言,怎么将字符数组

2024年7月13日 07:10

conservative party(conservative什么意思)

conservative party(conservative什么意思)

本文目录conservative什么意思The Conservative Party is one of the ________ parties in Britainconservative什么意思conservative英 n.保守的人

2024年5月3日 09:53

java中相等怎么表示(java怎么比较两个字符串是否相等)

java中相等怎么表示(java怎么比较两个字符串是否相等)

本文目录java怎么比较两个字符串是否相等Java判断一个对象与其他多个是否相等有无简洁表达,如:if(a.equals(b)||a.equals(c)){}.java中用于两个数相等比较的运算符是java中如何判断两个变量相等java中怎

2024年6月15日 03:08

combox(combox绑定数据)

combox(combox绑定数据)

本文目录combox绑定数据C#中如何将combox中的下拉项和一个枚举中的各项进行绑定combox 的数据源为datatable 时,如何显示数据combox是什么vb如何链接comboxc#中,combox 怎么设置为不可编辑除了将dr

2024年7月3日 08:25

setinterval越来越快(setinterval速度重叠)

setinterval越来越快(setinterval速度重叠)

本文目录setinterval速度重叠鼠标移入时候clearInterval(),后,鼠标移出时候setInterval(),为什么越来越快在iframe中用setInterval定时刷新遇到的问题html图片无缝滚动鼠标在图片上移动时速度

2024年7月16日 17:48

今日全世界疫情排名一览表(世界大学排名一览表最新)

今日全世界疫情排名一览表(世界大学排名一览表最新)

本文目录世界大学排名一览表最新三年疫情猜一数字隆海集团世界排名多少中国十大名牌手表排名榜世界经济运行特点与变化的是全球十大军事武器排名世界名表排名前十名泰来大学世界排名上海的大学排名一览表世界大学排名一览表最新世界大学排名一览表最新介绍如下

2024年7月3日 10:13

数控css和rpm什么意思(数控车床操作键盘上26个字母,分别是什么意思啊)

数控css和rpm什么意思(数控车床操作键盘上26个字母,分别是什么意思啊)

大家好,今天小编来为大家解答以下的问题,关于数控css和rpm什么意思,数控车床操作键盘上26个字母,分别是什么意思啊这个很多人还不知道,现在让我们一起来看看吧!本文目录数控车床操作键盘上26个字母,分别是什么意思啊数控中工艺里的主轴的转数

2024年7月23日 12:25

json格式化工具有哪些(有哪些方法可以将JSON格式的数据集转化为EXCEL格式)

json格式化工具有哪些(有哪些方法可以将JSON格式的数据集转化为EXCEL格式)

本文目录有哪些方法可以将JSON格式的数据集转化为EXCEL格式bi报表软件有啥推荐的吗yaml,json,ini这三种格式用来做配置文件,优缺点各在哪里你极力推荐的Chrome扩展有哪些大家一般用什么工具测试HTTP和json接口有哪些方

2024年7月18日 04:18

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1155
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索