与 ASP 相比:
动态部分用 Java 编写,所以更加强大易用可以移植到多种不同的服务器和操作系统与 PHP 相比:
更好的工具支持与 Servlet 相比:
创建 HTML 更方便与 Javascript 相比:
虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
JSP 是一种 Servlet,但是它与 HttpServlet 的工作方式不太一样:
HttpServlet 是先编译后部署:先将源代码编译为 class 文件,然后部署到服务器下 JSP 是先部署后编译:先部署代码,然后编译为 class 文件。JSP 会在客户端第一次请求 JSP 文件时被编译为 HttpJspPage 类。该类会被服务器临时存放在服务器工作目录里面。由于 JSP 只在客户端第一次请求时被编译,所以第一次请求 JSP 时会感觉比较慢。
JSP 也是一种 Servlet,运行时只有一个实例,它也有生命周期。
以下是JSP生命周期中所走过的几个阶段: 编译阶段:servlet容器编译servlet源文件,生成servlet类初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法执行阶段:调用与JSP对应的servlet实例的服务方法销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例很明显,JSP生命周期的四个主要阶段和servlet生命周期非常相似,下面给出图示:
例
JSP生命周期代码实例 <% @ page contentType = " text/html; charset=GB2312 " %> < html >< head >< title >life.jsp </ title ></ head >< body > <% ! private int initVar = 0 ; private int serviceVar = 0 ; private int destroyVar = 0 ; %> <% ! public void jspInit(){ initVar ++ ; System.out.println( " jspInit(): JSP被初始化了 " + initVar + " 次 " ); } public void jspDestroy(){ destroyVar ++ ; System.out.println( " jspDestroy(): JSP被销毁了 " + destroyVar + " 次 " ); } %> <% serviceVar ++ ; System.out.println( " _jspService(): JSP共响应了 " + serviceVar + " 次请求 " ); String content1 = " 初始化次数 : " + initVar; String content2 = " 响应客户请求次数 : " + serviceVar; String content3 = " 销毁次数 : " + destroyVar; %> < h1 > <% = content1 %> </ h1 > < h1 > <% = content2 %> </ h1 > < h1 > <% = content3 %> </ h1 > </ body ></ html >
Java Web 整合开发
http://www.w3cschool.cc/jsp/jsp-tutorial.html