zoukankan      html  css  js  c++  java
  • JSP

    1.首先我们要知道学习JSP只要掌握原理和过程,不需要记代码;
    2.JSP是JavaEE中一个规范,学习JSP方便我们书写JSP文件,而JSP文件可以替代响应对象向响应包输入数据,避免了响应对象输入数据过少的问题;
    3.在JSP中书写Java命令,不会被识别,我们需要写在执行标记中;<%.....%>
    在JSP文件中通过输出标记将Java变量的值写入响应体;<%=num1+num2%>
    在JSP文件中所有的执行标记当做一个整体;
    4.JSP内置对象一:request  类型:HttpServletRequest  作用:在JSP文件运行时读取请求包信息,与Servlet在请求转发过程中实现数据共享

    JSP内置对象二:session  类型:HttpSession  作用:JSP文件在运行时,可以session执行当前用户的私人储物柜,添加或者读取共享数据;

    JSP内置对象三:application  类型:HttpServletContext  作用:数据共享

    JSP内置对象四:Request  类型:HttpServletRequest

    4.JSP与Servlet联合与分工:
        1.Servlet:负责处理业务并得到处理结果-----大厨
          JSP:不负责业务处理,主要任务是将Servlet中处理结果鞋写入到响应体;-----传菜员

        2.JSP与Servlet之间调用关系:
            Servlet工作完毕后,一般通过请求转发的方式向Tomcat申请调用JSP;

        3.Servlet与JSP如何实现数据共享?
            Servlet将处理结果添加到【请求作用域对象】
            JSP文件在运行时从【请求作用域对象】得到处理结果

    5.Http服务器调用JSP文件步骤:
        1.http服务器将JSP文件内容【编辑】为一个Servlet接口实现类
        2.http服务器将Servlet接口实现类【编译】为class文件
        3.http服务器负责创建这个class的实例对象,也就是Servlet实例对象
        4.http服务器通过Servlet实例队形调用【service】方法,将JSP文件内容写入到响应体;
    注意:第一点关于编辑为Servlet接口实现类的原因:
        Tomcat只能调用动态资源文件,也就是Servlet接口实现类;

        在哪里可以证明呢?
    在Tomcat文件夹下的work文件夹下的Catalina文件夹下的localhost

                EL工具包
    1.介绍:是由Java开发的jar包,它能降低JSP文件开发时Java命令开发强度,Tomcat服务器自带了EL工具包

    2.JSP的作用:代替响应对象将doPost/doGet方法的执行结果写入到响应体;它的主要开发步骤是:
        1.从指定作用域对象中得到处理结果
        2.进行类型强转
        3.将数据写入响应体
    每个JSP文件大体都是这三步,因此,我们可以将这三步封装;在开发过程中,只要开发步骤超过三步,都认为是影响开发,都要进行封装

    3.EL表达式
        1.命令格式:${作用域对象别名.共享数据key}
        2.命令作用:EL表达式是EL工具包提供的一种特殊命令格式,用于JSP文件,负责在JSP文件上从作用域对象中得到共享数据并输出到响应体;
        
    2.JSP作用域别名:
        1.ServletContext  application 全局作用域对象
        2.HttpSession  session 会话作用域对象
        3.HttpServletRequest request 请求作用域对象
        4.PageContext  pageContext  当前页作用域对象(JSP文件独有的作用域对象,在当前页作用域对象存放的共享数据只能在当前JSP使用,不能共享给其他的JSP或者Servlet使用,真实开发中,主要用于JSTL标签与JSP文件之间的数据共享)

    3.EL表达式中的作用域别名:
        1.ServletContext  applicationScope
        2.HttpSession     sessionScope
        3.HttpServletRequest requestScope
        4.PageContext  pageScope

    4.EL表达式将引用对象属性写入响应体
        1.命令格式:${作用域对象别名.共享数据名.属性名}
        2.命令格式:从作用域对象读取指定共享数据关联的引用对象的属性值,自动将属性结果写入响应体
        3.属性名;一定要与引用类型属性名一致;
        4.EL表达式没有提供遍历集合的方法

    5.EL表达式简化版
        1.命令格式:${共享数据名}
        2.命令作用;EL表达式允许开发人员开发时省略作用域对象别名
        3.工作原理:EL表达式简化版由于没有指定作用域对象,所以在执行师采用【猜】算法,首先在【PageContext】定位,找着了就输出,没找着,就去【RequestScope】找,没找着,就去【sessionScope】找,没有就去【applicationScope】,还没找着,就返回null;

        4.存在的隐患:
            1.容易降低程序执行的速度
            2.容易导致数据定位错误
        5.应用场景:
            1.设计目的是简化从PageContext读取数据并输出的难度
        6.EL表达式简化版尽管存在很多隐患,在实际开发中,开发人员为了节省时间,喜欢用;

    6.EL表达式----支持运算表达式
        1.前提:在JSP文件有时候需要将读取共享数据
        2.在EL表达式中运算:${"22"+requestScope.key4}<br/>
          在EL表达式中运行逻辑运算:${key4>30?"yes":"no"}

    7.EL表达式的内置对象(扩展了解)
        1.命令格式:${param.请求参数名}
        2.命令作用:通过请求对象读取当前请求包中的参数信息,并将请求参数内容写入响应体;
        3.代码:发送请求;http://localhost:8080/myWeb/two?userName=xiaozhang&password=123
                    用户名:${param.userName}<br>
              密码:${param.password}

        1.${paramValues.请求参数名[下标]}
        2.命令作用:如果浏览器发送的请求参数携带多个值,此时通过paramValues读取请求参数下指定值
        3.发送请求:http://localhost:8080/myWeb/?useid=1&useid=2&useid=3
        读取第二个值:.${paramValues.useid[1]

  • 相关阅读:
    Shell面试题4:扫描网络内存活主机案例
    第三题批量创建特殊要求用户案例
    chpasswd 更简单的更改密码的方式
    30题之第二题
    shell30题之第一题
    2019牛客多校第四场B xor——线段树&&线性基的交
    POJ 2893 M × N Puzzle——八数码有解条件
    2019HDU多校第四场 Just an Old Puzzle ——八数码有解条件
    2019HDU多校第三场F Fansblog——威尔逊定理&&素数密度
    威尔逊定理
  • 原文地址:https://www.cnblogs.com/1877chl/p/13341352.html
Copyright © 2011-2022 走看看