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

javaweb九大个内置对象,四大域的更多相关文章

  1. JavaWeb学习总结(十七)——JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  2. javaWeb学习总结(8)- JSP中的九个内置对象(4)

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  3. JavaWeb学习 (十六)————JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  4. JavaWeb(十七)——JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  5. javaweb基础(17)_jsp九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  6. JavaWeb学习总结(十七)——JSP中的九个内置对象(转)

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  7. JSP学习 三大指令、九个内置对象、JavaBean、EL表达式

    1.page-->最复杂:<%@page language="java" info="xxx"...%> * pageEncoding和con ...

  8. java web学习总结(二十五) -------------------JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  9. JavaWeb---总结(十七)JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

随机推荐

  1. ORB SLAM2 学习笔记

    cd ~/Documents/demos/ORB_SLAM2 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.y ...

  2. renturn 错误

    package ui.cfg; import java.awt.BorderLayout; import java.awt.FlowLayout; import javax.swing.JButton ...

  3. 不值一提,却又不得不提的“CSS文本超出部分省略号代替”

    偶然看到一篇类似css技巧与经验总结的文章,其中有一部分非常熟悉,那就是“css控制元素内文本超出部分使用省略号代替”,一般实际工作中, 很多产品经理会对页面UI有这样的要求.还记得,第一次做这个功能 ...

  4. Java_Ant详解(转载)

    Java_Ant详解   1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant ...

  5. Date时间格式的转换以及一些用法

    import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.u ...

  6. Fast Matrix Operations UVA - 11992 线段树

    题意翻译 有一个r行c列的全0矩阵,有以下三种操作. 1 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素加v 2 X1 Y1 X2 Y2 v 子矩阵(X1,Y1,X2,Y2)的元素 ...

  7. 使用navicat将mysql转换成sqlserver

    使用navicat将mysql转换成sqlserver 1. 打开navicat,连接所需要装换的mysql数据库. 2. 选择所需要转换的数据源,点击右键选择数据传输.如图: 3. 打开数据传输面板 ...

  8. LeetCode8. 字符串转整数 (atoi)

    8. 字符串转整数 (atoi) 描述 实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连 ...

  9. P2763 试题库问题

    传送门 显然的网络流,源点向所有题目连流量为1的边,表示一题只能用一次,题目向它的所有类型连边,流量设为1,类型向汇点连边流量为题目需要的该类型的数量 然后最大流 如果最大流小于总需要的类型题目数量则 ...

  10. Oj 24260: Lilypad Pond (神奇广搜题,状态搜索)

    题目 为了让奶牛们娱乐和锻炼,约翰建造了一个美丽的池塘.这个池塘是矩形的,可以分成M×N个方格.一些格子是坚固得令人惊讶的莲花,还有一些是岩石,其余的只是美丽,纯净,湛蓝的水.贝西正在练习芭蕾舞,她站 ...