• javaweb九大个内置对象,四大域


       9个内置对象如下:

    1.session对象:会话对象


      当客户端第一次访问服务器的页面时,web服务器会自动为该客户端创建一个session对象并分配一个唯一的id号
    常常用它来在多个页面间共享数据,如我们课可以把访问权限放在会话中,以免 多次连接数据库

      jsp中session的读取方法:
    Object obj=session.getAttribute("属性名");
    写方法:
    session.setAttribute("属性名",obj);
    其中属性名相当于标签,取出的是Object类需要进行前置转化:

    2.application对象


    该对象的父类为:javax.servlet.ServletSontext类。

    作用域、声明周期:
    在服务器打开时创建,服务器关闭时销毁,对应用程序来讲是唯一的,因此application也是session共享的

    从application中取出的对象类型仍然是Object类型,也需要转化

    常用方法:
    getAttribute(String name);返回右name指定的application对象的属性值
    getAttributeNames(); 所有application对的属性名字,枚举的实例
    getInitParamter(String name);由name指定的属性的初始值
    getServletInfo(); Servlet编译器的版本信息
    getAttribute(String name,Object object);由name指定的属性值object

    在jsp中可以直接使用该实例对象,但是在Servlet中获取该全局唯一对象的方式:
    ServletContext application=this.getServletContext();
    该对象相当于系统的缓存,用户存放共享数据,例如系统分页数、密码最小长度、版本信息等

    3.request对象

    通过该对象获取用户提交的信息 request.getParameter();

    该对象包含了当前用户请求的上下文,包括表单信息,传递的参数信息等

    还可以通过次对象获取session对象
    HttpSession session=request.getSession();


    4.response对象:相应对象


      其父类为javax.servlet.ServletRequest,包含了当前web服务器响应的上下文。

      该对象常常被用来完成页面的跳转、页面的自动刷新、页面的自动跳转、禁用缓存等功能

      页面跳转的方法:
    response.sendRedirect("页面的路径");
      页面自动刷新的方法:
    response.setHeader("refresh",3);每隔3秒刷新一次
      页面自动跳转的方法:
    response.setHeader("refresh","3;URL=commom.jsp?ref=aaa");
      指定3秒后自动跳转到common.jsp页面并传递了值为aaa的参数ref
      禁用缓存的方法:
    response.setHeader("Cache=Control","no-cache");
    response.serHeader("Pragma","no-cache");
    response.setHeader("Expires",0);
    禁用缓存后,当我们单击后退时,客户端会自动想服务器请求上一次页面

    5.out对象

       输出流对象。

     6.pageContext

      可以通过他获取其它对象

      EL中:

    ${pageContext.request.contextPath} :获取根目录

    7.page【基本不用】

      在编译的servlet中,Object page = this;

      page对象表示当前一个JSP页面,可以理解为一个对象本身,即:把一个JSP当作一个对象来看待。page对象在开发中几乎不用,了解一下即可

    8.config【ServletConfig】

      获取servlet配置信息 

    9.exception对象

      只有page指令中,isErrorPage=true时,才能使用

    jsp中的四大域

    setAttribute(), getAttribute(), 用于存储数据,作用域

      pageContext.getAttribute(key, scope)

    搜索范围:page>request>

    1.page

    自身

    2.request

      作用域为request

      请求结束后,消失

    3.session

    4. context

      作用域为application

    EL表达式

    <%
    //模拟真实情况
    User user1=new User();
    user1.setUsername("张三");
    request.setAttribute("user", user1); //属性值
    %>

    1. EL表达式的基本形式

      如果在jsp模板文件中使用EL表达式,那么表达式的值回直接输出到网页上。

    例如:Java表达式:<%=request.getParameter("usernamae") %>
    --> ${param.username} (form)


    2. 使用场景

      既可以直接插入到jsp文件的模板文件中,也可以作为jsp标签的属性的值。
    e.g. <input type="text" name="username" value="" />

    3. 直接访问对象的属性


    e.g. ${request.user.username} <==> ${request.user['username']}

    4. EL运算符


    算数运算符:
    + - * /(不是整除)%
    关系运算符:
    == < >..
    逻辑运算符
    ! || &&
    empty运算符
    true :如果var为null,就返回TRUE
    条件运算符
    a?b:c

    5. EL 语言中定义了11个隐含对象,他们都是java.util.Map类型,


      网页制作者通过他们便捷地访问web应用的特定数据。

    隐含对象名 说明

    • application: web应用范围内的属性名和属性值进行映射
    • cookie:  客户请求中的Cookie名和Cookie对象进行映射
    • header:  请求头部的项目名和项目值进行映射,例如:

    ${header.host} 等价于<%=request.getHeader("host") %>

    • headerValues 把Http请求头部的项目名和所有匹配你的项目值得数组进行映射,例如:

    [Ljava.lang.String;@2b08133b 等价于<% request.getHeaders("accept-language") %>
    initParam 把web应用的初始化参数名和参数值进行映射

    • pageScope 把页面范围内的属性名和属性值进行映射
    • param 把客户请求的参数名和参数值进行映射
    • paramValues 请求参数名对应参数数组
    • requestScope 请求返回内的属性名和属性值
    • sessionScope 回话的范围内的属性名和属性值的映射

    2.分类:


    (1)请求范围内的特定数据:header,headerValues,param,paramValues,cookie
    ${header["user-agent"]} (必须使用[]访问,因为不符合变量命名规则) <==> <%=requesst.getHeader("user-agent") %>
    ${cookie.username.value} <==> 调用名为username的Cookie对象的getValue()方法
    与前端cookie的关系
    (2)特定范围的属性值:pageScope,requestScope,sessionScope和applicationScope
    属性

    (3)pageContext,表示PageContext对象


    ${pageContext.request.contentPath}
    ${pageContext.servletContext.serverInfo} <==> <%=application.getServerInfo %>
    ${pageContext.request.requestURL} <==> <%=request.getRequestURL() %>
    ${pageContext.response.characterEncoding} <==> <%= response.getCharacterEncoding() %>

    (4)表示web应用的初始化参数集合,为initParam
    <==> <%=appliction.getInitParameter("driver") %>分类:
    (1)请求范围内的特定数据:header,headerValues,param,paramValues,cookie
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36 (必须使用[]访问,因为不符合变量命名规则) <==> <%=requesst.getHeader("user-agent") %>
    <==> 调用名为username的Cookie对象的getValue()方法

    与前端cookie的关系
    (2)特定范围的属性值:pageScope,requestScope,sessionScope和applicationScope
    属性

    (3)pageContext,表示PageContext对象
    ${pageContext.request.contentPath}
    ${pageContext.servletContext.serverInfo} <==> <%=application.getServerInfo %>
    ${pageContext.request.requestURL} <==> <%=request.getRequestURL() %>
    ${pageContext.response.characterEncoding} <==> <%= response.getCharacterEncoding() %>

    (4)表示web应用的初始化参数集合,为initParam
    <==> <%=appliction.getInitParameter("driver") %>

    2.命名变量

    EL表达式中的变量成为命名变量,他不是jsp文件的局部变量或实例变量,而是存放在特定范围内的属性,
    命名变量的名字和属性名对应。
    ${username} 找的是特定范围的属性(不是参数)
    ${user.username} 实际上找的不是User的username属性,而是调用了User的getUsername方法,返回的结果

    end

  • 相关阅读:
    字符串 查询
    字符串 截取
    字符串 比较
    字符串 拼接
    数组中 的数字排序
    ios中通过ALAssetsLibrary获取所有图片
    IOS中MapKit框架使用地图的显示
    IOS中CoreLocation框架地理定位
    IOS各种动画
    iOS开发--音频播放、录音、视频播放、拍照、视频录制
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/9604487.html
Copyright © 2020-2023  润新知