本文章仅作为学习SSM的热身,有一些JSP的基本了解
JSP是基于Java Servlet以及Java体系的Web开发技术
JSP运行原理:
当服务器上的一个JSP页面第一次被请求执行的时候(客户端通过URL定位JSP文件),服务器上的JSP引擎首先将JSP页面转换成一个java文件,再将这个java文件编译生成字节码文件,执行字节码响应客户的请求。
字节码文件的主要工作是:
- 把JSP页面中普通的HTML标记符号(页面的静态部分)交给客户的浏览器负责显示。
- 执行“<%”和“%>”之间的java程序片(JSP页面中的动态部分),并把执行结果交给客户的浏览器显示。
- 当多个客户请求一个JSP页面时,JSP引擎为每个客户启动一个线程而不是启动一个进程,这些线程由JSP引擎服务器(web容器中比如Tomcat等)来管理,与传统的CGI为每个客户启动一个进程相比较,效率要高的多。
一个JSP页面可由5种元素组合而成:
- 普通的HTML标记符。
- JSP标签:如,指令标签、动作标签。
- 变量和方法的声明。
- Java 程序片。
- Java 表达式。
JSP的一些缺点(也正是被弃用的原因)
- 动态资源和静态资源紧密耦合,无法做到真正的动静分离。服务器压力大,因为服务器会收到各种http请求,例如css、image的http请求等等。一旦服务器出现状况,前后台都受难,用户体验极差。
- 前端工程师做好html后,需要由java工程师来将html修改成jsp页面,出错率较高(因为页面中经常会出现大量的js代码),修改问题时需要双方协同开发,效率低下。
- jsp必须在支持java的web服务器里运行(例如tomcat等),无法使用nginx等(nginx据说单实例http并发高达5w),性能提不上来。
- 第一次请求jsp,必须要在web服务器中编译成servlet,第一次运行较慢。
- 每次请求jsp都是访问servlet再用输出流输出的html页面,效率没有直接使用html高。
- 如果jsp中的内容很多,页面响应很慢,因为是同步加载。
参考:
http://www.cnblogs.com/nlfjzzh/p/8359529.html