非高手免进!!! server.xml 中Context加上reloadable="true" 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 删掉tomcat的work目录,那个目录里面是编译的临时文件 有时候是缓存的问题1, 使用java提供的方法,在jsp或者servlet中都可以 <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); %> 2, 使用HTML标记,如下面: <HEAD> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="0"> 同意 fft123()删掉tomcat的work目录,那个目录里面是编译的临时文件 从Servlet的生命周期我们可以发现:如果没有在部署描述器(web.xml)中用不同参数多次加入同一个servlet,包容器(也就是Tomcat服务器)就只会给这个servlet创建一个实例(在包容器启动时,或响应第一个该servlet的请求时)并初始化它。以后所有关于此servlet的请求,都是这个实例分配的线程(主要是service()方法),也就是说只要请求的servlet在包容器中存在一个实例,那么包容器就不会重载这个servlet类,不管这个类是否已经更改了。一个被实例化的servlet实例,在包容器中一般是不会消亡的,这不像其他JVM中的类的实例。其实Tomcat的这种做法是很合理高效的,只是给我们的程序开发带来了一些不便。(对JSP问题的解答希望你自己能够证明,因为我自己也好像记不大清楚了,而现在又不能做实验)对JSP(JSP的实质还是servlet,所以这个观点也适合servlet)请求而言,服务器给的响应包括两部分,一部分是实体(Entity Body),这是该JSP的所有输出内容,另一部分就是响应头了,可在响应头(Response Header Field)中并不包括Last-Modified,也就是说即使该JSP的输出被缓存在客户机上,再次请求该JSP时的请求头(Request Header Field)中也不包括Last-Modified,而服务器也就必须再次请求该JSP,所以正常情况下服务器是不会给对该JSP的请求返回响应码304 Not Modified 的,而是再次重新执行JSP对应的servlet,并把输出返回(响应码200,这部分关于请求与响应的详细资料请参阅http://www.ietf.org/rfc/rfc2616.txt)。JSP所生成的servlet和servlet的生命周期一样,但却也有不同,就是服务器把对JSP的请求交给JSP引擎,JSP引擎会做出两个判断,1.JSP是否已经转换成servlet;2.JSP源文件是否已经被修改。这两点都可能导致JSP的编译或再编译,所以在一般情况下,JSP的改动将会导致JSP引擎对JSP重新编译而生成新的servlet。我所说的这两个判断,没有考虑JSP被web应用程序部署到servlet,即:<servlet> <servlet-name>JSPServlet</servlet-name> <page-file>jsp.file</page-file><!--对不起,这个标记我忘了,好像是这个吧--></servlet> 除了server.xml 中Context加上reloadable="true"之外,tomcat刷新类库需要点时间,注意tomcat的后台输出每次更新类之后,tomcat会出现提示,classload信息,表示类已更新,这是再访问,才生效 log4j的配置问题 共享今天面试遇见的两个JavaEE面试题 网页搜索结果关键词高亮显示的问题 关于struts的下拉框问题,急!!!!!! jsp 环境配置问题?新手 jspSmart.com关闭了,有谁知道还有哪里可以下载的,立即给分 可以捕捉Java.lang.NullPointerException 异常发生的时间么? WebService 问题求指点 【JSP/Beans】怎样从数据库中提取数据显示在JSP页面中? 为什么我的代码不能运行? 如何使用jspsmartupload 出售JSP主机
1, 使用java提供的方法,在jsp或者servlet中都可以
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
%>
2, 使用HTML标记,如下面:
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
删掉tomcat的work目录,那个目录里面是编译的临时文件
(对JSP问题的解答希望你自己能够证明,因为我自己也好像记不大清楚了,而现在又不能做实验)对JSP(JSP的实质还是servlet,所以这个观点也适合servlet)请求而言,服务器给的响应包括两部分,一部分是实体(Entity Body),这是该JSP的所有输出内容,另一部分就是响应头了,可在响应头(Response Header Field)中并不包括Last-Modified,也就是说即使该JSP的输出被缓存在客户机上,再次请求该JSP时的请求头(Request Header Field)中也不包括Last-Modified,而服务器也就必须再次请求该JSP,所以正常情况下服务器是不会给对该JSP的请求返回响应码304 Not Modified 的,而是再次重新执行JSP对应的servlet,并把输出返回(响应码200,这部分关于请求与响应的详细资料请参阅http://www.ietf.org/rfc/rfc2616.txt)。JSP所生成的servlet和servlet的生命周期一样,但却也有不同,就是服务器把对JSP的请求交给JSP引擎,JSP引擎会做出两个判断,1.JSP是否已经转换成servlet;2.JSP源文件是否已经被修改。这两点都可能导致JSP的编译或再编译,所以在一般情况下,JSP的改动将会导致JSP引擎对JSP重新编译而生成新的servlet。我所说的这两个判断,没有考虑JSP被web应用程序部署到servlet,即:
<servlet>
<servlet-name>JSPServlet</servlet-name>
<page-file>jsp.file</page-file><!--对不起,这个标记我忘了,好像是这个吧-->
</servlet>
server.xml 中Context加上reloadable="true"
之外,tomcat刷新类库需要点时间,注意tomcat的后台输出
每次更新类之后,tomcat会出现提示,classload信息,表示
类已更新,这是再访问,才生效