JSP内置对象(隐式对象)是JSP容器为每个页面自动实例化的一组对象,开发者可直接使用,也被称为预定义变量。

JSP容器提供了9个内置对象

request  // javax.servlet.http.HttpServletRequest接口类型的引用变量
response // javax.servlet.http.HttpServletResponse接口类型的引用变量
out // javax.servlet.jsp.JspWriter抽象类类型的引用变量
config // javax.servlet.ServletConfig接口类型的引用变量
page // javax.servlet.jsp.HttpJspPage接口类型的引用变量
pageContext // javax.servlet.jsp.PageContext抽象类类型的引用变量
session // javax.servlet.http.HttpSession接口类型的引用变量
application // javax.servlet.ServletContext接口类型的引用变量
exception // java.lang.Throwable类类型的引用变量

request

类型:javax.servlet.http.HttpServletRequest接口类型的引用变量

描述:来自客户管的请求经由Servlet容器处理后,由request对象进行封装。注意,客户端和服务器的一次通信就是一次请求

作用域:request

重要方法:

request.getParameter(name)  // 获取参数的值,参数可以通过表单或URL的token提交
request.getParameterValues(name) // 获取表单参数的一组数据,用于可以选多个值的表单
request.setAttribute(name, value) // 设置请求对象的属性 属性的作用域是整个request
request.getattribute(name) // 获取请求对象的属性
request.setCharacterEncoding("UTF-8") // 设置请求数据的编码
request.getRequestDispatacher("list.jsp").forward(request, response) // 服务器内进行转发

response

类型:javax.servlet.http.HttpServletResponse接口类型的引用变量。

描述:该对象封装了JSP的响应,然后发送到客户端以响应客户端的请求。

作用域:page

重要方法:

response.setContentType("text/html")  // 设置响应的类型
response.setCharacterEncoding("UTF-8") // 设置响应的编码
response.sendRedirect("跳转的页面") // 页面跳转

out

类型:javax.servlet.jsp.JspWriter抽象类的引用变量,类似于通过HttpServletResponse.getWriter()方法获得的java.io.PrintWriter对象。

public abstract class JspWriter extends java.io.Writer
public class PrintWriter extends java.io.Writer

主要用来向客户端输出数据

作用域:page,即每个页面都有一个自己的out内置对象

重要方法:print() / println() / writer()

config

类型:javax.servlet.ServletConfig接口类型的引用变量。

描述:本JSP页面的ServletConfig

作用域:page

pageContext

类型:javax.servlet.jsp.PageContext抽象类的引用变量。

描述:当前JSP页面的上下文(上下文可以联系到当前页面的所有信息)

作用域:page

public abstract class PageContext extends JspContext
public abstract class JspContext extends java.lang.Object

该抽象类提供了有用的上下文信息,并可以通过该对象来获得各种Servlet的相关对象。如

// 以下方法并不常用,可直接使用内置变量
getRequest() // 得到内置对象 request
getResponse() // 得到内置对象 response
getOut() // 得到内置对象 out
getServletConfig() // 得到内置对象 config
getpage() // 得到内置对象 page
getSession() // 得到内置对象 session
getServletContext() // 得到内置对象 application
getException() // 得到内置对象 exception
// 以下方法用于获取和设置属性
getAttribute(name)
getAtrribute(name, scope)
findAtrribute(name)
setAttribute(name, value)
setAttribute(name, value, scope)
removeAttribute(name)
removeAttribute(name, scope)

page

类型:javax.servlet.JspPage接口类型的引用变量,JspPage接口继承Servlet接口。

描述:page内置对象代表当前JSP页面本身,类似于Java中的this指针。

作用域:page

public interface JspPage extends javax.servlet.Servlet

在Servlet接口的5个方法的基础上又增加了2个方法

session

类型:javax.servlet.http.HttpSession接口类型的引用变量。服务器自动为每个用户创建一个session对象,用于存储会话过程中的数据,从而跟踪用户的操作状态。

描述:该对象表示一个会话,用来保存用户信息,以便跟踪每个用户的状态,但是不要用来保存业务数据(业务数据用表单提交,request对象获取)。

作用域:session

重要方法:

session.getId()  // 获取该session的JSESSIONID号,由Servlet容器自动产生。
session.isNew() // 判断该session是否是新建的
session.setAttribute(name, value) // 设置当前会话中的属性
session.getAttribute(name) // 获取当前会话中的属性
session.removeAttribute(name) // 删除当前会话中的属性
session.setMaxInactiveInterval(ms) // 设置当前会话的失效时间。Tomcat默认的会话时间是30分钟
session.invalidate() // 初始化当前会话,删除会话中的数据

结束会话的三种方式

1)关闭服务器
2)手动终止会话
3)会话过期(默认是30分钟)

application

类型:javax.servlet.ServletContext接口类型的引用变量。

描述:从 Servlet配置对象获得的Servlet上下文。该对象的声明周期最长,服务器启动的时候就会创建application对象,直到服务器被关闭,该对象只有一个,被所有用户共享。

