上篇博客已经简单介绍了下Servlet,从上篇博客中可以看到,Servlet获得返回来的数据后,显示给客户端时,需要不断的拼串,从而构成完整的html页面,这就在无形中加大了程序员的压力和劳动力。而今天要介绍的JSP正好解决了这个问题。
其实JSP也是J2EE的12中规范之一,它的本质是Servlet,只不过JSP对Sservlet进行了封装,使它更加倾向于表现层,跟html页面接轨,既能进行业务逻辑处理也能进行网页的动态显示,相比Servlet,提高了工作效率,减轻了程序员的劳动力和压力。
既然Servlet有生命周期,同样,JSP也有生命周期,JSP的生命周期类似于Sservlet,其区别在于JSP的生命周期还包括JSP生成Servlet。
生命周期
编译
包括三阶段:解析JSP;将JSP转为Servlet;编译Servlet。
初始化
JSP只初始化一次,容器在载入JSP后,创建其实例,调用jspInit()方法进行初始化。如果需要执行自定义的JSP初始化任务,可以复写jspInit()方法。
执行
当JSP网页完成初始化后,将会调用_jspService()方法。此需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数,_jspService()方法在每个request中被调用一次并且负责产生与之相对应的response。
销毁
销毁Servelet实例。当JSP网页从容器中被移除时,会调用jspDestroy()方法,等价于servlet中的销毁方法。当有其他需要时,可以复写jspDestroy()方法,比如释放数据库连接或者关闭文件夹等。
实例
JSP文件
<html> <head> <title>HelloWorld</title> </head> <body> <% String strhw="Hello ZhuDan!"; out.println(strhw); %> </body> </html>
执行结果
JSP与Servlet
JSP是Web开发技术,而Servlet是服务器端运行的小程序,当访问JSP页面时,会将其编译成Servlet,然后交互得到结果返回给客户端。
JSP更多的着重于页面的显示,而Servlet注重于业务的处理,即JSP相当于页面,而Servlet来实现JSP。
两者在显示页面时,在JSP中嵌入java代码,在Servlet中嵌入HTML代码。
总结
JSP跟HTML页相似,同样可以用于网页的显示,只不过JSP中嵌入了Java代码,HTML页面不能嵌入某种语言代码;JSP本质是Servlet,在运行时首先将JSP编译成Servlet,然后再处理来自客户端的请求。