1. JSP简介

1.1 JSP是什么

JSP(Java服务器页面,Java Server Pages)是一个简化的Servelet设计,用来创建Web应用程序,由Sun公司主导制定的Java服务器端动态网页技术标准,类似于.Net的ASP。JSP的出现意义重大,推动了网页从静态走向动态的跨越。

1.2 怎么使用JSP

JSP以文件形式存在,后缀名是**.jsp**,通常一个JSP文件会由以下3个部分组成:

  • HTML代码 —— 页面的描述和排版
  • Java代码 —— 允许写,但不建议写,会弱化MVC分层设计,且后期难以维护(我接触的项目里JSP文件写了Java代码,( ╯□╰ ))
  • JSTL —— JSP标准标签库,标签是为解决特定问题而产生的模板一种引擎,通常包含5个部分:
    • 核心标签,如CORE标签库里的c:foreach迭代标签
    • 格式化标签
    • SQL标签
    • XML标签
    • 拓展函数

1.3 JSP的优缺点

1)SP是对Servlet的扩展,可在JSP中使用Servlet的使用功能

2)易于维护,业务逻辑和页面逻辑分开的

3)快速开发,JSP页面改动时不需要重新编译和部署

MVC(Model-View-Control)是一个分层架构设计,使得开发和运维更加简洁高效,JSP应当在MVC架构里充当View的角色

基于JSP的MVC架构是一种混乱的MVC架构,Control和View还是混在了一起。

1.4 JSP还要必要学吗

学习JSP技术后学其他的Java框架会更容易

基于Servelet API去构建或扩展的,JSP可以作为了解底层实现的起点,有助于知识体系学习的连续性。

1.5 JSP的9大内置对象

  1. PageContext —— JSP页面上下文对象
  2. HttpServeletRequest —— 封装用户请求的对象
  3. HttpServeletResponse —— 封装用户响应的对象
  4. HttpSession —— 封装用户对话的对象
  5. ServletContext —— 容器上下文对象
  6. ServletConfig —— 服务配置对象
  7. JSPWriter —— 页面输出对象
  8. Page —— 当前页面的抽象
  9. Exception —— 全局异常对象

1.6 JSP的值域

  1. Page值域 —— 当前页面有效,跳转或重定向后无法携带
  2. Request值域 —— 只在一次请求当中有效,重定向无法携带
  3. Session值域 —— 只在一次会话中有效,重启浏览器或超时后消失
  4. Application值域 —— 整个服务器生命周期有效,重启服务会消失

1.7 JSP的生命周期

  1. JSP页的翻译
  2. 编写JSP页面
  3. 类加载(类加载器加载文件)
  4. 实例化(生成Servlet对象被创建)
  5. 初始化(容器调用jspInit()方法)
  6. 请求处理(容器调用jspService()方法)
  7. 销毁(容器调用jspDestroy()方法)

1.8 JSP目录结构

JSP页面的目录结果与Servlet相同,可以把JSP页面放在WEB-INF文件夹之外或任何目录中。