作用域:application

exception

类型:java.lang.Throwable类型的引用变量。

描述:当前JSP页面的异常对象

作用域:page

实例

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.Enumeration" %> <!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>JSP Implicit Objects</title>
</head>
<body>
<b>Http headers:</b>
<br />
<%
for(Enumeration<String> e = request.getHeaderNames(); e.hasMoreElements();){
String header = e.nextElement();
out.println(header + ": " + request.getHeader(header) + "<br />");
}
%>
<hr />
<%
out.println("Buffer size: " + response.getBufferSize() + "<br />");
out.println("Session id: " + session.getId() + "<br />");
out.println("Servlet name: " + config.getServletName() + "<br />");
out.println("servlet info: " + application.getServerInfo());
%>
</body>
</html>

JSP 9个内置对象的更多相关文章

  1. jsp篇 之 Jsp中的内置对象和范围对象

    Jsp中的内置对象: 在jsp页面代码中不需要声明,直接可以使用的对象. 一共有[9个内置对象]可以直接使用. 对象类型           名字 PageContext          pageC ...

  2. JavaWeb -jsp文件和内置对象的解析

    jsp文件和内置对象的解析 对page解析 JSP九大内置对象(自带,无需new) 1 out:输出对象 2 request:请求对象,存储“客户端像服务端发送的请求信息” 3 response:响应 ...

  3. JSP中的内置对象和Struts中的Web资源的详解

    JSP中的内置对象有如下几种: request :继承于HttpServletRequest, HttpServletRequest继承ServletRequest, 获得的Request对象的方法: ...

  4. jsp有哪些内置对象?作用分别是什么?(至少三个)

    jsp有哪些内置对象?作用分别是什么?(至少三个) 解答: 1)request表示HttpServletRequest对象.它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, head ...

  5. JSP有哪些内置对象

    JSP有哪些内置对象? 1.page:JSP网页本身; 2.request:用户端请求,此请求会包含来自GET/POST请求的参数; 3.session:请求有关的会话; 4.application: ...

  6. Spring,SpringMVC,MyBatis,Hibernate,Servlet的生命周期,jsp有哪些内置对象,Tomcat,Cookie和Session的作用以及区别,oracle,MYSQL等面试题总结

    1. 什么是Spring,谈谈你对Spring的理解 Spring是我们JAVA开发人员在搭建后台时选用的一个轻量级的开源框架,Spring框架目前也是功能丰富,十分优秀企业级采用最多的一个框架. S ...

  7. JSP九个内置对象

    JSP内置对象有: 1.request对象      客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例. 2.r ...

  8. jsp中的内置对象(9个)、作用

    jsp内置对象 定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象 客户 ...

  9. jsp九个内置对象、四个域对象及Servlet的三大域对象

    一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创 ...

随机推荐

  1. Javascript概念

    什么是JavaScript? 1 以前的目的:验证表单输入的正确性. 2 现在的目的:多做一些页面的交互效果. 3 javascript是一个跨平台的脚本语言. 4 网景公司开发的,由布兰登·艾奇最先 ...

  2. 2018面向对象程序设计(Java)第4周学习指导及要求

    2018面向对象程序设计(Java) 第4周学习指导及要求(2017.9.19-2017.9. 26)   学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定 ...

  3. console.log() 字体颜色

    console.log("%c%s", "color: #fff; background: #20B2AA; font-size: 24px;", " ...

  4. bpm 学习笔记一

    名词解释: DC: Development Component WD:Web Dynpro Keep DC Local for Now

  5. python 内置函数(二) 进阶函数 递归内容及二分法查找 知识点

    1,lambda:  匿名函数 2.sorgted()  排序函数 3,filter()   过滤函数 筛选 4,map()  映射函数 5.递归 6.二分法 一. 匿名函数: lambda lamb ...

  6. Structured streaming

    Structured streaming是spark 2.0以后新增的用于实时处理的技术.与spark streaming不同的是,Structured streaming打开了数据源到数据落地之间的 ...

  7. 七 shelve模块

    shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而值可以是python所支持的数据类型 import shelve f=shelve.o ...

  8. Jenkins安装部署(二)

    Jenkins配置 一.修改jenkins家目录 由于jenkins在启动个之后会默认将所有的构建应用在家目录中创建一遍,为了合理化服务器资源,重新定义jenkins家目录. 在tomcat的cata ...

  9. HDU4522 湫湫系列故事——过年回家

    传送门:点我 中文题面. 思路:拿spfa对卧铺和硬铺分别跑spfa,然后找两个的最短路.体感堆优化的dij也可以,不过spfa跑跑就过去了.有个细节是最后得用long long 存数据,其他的没啥. ...

  10. if (HttpContext.Current.User.Identity.IsAuthenticated) 权限验证总是true

    将浏览器关闭重启. 注:该语句是判断用户是否经过验证.