• JSP


    一.简介
    JSP全名(Java Server Pages),是建立在Servlet规范之上的动态网页开发技术.在JSP文件中HTML代码与Java代码共存,html用来显示静态内容,
    java代码用来显示动态内容,扩展名为.jsp.
    具有如下几点特征:
    跨平台/业务代码相分离/组件重用/预编译

    二.原理
    1.用户通过浏览器输入URL,浏览器将HTTP协议的请求部分发送至服务端;
    2.服务端获取到HTTP协议的请求部分,分析本次请求的是什么资源,发现后缀为.jsp,按照内部约定规则,将JSP转换为一个SERVLET.JAVA文件;
    (PS:转换规则:在SERVLET中,碰到JSP页面中的HTML标签,通过输出流将HTML部分输出到浏览器中,如果碰到JAVA代码,将这些JAVA代码段复制到Service内部)
    3.tomcat将转换后的.java文件编译为.class文件;
    4.tomcat按照SERVLET的字节码识别.class文件,调用.class字节码中无参构造函数创建对象,调用init方法,service方法等;

    三.脚本段(3个)
    1.<%   %>:放普通的java代码(变量/方法/语句等)
    2.<%!  %>:JSP声明语句,声明变量和方法
    3.<%=  %>:JSP表达式,将程序数据输出到客户端

    四.注释(5个)
    <%-- JSP注释信息 -->
    <!-- HTML的注释为-->
    <%
         //java的注释1
         /*java的注释2*/
         /**java的注释3*/
    %>
    注:优先使用jsp注释,因为效率高,转换为SERVLET的时候,无需处理

    五.指令(3个)
    格式:
    <%@ 指令名称 属性名1="属性值1" 属性名2="属性值2">   多个属性值间空格隔开
    指令:
    page:告诉jsp引擎如何将当前jsp转换为SERVLET;
    include:包含其它文件;
    taglib:引入其它的标签库;
    (PS:引擎:tomcat内部内置的负责将jsp转换为servlet代码,以及将servlet编译为字节码的代码)

    六.动态包含与静态包含的区别和联系
    JSP中有两种包含:
    静态包含:<%@include file="被包含页面" %>,
    动态包含:<jsp:include page="被包含页面" flush="true">
    两种包含的最终效果相同,但是实现过程不同.
    1.静态包含中是指令元素;动态包含中是行为元素;
    2.最终编译的java文件数目不同.静态包含在转换成为java文件时将被包含文件的内容"复制"到主体文件中,作为一个整体编译,最终形成一个java文件;动态包含是各个jsp文件分别转换,分别编译,最终形成多个java文件;
    3.执行时间不同:静态包含发生在jsp-java文件阶段;动态包含发生在执行class文件阶段,动态加入;
    4.静态包含在两个文件中不能有相同的变量,动态包含允许.因为静态包含相当于将被包含文件直接复制到主体文件中,如果出现相同的变理,就会出现覆盖等问题,导致文件出错.动态包含相当于调用不同的jsp,变量所在的空间不同,自然不会出现覆盖等现象.
    5.无论是动态包含还是静态包含,其request对象都是相同的.动态包含的执行过程其之前是一个请求转发的过程,自然也使用同一个request对象.

    七.内置对象(9个)
    JSP页面中,有些对象需要频繁使用,如果每次都重新创建会非常麻烦,为了简化web应用程序的开发,jsp2.0规范提供了9个内置对象,它们是jsp默认创建的,可以直接在jsp页面中使用:
    out:用于页面输出;
    request:得到用户请求信息;
    response:服务器向客户端的回应消息;
    config:服务器配置,可以取得初始化参数;
    session:用来保存用户的信息;
    application:所有用户的共享信息;
    page:指当前页面转换后的servlet类的实例;
    pageContext:jsp的页面窗口;
    exception:表示jsp页面所发生的异常,在错误页中才起作用;

    八.域对象(4个)???
    web运行过程产生的数据,希望将这些数据保存到不同的范围,因此有了域对象的概念.
    PageScope:当前页面有效,作用域名称为pageContext;
    RequestScope:一次请求范围内有效,作用域名称request;
    SessionScope:一次会话范围内有效,作用域名称session;
    ApplicationScope:一个web应用内有效,即可以整个web项目共享,作用域名称为application;

    九.动作
    jsp动作元素用来控制jsp的行为,执行一些常用的jsp页面动作.通过动作元素可以实现多行java代码能够实现的效果,如包含页面文件,实现请求转发等
    <jsp:include>/<jsp:forward>

  • 相关阅读:
    Easy Code 自定义的模板
    LINUX批量修改文件名
    解决FTP登录太慢
    linux 命令
    Linux rename命令
    MySQL字段重复出现多少次
    kafka安装
    Redis 5.0简单安装
    Tomcat常用配置
    jenkins安装和简单配置
  • 原文地址:https://www.cnblogs.com/huguangqin/p/7253050.html
Copyright © 2020-2023  润新知