jsp修改以后为什么不需要重启服务器

jsp修改以后为什么不需要重启服务器,第1张

servlet和jsp本质都是servlet,运行时都是运行class文件。但是它们的部署方式不一样。
servlet是先编译后部署,修改完以后,MyEclipse进行编译,然后部署class文件到servlet容器中。如果web服务器已启动,则之前class已被servlet容器加载,可能修改后的class文件不会被servlet容器执行。
而jsp是web服务器进行编译。加载时当场编译的,而不是预先编译好,tomcat可以设置为监视jsp文件的改动,改动之后则重新编译、执行。所以jsp是改动时,不需要重启服务器。

工具/原料

已安装好eclipse软件

eclipse已经配置好tomcat

方法/步骤

1、点击File->New->Project,出现如图所示界面,选择Web->Dynamic Web Project,点击next

2、在Project name中填写工程名称,在target runtime中点击New runtime,选择自己安装的版本的tomcat,点击Finish

3、在左手边的Project Explorer中可以找到新建立的工程MyJsp,在工程中找到WebContent

4、右键WebContent,new->jsp file,出现如图所示窗口,在file name栏可以更改文件名,finish

5、然后就可以编写jsp文件了,需要注意的是,在生成的部分代码中,要将charset后的参数改成“utf-8”,否则显示中文会出现乱码

6、下面就可以写一些标签了,对此有兴趣的朋友可以学习一下html语言的相关知识

7、点击中间的绿色按钮即可运行

8、在出现的窗口中点击next,在接下来出现的窗口中将需要运行的jsp工程选到右边的窗口中

9、最后运行结果如图所示

就一句话
启动时加载后不变和启动后修改可以重新解析!!
下面是说明:
javaBean和Servlet需要事先编译好 因为web服务器只负责使用classes而不编译classes,然后在服务器启动的时候就加载,也就是说在服务器没有重启以前这些加载好了的classes是不会发生变化的,要让这些classes的改变生效的话只有重启服务器重新加载,其实也就是classes的更新了
以上理解为要用新的就要重新加载!!
而jsp页面是由web服务器负责解析的,你每次改了jsp页面以后是要保存后刷新的,而刷新的作用就是告诉web服务器重新解析,只有在web服务器启动的时候才可以解析!!,但与是否重启服务器无关,因为就算你重启服务器,它解析jsp的方式也是那样,是实现好了的,不会改变!你只要用他解析jsp也就好了
以上理解为要用新的只要重新解析!!
最好的理解方式是什么呢
你可以把jsp页面的"保存"对等与Servlet的加载,因为保存后在你不修改以前不发生变化
而加载后在你不重启服务器以前不发生变化
但是我的在我的印象中是不管使用什么服务器都是这个原理,也就是与服务器无关!!!

因为servlet代码是要通过编译转换成html代码的
在服务器 启动的时候进行编译的
所以改变了以后需要重新启动服务器叫代码重新编译成html代码给浏览器识别
因为JAVA代码是要通过编译转换成HTML代码的是在服务器启动的时候进行编译的所以 改了JAVA代码需要重启而jsp文件中的代码是不需要编译的因为网页能识别标记语言JAVA文件里面的语言识别不了所以要重新编译
具体的你可以看你的项目放在TOMCAT下没有运行的时候
\WebRoot\WEB-INF\classes\里面有什么启动你的项目以后
你再看看 \WebRoot\WEB-INF\classes\里面有什么
里面的 class文件应该是在编译的时候产生的所有 java文件改变了
都要重启服务器然后才能生成新的 class文件

     关于JSP页面的执行,有以下几个步骤:

创建jsp页面,将jsp页面部署在tomcat/webapps目录下或者tomcat/webapps子目录下,并且启动服务器;

当客户在第一次请求JSP页面时JSP Engine(JSP引擎)将JSP网页转译为Servlet,生成的文件保存在tomcat/work/Catalina/localhost下;

JSPC(jspc编译器)对转译生成的Servlet编译成Servletclass,文件和Servlet在同一个文件夹下;

由服务器访问Servletclass并且将对应内容响应给客户


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10599136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存