提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|其它|编辑:郝浩|2011-03-22 17:09:36.000|阅读 389 次
概述:很多人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成 Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
很多人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。
因此,除了第一次的编译会花较久的时间之外,之后JSP和Servlet的执行速度就几乎相同了。Web容器处理JSP文件请求的执行过程主要包括以下4个部分:
1.客户端发出Request请求
2.JSP Container 将JSP转译成Servlet的源代码
3.将产生的Servlet源代码经过编译后,并加载到内存执行
4.把结果Response(响应)至客户端
在执行JSP网页时,通常可以分为两个时期:转译时期(Translation Time)和请求时期(Request Time)。
◆转译时期:JSP网页转移成Servlet类。
◆请求时期:Servlet类执行后,响应结果至客户端。
转译期间做了两件事情:
◆转译时期:将JSP网页转移为Servlet源代码 .java.
◆编译时期:将Servlet 源代码 .java编译成 Servlet类 .class.
当JSP网页在执行时,JSP Container会做检查工作,如果发现JSP网页有更新修改时,JSP Container才会再次编译JSP成Servlet; 如果JSP没有更新时,就直接执行前面所产生的Servlet。
1. (showdate.jsp)
2. <%@ page language="java" contentType="text/html;charset=gb2312" import="java.text.*,java.util.*;"%>
3. <html>
4. <head>
5. <title>Show time</title>
6. </head>
7. <body>
8. Hello :
9. <%
10. SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
11. String str = format.format(new Date());
12. %>
13. <%=str %>
14. </body>
15. </html>
当部署好 showdate.jsp之后,启动Tomcat服务器。
1.在IE浏览器中输入配置好的路径 .... showdate.jsp 请求这个页面。
2.JSP Container 即Tomcat 服务器会将 showdate.jsp 转译成 showdate_jsp.java 源文件。
3.同时将 showdate_jsp.java 源文件编译成 showdate_jsp.class。
4.编译执行showdate_jsp.class 类,处理请求,返回响应,容器将生成的页面返回给客户端显示。
1. (转移成的java源文件 showdate_jsp.java)
2. package org.apache.jsp.ch04;
3.
4. import javax.servlet.*;
5. import javax.servlet.http.*;
6. import javax.servlet.jsp.*;
7. import java.text.*;
8. import java.util.*;;
9.
10. public final class showdate_jsp extends org.apache.jasper.runtime.HttpJspBase
11. implements org.apache.jasper.runtime.JspSourceDependent {
12.
13. private static java.util.List _jspx_dependants;
14.
15. public Object getDependants() {
16. return _jspx_dependants;
17. }
18.
19. public void _jspService(HttpServletRequest request, HttpServletResponse response)
20. throws java.io.IOException, ServletException {
21.
22. JspFactory _jspxFactory = null;
23. PageContext pageContext = null;
24. HttpSession session = null;
25. ServletContext application = null;
26. ServletConfig config = null;
27. JspWriter out = null;
28. Object page = this;
29. JspWriter _jspx_out = null;
30. PageContext _jspx_page_context = null;
31.
32. try {
33. _jspxFactory = JspFactory.getDefaultFactory();
34. response.setContentType("text/html;charset=gb2312");
35. pageContext = _jspxFactory.getPageContext(this, request, response,
36. null, true, 8192, true);
37. _jspx_page_context = pageContext;
38. application = pageContext.getServletContext();
39. config = pageContext.getServletConfig();
40. session = pageContext.getSession();
41. out = pageContext.getOut();
42. _jspx_out = out;
43.
44. out.write("\r\n");
45. out.write("<html>\r\n");
46. out.write("<head>\r\n");
47. out.write("<title>Show time</title>\r\n");
48. out.write("</head>\r\n");
49. out.write("<body> \r\n");
50. out.write("\tHello : \r\n");
51. out.write("\t");
52.
53. SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
54. String str = format.format(new Date());
55.
56. out.write("\r\n");
57. out.write("\t ");
58. out.print(str );
59. out.write("\r\n");
60. out.write("</body>\r\n");
61. out.write("</html>");
62. } catch (Throwable t) {
63.
64. if (!(t instanceof SkipPageException)){
65. out = _jspx_out;
66. if (out != null && out.getBufferSize() != 0)
67. out.clearBuffer();
68. if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
69. }
70.
71. } finally {
72.
73. if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
74. }
75. }
76. }
当JSP页面被转译成Servlet时,内容主要包含三个部分:
1. public void _jspInit(){ ..}
2. -- 当JSP网页一开始执行时,最先执行此方法,执行初始化工作
3. public void _jspDestory(){...} – JSP网页最后执行的方法
4. public void _jspService(HttpServletRequest request, HttpServletResponse response)
5. throws java.io.IOException, ServletException {
JSP网页中最主要的程序都是在此执行,将showdate.jsp和showdate_jsp.java做一个简单对比:
第一部分:页面属性的对比
1. <%@ page language="java" contentType="text/html;charset=gb2312" %>
2. response.setContentType("text/html;charset=gb2312");
3. //通过 response响应设置返回客户端的页面属性
第二部分:HTML标签
1. <html>
2. <head>
3. <title>Show time</title>
4. </head>
5. ..
6. </html>
7.
8. out.write("\r\n");
9. out.write("<html>\r\n");
10. out.write("<head>\r\n");
11. out.write("<title>Show time</title>\r\n");
12. out.write("</head>\r\n");
13. out.write("<body> \r\n");
14. out.write("\tHello : \r\n");
15. out.write("\t");
16. //通过 out对象 向客户端写HTML标签
第三部分:声明的对象
1. <%
2. SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
3. String str = format.format(new Date());
4. %>
在_jspService 方法中声明的局部变量:
第四部分:表达式
<%=str %>
out.print(str ); //写即打印str变量的值
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:JavaEye面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