『壹』 javaweb编程时,通过request向前端传递数据时,前端总是无法获得正确的数据,求助,谢谢。
我觉得你应该把你的sendToServerOfGetLabels这个方法贴出来看一下。后台的那些方法只要返回回页面的部分就答行了。
很显然你的程序不会实现你预期的效果的:
你在后台用rdt.forward的方式返回到main.jsp页面,每次返回的时候页面会被重新加载,页面重新加载的时候肯定数据都是初始化的时候的数据啊。页面整体都被刷新了一下也。
你应该用ajax返回数据的方式来返回啊。用将信息通过json的方式返回sendToServerOfGetLabels这个方法里面,然后在这个方法里面对相应的值进行抽取,放到想要的位置就行了。而不是直接返回到页面,返回到页面之后,你的那个定时器就没有意义了。
『贰』 ie11 js修正后,如何确保jsp每次都加载最新
IE浏览器自动加载修改后的js文件或者jsp文件原理不同。
1、热部署jsp:
Tomcat jsp热部署的实现原理大体是这样的,每个JSP页面从上次访问到下次访问总是有默认几秒的缓存时间的,也就说并不是严格的即修改即生效,tocmat7默认是有4秒的缓存延迟的。这个默认的缓存延迟是在类EmbeddedServletOptions的private intmodificationTestInterval = 4;这个属性定义的。如果过了4秒缓存时间即失效,这个时候tomcat就会读取jsp的modified时间戳和work目录下编译好的class文件的modified的时间戳作对比。如果相等则class文件没有过期,则不会重新编译jsp文件,如果过期了则重新将jsp编译成java,并进一步编译成class。同时调用JasperLoader来重新加载这个有jsp编译好的class文件。
2、js修改后需要在后面加版本号才能自动加载
定义时间戳:
public final static SYSTEM_STARUP_TIME = System.currentTimeMillis();
比如<script type="text/javascript" src="/js/2011/oschina.js?<%=SYSTEM_STARUP_TIME %>"></script>
『叁』 为什么修改jsp不需要重启服务器
就一句话
启动时加载后不变和启动后修改可以重新解析!!
下面是说明:
javaBean和Servlet需要事先编译好 因为web服务器只负责使用classes而不编译classes,然后在服务器启动的时候就加载,也就是说在服务器没有重启以前这些加载好了的classes是不会发生变化的,要让这些classes的改变生效的话只有重启服务器重新加载,其实也就是classes的更新了.
以上理解为要用新的就要重新加载!!
而jsp页面是由web服务器负责解析的,你每次改了jsp页面以后是要保存后刷新的,而刷新的作用就是告诉web服务器重新解析,只有在web服务器启动的时候才可以解析!!,但与是否重启服务器无关,因为就算你重启服务器,它解析jsp的方式也是那样,是实现好了的,不会改变!你只要用他解析jsp也就好了.
以上理解为要用新的只要重新解析!!
最好的理解方式是什么呢??
你可以把jsp页面的"保存"对等与Servlet的加载,因为保存后在你不修改以前不发生变化
而加载后在你不重启服务器以前不发生变化
但是我的在我的印象中是不管使用什么服务器都是这个原理,也就是与服务器无关!!!
『肆』 jsp多个页面利用同一个导航 这个导航每次切换的时候都会重新加载吗
这个肯定会啊,每次都是一个新的请求啊,就像刷新页面也会重新加载啊,除非你做内了缓存。
jsp的include动作容有两种,它们主要是为一个页面导入一个固定的模块页面;
第一种:<jsp:include page=" "/>,其中page属性中加要导入模板页的名称,加后缀
第二种:<@ include file=" "/>,file与page一样;
两者最大的区别是:第一种中主要是导入动态的页面(即JSP),即程序运行时根据不同应用,该模板页也随着变化;第二种主要是导入静态页面(html),就是不管程序怎么运行,只要访问该页面时它的模板页都不变化,当然也可以导入一个不变化的JSP页面,但是最好还是按照静态用file,动态用page。
『伍』 JSP页面。突然间页面就处于加载中。重装浏览器,或者重新安装JAVA虚拟机都不可以解决。用的是IE6和360
是你自己写的JSP么?那你要检查一下了,有几种可能:
1.检查一下你的程序中是否有死循环
2.如果你的程序有链接数据库的话,那要检查一下SQL语句是否有检索不到索引这类问题
关于浏览器,我觉得应该不会是问题的原因,因为对于jsp来说,java程序都是由JVM来解析的,浏览器只是展示HTML和解析js的,所以好好检查下程序吧。
希望我的回答能帮助到你
那你检查一下浏览器设置吧,我估计是你浏览器禁用了js脚本了
Internet属性--安全--自定义级别--活动脚本要“启用”
Internet属性--高级里面
禁止脚本调试 钩
显示每个脚本错误的通知 钩
显示友好的HTTP错误信息 不钩
试试吧~
『陆』 用jsp,HTML做了一个网站,当我点到其他页面在返回网站首页时候就提示用户不存在,因为我的网
搂主的问题是不是在用户第一次访问一个动态页面的时候将该动态页面保存为一个静态页面,当有用户再次访问该动态页面时只需要将保存的静态页面展示给用户即可.这样可以减少服务器解释jsp代码的次数.1、编写一个实现Filter接口的类,这个类命名为CacheFilter.java2、修改web.xml添加CacheFilter的配置参数,将jsp的过滤类指向CacheFilter类。3、在CacheFilter类中获取请求,如果请求为需要缓存页面,首先先判断是否被缓存过,如果没有被缓存过便将请求的页面保存为静态页面文件。最后从文件中读取静态页面并写入请求的响应里。重复本次操作进行其它页面的缓存。原理如上所诉,很简单为了方便,在实现中使用了网上的jspbook包,对包中的程序进行了修改,具体实现步骤如下:1、下载jspbook包,地址:/onjava/2003/11/19/examples/jspbook.zip2、解压缩jspbook包,修改CacheFilter类和CacheResponseWrapper类。CacheFilter类69行:name=name.substring(0,name.lastIndexOf("/")==-1?0:name.lastIndexOf("/"));改为:Stringfilesp=System.getProperty("file.separator");name=name.substring(0,name.lastIndexOf(filesp)==-1?0:name.lastIndexOf(filesp));//修改获得系统文件夹符号(源程序作者应该是外国人没有考虑中文符号)75行:wrappedResponse.flushBuffer();//增加强制刷新CacheResponseWrapper类35行:stream.flush();改为:writer.flush();3、建立动态web项目,建立com.jspbook包,将修改好的jspbook包中的类加入该包下面4、将jspbook包中的jsp文件拷入web目录下5、修改web.xml文件,下面是我写的项目的配置文件,请重点看带filter的标签JSP2HTMLindex.htmlindex.htmindex.jspdefault.htmldefault.htmdefault.jspCacheFiltercom.jspbook.CacheFilter/TimeMonger.jspnocache/TestCache.-sensitivetrueCacheFilter/news.jsp-->CacheFilter*.jsp6、配置web环境,运行web应用,你会发现由于TestCache.jsp和TimeMonger.jsp被配置成为nocache所以每次都回被重新加载。/TimeMonger.jspnocache其它的jsp页面会被保存成为静态文件,然后将静态文件返回给请求的响应。CacheFilter*.jsp具体的缓存保存路径,请查找CacheFilter类中53行的Stringtemp=tempDir.getAbsolutePath();以上代码已经执行通过,如有问题请留言