JSP(Java Server Page)和Servlet是JavaEE规范的两个基本成员。JSP和Servlet的本质是一样的,因为JSP最终必须编译成Servlet才能运行,或者说JSP只是生成Servlet的“草稿”文件。
JSP的特点是在HTML页面中嵌入Java代码片段,或者使用JSP标签,包括使用用户自定义标签,从而可以动态地提供页面内容。
其他表现层技术:freemarker、velocity、tapestry
JSP的本质是Servlet,当用户向指定Servlet发送请求时,Servlet利用输出流动态生成HTML页面,包括每一个静态的HTML标签和所有在HTML页面中出现的内容。
由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种不足,JSP通过在标准的HTML页面中嵌入JAVA代码,其静态的部分无需Java程序控制,只有那些需要从数据库读取或者需要动态生成的页面内容,才使用Java控制。
JSP的工作原理:
1、客户端发送请求
2、如果该JSP页面第一次收到请求,先编译JSP文件,生成对应的Servlet;如果该JSP页面已有Servlet,则根据请求动态生成标准的HTML页面
3、返回标准HTML页面给客户端
总结:
1、JSP文件必须在JSP服务器内运行
2、JSP文件必须生成Servlet才能执行
3、每一个JSP页面的第一个访问者速度最慢,因为必须等待JSP编译成Servlet
PS:JSP页面的访问者无需安装任何客户端,甚至不需要可以运行Java的运行环境,因为JSP页面输送到客户端的是标准的HTML页面