1. Java Server Pages介绍
    JSP全称Java Server Pages,是一种动态网页开发技术。使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
    JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。
    JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

  2. JSP的优势
    与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
    与纯 Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
    与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
    与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
    与静态HTML相比:静态HTML不包含动态信息。

3.JSP 生命周期
基于tomcat下的lib->jasper.jar->runtime->httpJspBase查看源码

编译阶段:
Servelet容器编译Servelet源文件,生成servelet类
初始化阶段:
加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法 jspInit()
执行阶段:
调用与JSP对应的Servelet实例的服务方法_jspService()
销毁阶段:
调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例jspDestroy()
编译的过程包括三个步骤:
i. 解析JSP文件。
i. 将JSP文件转为servlet。
i. 编译servlet。

4.JSP语法

脚本程序

<% 代码片段 %>

JSP声明

<%! declaration; [ declaration; ]+ … %>

<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>
1
2
3
JSP表达式

<%= 表达式 %>


Today's date: <%= (new java.util.Date()).toLocaleString()%>


执行结果:Today's date: 11-Sep-2013 21:24:25
1
2
3
4
JSP注释

<%-- 注释 --%> :注释内容不会被发送至浏览器甚至不会被编译 |

JSP指令

<%@ page … %> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
1
<%@ include … %> 包含其他文件

<%@include file="test04.jsp" %>
1
<%@ taglib … %> 引入标签库的定义,可以是自定义标签

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
1
JSP常量
JSP语言定义了以下几个常量:

Boolean:true and false
Integer:与Java中的一样
Floating point:与Java中的一样
String:以单引号或双引号开始和结束。 " 被转义成 ",'被转义成 ', \ 被转义成\
Null:null

5.JSP(九大)隐含对象

类 对象
HttpServletRequest request
HttpServletResponse response
PrintWriter out
HttpSession session
ServletContext application
ServletConfig confg
PageContext page
Page 类似于java中的关键字this
Exception 发生错误的JSP页面中对应的异常对象
6.PageContext提供了四种作用域

域 默认值
PAGE_SCOPE 1
REQUEST_SCOPE 2
SESSION_SCOPE 3
APPLICATION_SCOPE 4