1、JSP起源:
JSP是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态HTML页面的方式编写。
2、JSP的运行原理:
WEB容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。
3、JSP隐式对象:
public void _jspService(HttpServletRequest
request,
HttpServletResponse
response)
throws java.io.IOException, ServletException
{
JspFactory _jspxFactory = null;
PageContext
pageContext = null;
HttpSession
session = null;
ServletContext
application = null;
ServletConfig
config = null;
JspWriter
out = null;
Object
page = this;
...
...
Throwable
exception =
org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);
if (exception != null) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
4、JSP与servlet应用的比较:
(1)JSP页面的源文件要比Servlet源文件简单,并且JSP页面的开发过程要比Servlet的开发过程简单得多。
(2)JSP技术是建立在Servlet技术基础之上的,所有的JSP页面最终都要被转换成Servlet来运行,要想深入掌握JSP,必须先对Servlet有比较充分的理解。
(3)一次响应过程可以划分成几个功能模块来协同完成,首先由Servlet完成流程控制和业务处理,并将结果数据存储在request或session域中,然后将请求转发(forward)到JSP页面,再由JSP页面从request或session域中取出结果数据并完成响应内容的输出。通过这种方式实现业务逻辑与显示内容的分离,从而将应用程序开发者和网页作者的工作分离。
5、JSP表达式:
lJSP表达式(expression)提供了将一个java变量或表达式的计算结果输出到客户端的简化方式,它将要输出的变量或表达式直接封装在<%= 和 %>之中。
举例
:Current time: <%= new java.util.Date() %>
6、JSP声明:
JSP声明将Java代码封装在<%!和 %>之中,它里面的代码将被插入进Servlet的_jspService方法的外面,所以,JSP声明可用于定义JSP页面转换成的Servlet程序的静态代码块、成员变量和方法 。
lJSP隐式对象的作用范围仅限于Servlet的_jspService方法,所以在JSP声明中不能使用这些隐式对象。