JavaWeb之JSP入门

JSP原理及执行过程

  1. 流程图分析
    JSP流程图
  • 用户发起请求,用户通过浏览器访问jsp页面,浏览器将HTTP协议的请求部分发送到服务端.
  • 服务端获取请求部分,分析请求,发现本次的请求的的是jsp页面,jsp引擎按照内部规定,将jsp页面转换为一个servlet文件,并生成java文件,index_jsp.java,
    转换后的java文件中有init,service,destroy方法,在service方法中,将HTML标签原封不动输出到浏览器中,碰到java代码,复制到service方法中

JSP如何出现

如果开发中直接使用servlet对客户端响应,是难以维护的,因为它把html标签全部写到java文件中,更改一个小的部件,就要修改servlet文件.

JSP语法

  1. JSP脚本段

    1. 存放定义型的语句
    <%! %>
    
    1. 普通的Java语句
    <%  %>
    
    1. 可以计算出结果的表达式
    <%= %>
    
  2. JSP的注释

    <%-- JSP的注释 --%>
    
    • 注意:JSP中实现注释,优先使用JSP注释,效率高,转换为servlet的时候,不需要处理
  3. JSP指令

    1. 指令格式

      <%@ 指令名称 属性名1=”属性值1” 属性名2=”属性值2”  属性名3=”属性值3” %>
      
    2. 指令的分类(3个)

      • page:告诉JSP引擎如何将当前JSP转换为Servlet
        • import="cn.itcast.domain.Product 导入其他JAVA对象
        • language="java": 如果JSP中出现脚本,采用的语言类型,目前仅支持JAVA
        • contentType="text/html;charset=UTF-8":告诉浏览器,本次响应内容类型和编码
        • pageEncoding="UTF-8" :告诉JSP引擎,当前页面采用的编码格式
        • autoFlush="true": 是否自动刷新
        • buffer="8kb": response缓存区大小
        • session="true": 如果获取不到sessionid是否创建session
        • errorPage="error.jsp": 当前页面发生错误之后,处理错误页面
        • isErrorPage="true":当前页面是错误页面
      • include:包含其它文件
      • taglib:引用其它的标签库
    3. 内置对象(9个)

      • application
      • config
        • JSP相当于servlet可以为servlet配置参数,也可以为JSP配置参数
      • out
        • 2个out不是同一个对象,response对应的out优先级高
        • JSP中默认使用内置的out对象
      • request
      • response
      • session
      • exception
        • 需要将当前页面的page指令下设置isErrorPage="true"才能使用
        • 作用:开发阶段,通过JSP中获取exception中的信息判断JSP出错异常信息
      • pageContext
        • 获取其它8个内置对象
        • 当作域对象使用
        • 操作其它域对象
        • pageContext.findAttribute(name)
        • pageContext>request>session>application
      • page
        • 代表this(当前访问的servlet)
    4. JSP域对象

      • pageContext
      • request
      • session
      • application
    5. JSP动作

      <jsp:forward page=""></jsp:forward>
      <jsp:include page=""></jsp:include>
      
原文地址:https://www.cnblogs.com/loveyous/p/7492676.html