1、out隐含对象 (输出对象)
直接用于在JSP页面输出内容
javax.servlet.jsp.JspWriter(抽象类) 继承自java.io.Writer

JSP中的out对象最终被转化成servlet中的JspWriter对象

2、request内置对象 (请求对象)
用于获取Http请求相关信息,比如查询字符串,表单数据
javax.servlet.http.HttpServletRequest

3、page对象 (页面对象)
表示对应单个JSP页面, servlet中如下声明:
final java.lang.Object page = this; // page表示当前的servlet对象,并且是Object类型

4、pageContext (页面上下文)
final javax.servlet.jsp.PageContext pageContext;
页面上下文可以使用setAttribute(String, String) 设置当前页面中所存储的信息,页面间不共享数据
使用getAttribute(String)方法获取在页面上下文中设置的属性

5、session对象(会话对象)
会话对象可以保存用户的基本信息, 如一个用户登录到一个网站,该网站可以记录此用户的信息,并且用户信息在网站的所有页面间

共享
会话信息存储在服务器端(数据库,文件系统,WEB容器本身实现的session存储)
在A页面中使用session对象的setAttribute(String, String) 方法存储数据,能在其他页面中直接使用
session.getAttribute(String)方法获取数据

javax.servlet.http.HttpSession session = null;

对Tomcat WEB容器来说,一个会话的持有时间为30分钟(会话超时时间,单位为分钟)
在conf目录的web.xml

<session-config>
<session-timeout>30</session-timeout>
</session-config>

多用于用户登录时存储用户信息,或者购物车等需要多页面间共享单个用户数据的情况

6、application对象(应用程序对象)
整个应用都能使用的,不限于某个用户。所有用户都能访问的数据应该放在application对象中
同样有setAttribute(String, String)和getAttribute(String)方法
final javax.servlet.ServletContext application;

7、response对象(响应对象)
response.sendRedirect("url") 重定向到某个页面

8、config对象(servlet配置信息)
final javax.servlet.ServletConfig config;
为JSP页面配置servlet

<servlet>
<servlet-name>configServlet</servlet-name>
<jsp-file>/config.jsp</jsp-file><!-- 由哪个JSP页面转化成的servlet -->
<init-param> <!-- servlet初始化参数 -->
<param-name>configName</param-name>
<param-value>myValue</param-value>
</init-param>
<load-on-startup>1</load-on-startup><!-- 在web容器启动时被初始化 -->
</servlet>
<servlet-mapping>
<servlet-name>configServlet</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>

在config.jsp页面中由config对象的getInitParameter()获取初始化参数

9、exception对象(异常对象)
java.lang.Throwable exception =

如果想要使用exception对象,则使用该对象的页面(错误处理页)必须在page指令中声明isErrorPage="true"

10、隐含对象的作用范围
1、pageScope 只能作用于页面 page, out, pageContext
2、requestScope 作用于Http请求,到了另外一个页面,request失效 request
由页面A转发到页面B,则request同时作用于页面A和页面B
3、sessionScope session作用域, 用于所有页面 session
4、applicationScope 应用程序作用域,作用于整个应用程序的所有用户的所有页面 application

javax.serlvet.jsp.PageContext
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE

11、Cookie
保存网站信息到客户端浏览器, 这个数据可以轻易地被获取到
JSP中,通过Cookie对象保存信息,key-value
通过response.addCookie(Cookie)添加cookie到浏览器端

通过request.getCookies()方法获取由客户端发送过来的Cookie对象数组,如果没有cookie,则返回 null
所以服务端需要进行null判断

1)cookie信息是在浏览器中的,但并不是所有的浏览器都支持cookie功能;

2)cookie对象不能单独使用,必须和request对象或response对象结合使用;

3)不同的浏览器中存储的cookie不是通用的。例如:IE存储的cookie只有IE自己使用;

4)存储在浏览器中的cookie对任何Web服务器都是开放的,所以写入的cookie可能被其它网页读取或覆盖掉

转发和重定向:
转发:
WEB容器内部由一个JSP页面转发到另外一个JSP页面,客户端地址栏URL不会发生改变

request.getRequestDispatcher("url").forward(request, response);

转发时指定url前可以加"/", 转发中url相对于ContextPath

转发可以用request的setAttribute给目标页面传递参数,目标页面通过request.getAttribute()方法获取传递过来的参数

重定向:
实际是告诉浏览器由一个页面跳转到另外一个页面,客户端浏览器地址栏会发生改变,显示出目标地址
HTTP Response Status Code: 状态码为302
response.sendRedirect("url");
在重定向中,URL相对于ContextPath来重定向, 所以不需要在url前加“/”
http://localhost:8080/JSPInnerObject/home.jsp
如果加了“/”, http://localhost:8080/home.jsp 404 Not Found

