JSP
servlet缺陷
Servlet的编码、部署和调试任务繁琐
生成动态网页繁琐,不利于项目分工
采用JSP技术编写动态页面
由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件
JSP页面的扩展名必须为.jsp
运行机制
页面翻译
Web容器第一次接收到对某个JSP页面的请求后,首先自动将该JSP页面翻译为Servlet代码
org.apache.jasper.servlet.JspServlet这是JSP引擎
页面编译
Web容器负责将Servlet代码编译为字节码。与源文件放在同一个目录下
类装载
Web容器装载新生成的servlet类
实例化阶段
Web容器创建servlet实例
页面初始化
Web容器调用Servlet示例的jspInit()方法,JSP页面装载资源
页面服务
容器创建一个新线程来处理这个客户的请求
servlet对象的_jspService()方法运行
页面销毁
容器调用生成的servlet对象的jspDestroy()方法,销毁装载的资源
生命周期
1.JSP引擎翻译成java源文件
2.由容器编译成.class文件
3.创建对象
4._jspInit方法初始化
5._jspService方法提供服务
6._jspDestroy方法销毁
7.卸载
jsp页面组成
1.模板数据
HTML标签
2.注释
JSP注释:<%--注释内容--%>
浏览器不可见/java源文件不可见/jsp文件可见
HTML注释 :<!--注释内容-->
浏览器可见/java源文件可见/jsp文件可见
Java代码注释 :// /* */
浏览器不可见/java源文件可见/jsp文件可见
3.隐式对象
九大隐式对象
四个作用域对象
application
Web应用程序的ServletContext对象
服务器运行期间
session
特定用户请求会话的HttpSession对象。该对象只有在JSP页面参与一个HTTP会话时才有意义
一次会话
request
与请求相关的HttpServletRequest对象
一次请求一次响应
pageContext
封装请求某个JSP页面时请求环境的pageContext对象
只对当前页面有效
两个输出对象
response
与响应相关的HttpServletResponse对象
out
与响应输出流相关的JspWriter对象
三个其他
config
JSP 页面的Servlet相关的ServletConfig对象
page
相当于java的this
exception
JSP页面抛出的Trowable对象。这个对象只能在JSP错误页面中使用