JSP

2021-01-18 21:15

阅读:564

标签:属性   ons   逻辑运算   添加   别名   http服务器   介绍   工作   class   

1.首先我们要知道学习JSP只要掌握原理和过程,不需要记代码;
2.JSP是JavaEE中一个规范,学习JSP方便我们书写JSP文件,而JSP文件可以替代响应对象向响应包输入数据,避免了响应对象输入数据过少的问题;
3.在JSP中书写Java命令,不会被识别,我们需要写在执行标记中;
在JSP文件中通过输出标记将Java变量的值写入响应体;
在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}

      在EL表达式中运行逻辑运算:${key4>30?"yes":"no"}

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

          密码:${param.password}

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

JSP

标签:属性   ons   逻辑运算   添加   别名   http服务器   介绍   工作   class   

原文地址:https://www.cnblogs.com/1877chl/p/13341352.html


评论


亲,登录后才可以留言!