日期:2014-05-17  浏览次数:20809 次

JSP页面显示,加载 的原理。。。。。困惑
当客户第一次请求JSP页面时,JSP引擎会通过预处理把JSP文件中的静态数据(HTML文本)和动态数据(Java脚本)全部转换为 Java代码。这个转换工作实际上是非常直观的,对于HTML文本只是简单的用out.println()方法包裹起来,对于Java脚本只是保留或做简单的处理

也就是说 jsp/servlet(没改动)只编译一次,以后(动态数据)响应时是,如何显示的:我这样说对么“每次用out.print("<p>"+emp.ename+"</p>")将jsp整个都输出到前台”,还是如何? 如果不是页面上的数据如何变化的

jsp/servlet(没改动)只编译一次,,本来就是这样的。遇到一个人非说是每次编译。我讲不清楚。。请高人指点。。。

给出分析
讲清楚的给全分。。。。

------解决方案--------------------
每一个JSP都是一个对象,其实就是一个Servlet 他的解析都是交给Tomcat的,第一次解析的时候会进行编译,每一个JSP都会生成一个Java类以及编译后的class文件,这些文件都放在了Tomcat 6.0\work\Catalina\localhost\eqinfohb\org\apache\jsp这个路径下面(eqinfohb是你的工程),你要是感兴趣的话,你可以去看看最终JSP都编译成什么样了。
------解决方案--------------------
◎ 我这样说对么“每次用out.print("<p>"+emp.ename+"</p>")将jsp整个都输出到前台”,还是如何? 
—— 对,就是这样把整个HTML和动态生成的HTML写给浏览器。

◎ 遇到一个人非说是每次编译
—— 错,中间件没有那么蠢,中间件可以自动检测JSP文件是否更新过,如果更新过才会重新生成Servlet并编译Servlet对应的class;在生产环境,甚至可以关闭自动检测以提升性能。

------解决方案--------------------
探讨
很简单,从你访问的JSP数度你就可以发现,第一次加载很慢,后来就很快,你就知道重新编译没了;
如果你修改了JSP后有重新访问这时又重新访问, 意思就是在访问过程中如果文件没修改并重新访问jsp是不会重新编译的,要不然每次都编译那就惨了;
可以加我QQ1543150073

------解决方案--------------------
探讨
◎ 我这样说对么“每次用out.print("<p>"+emp.ename+"</p>")将jsp整个都输出到前台”,还是如何?
—— 对,就是这样把整个HTML和动态生成的HTML写给浏览器。

◎ 遇到一个人非说是每次编译
—— 错,中间件没有那么蠢,中间件可以自动检测JSP文件是否更新过,如果更新过才会重新生成Servlet并编译Servlet对应的class;在生产环境,甚至可以……