重定向如果想要传递参数到目标url,则需要使用查询字符串
response.sendRedirect("http://localhost:8080/login.jsp?name=aa");

JSP隐含对象的更多相关文章

  1. JSP 隐含对象

    JSP 隐含对象 JSP隐含对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐含对象也被称为预定义变量. JSP所支持的九大隐含对象: 对象描述 reques ...

  2. jsp隐含对象(内置对象)

    JSP共有以下9个内置的对象: request HttpServletRequest类的实例,用户端请求,此请求会包含来自GET/POST请求的参数 response HttpServletRespo ...

  3. #1123-JSP隐含对象

    JSP 隐含对象 JSP隐含对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐含对象也被称为预定义变量. JSP所支持的九大隐含对象: 对象,描述 reque ...

  4. JSP页面的隐含对象和Servlet程序里的对象之间的关联和区别

    首先,有两个概念: 1.JSP页面的域对象:pageContext,request,session,application对象(四个) void setAttribute(String name,Ob ...

  5. Jsp的九个隐含对象

    JSP的9个隐含对象(内置对象) 不需要预先声明,就可以在jsp或者表达式中随意使用 out javax.servlet.jsp.JspWriter类型,代表输出流的对象.作业域:页面的执行期. re ...

  6. javaWEB总结(12):JSP页面的九个隐含对象

    前言 jsp本质上是一个servlet,而在jsp中有九个不用声明就可以使用的对象,我们叫他隐含对象.本文基于上文所写,如有需要可查看上一篇文章javaWEB总结(11):JSP简介及原理. 打开上次 ...

  7. JSP EL隐含对象

    JSP 内置对象 JSP EL隐含对象 描述 page pageScope page 作用域 request requestScope request 作用域 session sessionScope ...

  8. JSP中的隐含对象

    什么是JSP中隐含对象:容器自动创建,在JSP文件中可以直接使用的对象. 作用:JSP预先创建的这些对象可以简化对HTTP的请求,响应信息的访问. JSP中的隐含对象: 输入输出对象:request. ...

  9. JSP基本用法(二)隐含对象

    一.摘要 在JSP容器中生成的Servlet类的_jspService()方法中,定义了几个对象,在编写JSP页面时我们可以使用这些隐含对象. PageContext pageContext = nu ...

随机推荐

  1. ES使用org.elasticsearch.client.transport.NoNodeAvailableException: No node available 错误解决方法

    1) 端口错 client = new TransportClient().addTransportAddress(new InetSocketTransportAddress(ipAddress, ...

  2. (转)【学习笔记】通过netstat+rmsock查找AIX端口对应进程

    原文:http://www.oracleplus.net/arch/888.html https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72 ...

  3. Linux下安装Nginx详细图解教程 (nginx-1.2.6)

    什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...

  4. c++拷贝构造函数(深拷贝、浅拷贝)——转

    拷贝构造函数: 拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它的唯一的一个参数是本类的一个引用变量,该参数是const类型,不可变的.例如:类A的拷贝构造函数的形式为A(A& ...

  5. Shell脚本 | 抓取log文件

    在安卓应用的测试过程中,遇到 Crash 或者 ANR 后,想必大家都会通过 adb logcat 命令来抓取日志定位问题.如果直接使用 logcat 命令的话,默认抓取出的 log 文件包含安卓运行 ...

  6. Java运行时,指定程序文件的编码

    在命令行cmd里面运行 java -jar test.jar的时候,发现里面执行的汉字发生乱码.原来指定的是UTF-8. 解决如下: java -Dfile.encoding=UTF-8 -jar - ...

  7. gitlab之gitlab-ci和gitlab-runner<一>

    一.概述 gitlab是开源代码托管软件,有ce和ee两种版本,一般情况下ce完全能满足企业使用,如果不差钱可以使用ee版本,这里使用的是ce版.之前也一直在做CI/CD,最开始采用gitlab+we ...

  8. Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <-错误解决方案

    做项目的时候因为懒,在写service时直接复制了控制器的依赖注入,之后就出现了这个错误,查了半天. 解决其实很简单,删除掉service中注入的$scope即可.

  9. Mac添加命令别名

    1. 切换到用户主目录 $ cd 2. 编辑或新建.bash_profile文件 3. 添加别名 命令别名设置语法: alias [别名]='[指令名称]' 注意:等号两边均无空格,指令名称中如有空格 ...

  10. 嵌入式Linux安装Dropbear SSH server

    0. 背景 OpenSSH因为其相对较大,一般不太适用于嵌入式平台,多用于PC或者服务器的Linux版本中. Dropbear是一个相对较小的SSH服务器和客户端.它运行在一个基于POSIX的各种平台 ...