jsp代码改变服务器为什么不重启,而servlet代码改变了,就需要重启呢

建一个web工程,里面有个login.jsp和LoginServlet.java,服务器为Tomcat,Tomcat中server.xml配置中的<Context>标签中设置为 reloadable="true"。启动服务器,然后修改一下LoginServlet.java文件,保存,过一会,服务器重启了,然后在修改一下login.jsp文件,保存,服务器就不重启。这个原理是什么呢?
--------------------------------------------------------------------------------------------------
看这段代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>test</title>
</head>
<body>
<%
java.util.Date d = new java.util.Date();
out.println(d);
//out.println(d);
//out.println(d);
%>
</body>
</html>
如果把注释部分去掉保存,服务器也没有重启。

因为servlet代码是要通过编译转换成html代码的....
在服务器 启动的时候进行编译的.....
所以改变了以后需要重新启动服务器叫代码重新编译成html代码给浏览器识别...
因为JAVA代码是要通过编译转换成HTML代码的....是在服务器启动的时候进行编译的....所以 改了JAVA代码需要重启....而jsp文件中的代码是不需要编译的....因为网页能识别标记语言....JAVA文件里面的语言识别不了...所以要重新编译...
具体的你可以看你的项目...放在TOMCAT下没有运行的时候
\WebRoot\WEB-INF\classes\里面有什么...启动你的项目以后
你再看看 \WebRoot\WEB-INF\classes\里面有什么.....
里面的 .class文件应该是在编译的时候产生的....所有 .java文件改变了
都要重启服务器然后才能生成新的 .class文件...
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-11-25
  原因是浏览器是不能直接识别servlet的,需要把servlet转换成html代码才可以识别及显示。
  如果servlet发生改变,但没有重启服务器,服务器只能识别修改前转换的html代码,所以改变了以后需要重新启动服务器叫代码重新编译成html代码给浏览器识别。
第2个回答  2010-03-20
这个要看WEB服务器的设置。
服务器的重新载入功能默认是关闭的。
Servelet被请求时检查该Servlet相对应的类文件的修改日期,重新载入那些类文件发生改变的servlet。在部署环境下,这对性能有影响所以默认是关闭的。然而如果不开启这个选项,那么对于已经载入到内存中的Servlet,每次重新编译之后,都得重新启动服务器或者重新载入WEB应用
第3个回答  2010-03-20
Java和Jsp代码改变一般不重启。
重启是因为配置文件改变了,需要重新加载。

jsp代码改变服务器为什么不重启
jsp是浏览器端的,不需要在服务器上运行。而serverlet是运行在服务器端的,所以改变后需重启服务器。

jsp修改以后为什么不需要重启服务器
而jsp是web服务器进行编译。加载时当场编译的,而不是预先编译好,tomcat可以设置为监视jsp文件的改动,改动之后则重新编译、执行。所以jsp是改动时,不需要重启服务器。

修改Servlet后不生效,重启Eclipse后才生效,如何解决呢?
原因是浏览器是不能直接识别servlet的,需要把servlet转换成html代码才可以识别及显示。如果servlet发生改变,但没有重启服务器,服务器只能识别修改前转换的html代码,所以改变了以后需要重新启动服务器叫代码重新编译成html代码给浏览器识别。

为什么在eclipse中修改JSP后tomcat自动重启?
Tomcat会每隔一段时间查询jsp的版本是否一致,自动加载,所以修改jsp后,tomcat会自动重启,不用用户重新发布工程。Tomcat启动后class文件会接受请求加载到JVM中。而对JSP第一次请求时,会先编码成对应的.class文件加载进来。以后每一次请求Tomcat容器要检查Jsp的版本,如果与前一次不一样,则会自动再次编码并...

jsp文件需要编译吗?
jsp需要编译成exe文件吗不需要。jsp不需要编译,因为修改jsp之后,不需要重启,页面能立马生效。所谓jsp即JavaServerJages即Java服务器界面,是一种动态的网页开发技术,通过使用JSP标签在HTML中插入JAVA代码,并由JSP引擎进行编译执行之后,然后将整个生成的页面返回到客户端。jsp文件需要编译吗?如果需要,...

myeclipse编写的jsp程序与tomcat不能同步更新的问题?
如果修改的是JSP页面的话...是不需要重启Tomcat的...如果修改的是配置文件是话是要重启Tomcat的...如果你修改了JSP页面没有重启Tomcat刷新页面后显示的还是以前的页面的 话...说明你的JSP页面没有自动编译...请删除Tomcat\\work里面的所有信息然 后再去加载...运行...这样就可以了...讲了这么多,...

每次对jsp的请求都要将jsp转换为servlet吗?
在编译过程中,JSP引擎会检查JSP页面中是否存在脚本元素,并将它们转换为Java代码。然后,这个Java类会被JVM解释执行,生成动态内容,并最终以HTML格式返回给客户端浏览器。简而言之,每次对JSP的请求都要将其转换为Servlet,这是因为JSP本身不具备直接执行服务器端代码的能力。通过将JSP源代码转换为Servlet...

jsp和servlet有什么用(servlet和jsp)
Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。 2.JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封...

JSP页面中为什么不能及时得到servlet中保存在session中的值而在servlet...
验证码的使用,最好是使用ajax请求,而不要是一般的java ee 的request请或其它请求,那样的话很容易造成延时,而晚些才能取到已经设置到sesson中的attribute,提醒一下:就算是ajax请求也有一些时候会验证取出延误,但这种时候很少,我前两个月也是刚用验证码做了个东西,希望对你有帮助。

jsp换到测试环境怎么就不起作用了
在这种技术中你可以将Java代码嵌入到HTML文件,服务器将自动为页面创建一个 servlet。 JSP被认为是一种写servlet的简易方式。所有HTML可以直接得到而不必通过out.println()调用,而负责页面内容的人员可以直接修改HTML而不必冒破坏Java代码的风险。但是,让页面美术设计师和开发人员在同一文件上工作并不理想...

相似回答