JSP基础总结

jsp 基础总结

  • 全称:java server pages
  • 文件名后缀:.jsp
  • 服务端脚本语言

一、开发环境设置

  1. 配置jdk
  2. 设置tomcat

二、运行原理

image(图片来源网络,侵删!)

Web服务器运行JSP来创建网页的步骤:

  1. 浏览器发送一个HTTP请求给服务器。
  2. Web服务器识别出JSP网页的请求,并且将该请求传递给JSP引擎。(通过使用URL或者.jsp文件来完成。)
  3. JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
  4. JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
  5. Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
  6. Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
  7. 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

三、生命周期

image(图片来源网络,侵删!)

  • 编译阶段:servlet容器编译servlet源文件,生成servlet类
  • 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法-jspInit
  • 执行阶段:调用与JSP对应的servlet实例的服务方法-_jspService
  • 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例-jspDestroy

四、语法

  • 代码片段:

    1
    2
    <% code %>
    <jsp:scriptlet> code </jsp:scriptlet>
  • 声明变量/方法:

    1
    2
    <%! declarations; %>
    <jsp:declarations> declarations </jsp:declarations>
  • 表达式:

    1
    2
    <%= expression %>
    <jsp:expression> expression </jsp:expression>
  • 注释:

    1
    <%-- --%>
  • 控制流:

    • 条件:

      • if … else
      • switch … case
    • 循环:

      • for
      • while
      • do … while
  • 运算符(略)

  • 常量:

    1
    Boolean, Integer, String, Null, Floating
  • 指令:

    <%@ directive attribute=”value” %>

    1
    2
    3
    <%@ page %> 定义业务依赖属性,比如脚本语言,erro页面
    <%@ include %> 引入其他文件
    <%@ taglib %> 引入标签库
  • 行为:

    1
    <jsp:action_name attribute="value" />
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    jsp:include: 用于在当前页面中包含静态或动态资源
    jsp:useBean: 寻找和初始化一个JavaBean组件
    jsp:setProperty: 设置 JavaBean组件的值
    jsp:getProperty: 将JavaBean组件的值插入到output中
    jsp:forward: 从一个JSP文件向另一个文件传递一个包含用户请 求的request对象
    jsp:plugin: 用于在生成的HTML页面中包含Applet和JavaBean对象
    jsp:element: 动态创建一个XML元素
    jsp:attribute: 定义动态创建的XML元素的属性
    jsp:body: 定义动态创建的XML元素的主体
    jsp:text: 用于封装模板数据
  • 隐含对象:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    request: HttpServletRequest类的实例        
    response: HttpServletResponse类的实例
    out: PrintWriter类的实例,用于把结果输出至网页上
    session: HttpSession类的实例
    application: ServletContext类的实例,与应用上下文有关
    config: ServletConfig类的实例
    pageContext: PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
    page: 类似于Java类中的this关键字
    Exception: Exception类的对象,代表发生错误的JSP页面中对应的异常对象
  • 异常:

    • Exception, 只在错误页面中使用
    • try … catch
  • 调试

    • 使用System.out.println()
    • 使用java.util.logging.Logger