文档章节

JSP九个内置对象

YuanyuanL
 YuanyuanL
发布于 2015/08/25 13:54
字数 1170
阅读 79
收藏 5

 内置对象(又叫隐含对象,JSP有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用.

request 

javax.servlet.ServletRequest的子类型。作用域为request(用户请求期)。

此对象封装了由WEB浏览器或其它客户端生成的HTTP请求的细节(参数,属性,头标和数据)。

对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象常用的方法有:getParameter、getParameterNames 和getParameterValues 通过调用这几个方法来获取请求对象中所包含的参数的值

代码示例:

注意:1.request的getParameter(),是用来获取浏览器通过post或get发出的请求信息;

          2.request的setAttribute()和getAttribute()方法在web组件之间传递信息的。

          3.表单中的多选按钮可以通过request的getParameterValues来获得选中项的内容。


response  

javax.servlet.ServletResponse的子类型。作用域为page(页面执行期)。

此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。

代码示例:

response的addCookie()方法。

Cookie的setMaxAge()是设置cookie的最大存活时间(单位是秒);




pageContext 

此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法:

该对象的方法都是抽象方法

javax.servlet.jsp.PageContext(抽象类)类型,作用域为page(页面执行期)。


session 

javax.servlet.http.HttpSession类型,作用域session(会话期)。

  HttpSession是一个类似哈希表的与单一WEB浏览器会话相关的对象,它存在于HTTP请求之间,可以存储任何类型的命名对象。 如果不需要在请求之间跟踪会话对象,可以通过在page指令中指定session="false"。  需要记住的是pageContext对象也可以与session.getAttribute(),session.setAttribute()一样的方式取得并设置会话属性。

对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。“session” 对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。常用的方法包括getId、 getValue、 getValueNames和putValue等。 

   概要
  HTTP是无状态(stateless)协议;
  Web Server 对每一个客户端请求都没有历史记忆;
  Session用来保存客户端状态信息;
  由Web Server 写入;
  存于客户端;
  客户端的每次访问都把上次的session记录传递给Web Server;
  Web Server读取客户端提交的session来获取客户端的状态信息


application 

servlet的环境通过调用getServletConfig().getContext()方法获得。对象负责提供应用程序在服务器中运行时的一些全局信息,像提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径,注册信息的方式。常用的方法有getMimeType和getRealPath等。

javax.servlet.ServletContext类型,作用域是application(整个程序运行期)。


page 

java.lang.Object类型,作用域为page(页面执行期)。

该对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。


config 

对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。

javax.servlet.ServletConfig,作用域为page(页面执行期)


out 

javax.servlet.jsp.JspWriter类型,作用域为page(页面执行期)。

代表输出流的对象。对象代表了向客户端发送数据的对象,与“response” 对象不同,通过“out” 对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过“out” 对象直接向客户端写一个由程序动态生成HTML文件。常用的方法除了pirnt和println之外,还包括clear、clearBuffer、 flush、getBufferSize和getRemaining,这是因为“out” 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法


exception 

java.lang.Throwable,作用域为page(页面执行期)。

对象则代表了JSP文件运行时所产生的异常或者错误。通过JSP错误页面中一个catch块已经溢出但没有捕获的java.lang.Throwable的任意实例,传向了errorPage的URI。注意exception只有在page指令中具有属性<%@ page isErrorPage="true "%>时才有效。



© 著作权归作者所有

共有 人打赏支持
YuanyuanL

YuanyuanL

粉丝 152
博文 322
码字总数 188376
作品 0
济南
部门经理
私信 提问
Jsp 和 Servlet 有什么不同?

面试中被问到了 Jsp 和 Servlet 有什么不同?在这里总结分享下。 回答思路先分别进行基本介绍,然后分析说明两者相同点和不同点。 基本介绍 Servlet: Servlet 是一种服务器端的Java应用程序...

几个栗子
08/22
0
0
jsp servlet Action获取request,respone,session等

Servlet Jsp Struts2 HttpServletRequest request内置对象 ServletActionContext.getRequest() 实现ServletRequestAware接口 HttpServletRespone reponse内置对象 ServletActionContext.get......

长平狐
2013/01/06
236
0
初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)

注释 java : // / / /** */ html : jsp <%-- --%> jsp注释和html注释的区别 jsp注释对jsp引擎有作用,当jsp引擎看到这个注释后,生产servlet文件是会忽略他 html注释对jsp引擎没有作用,jsp...

姜白告
08/03
0
0
浅谈ServletContext 与application的异同

servletContext接口是Servlet中最大的一个接口,呈现了web应用的Servlet视图。ServletContext实例是通过 getServletContext()方法获得的,由于HttpServlet继承Servlet的关系GenericServlet类...

小欣妹妹
2017/11/01
0
0
Servlet 生命周期、工作原理

Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁。 init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet 对象。可以配...

ArlenXu
2015/01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中前台接收后台List数据并循环打印

在Java后端获取到了数据,然后我们需要传到前端页面展现出来。 方法有两种: 方法一: 后端: request.setAttribute("list",list); 前端: <%ArrayList list = (ArrayList) request.get...

小_橙_子
11分钟前
0
0
Java:字节流和字符流(输入流和输出流)

什么是流 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互...

编程SHA
11分钟前
0
0
zookeeper收尾+dubbo前瞻

zookeeper是一个开源的分布式协调框架:数据发布订阅,负载均衡,集群,master选举。 原子性:要么同时成功,要么同是失败(分布式事务) 单一视图:无论客户端连接到哪个服务器,所看到的模...

微笑向暖wx
12分钟前
0
0
oracle11g 修改字符集 修改为ZHS16GBK

oracle11g 修改字符集 修改为ZHS16GBK 1.cmd下,cd到oracle数据库软件的服务器端 如:D:\app\Administrator\product\11.2.0\dbhome_1\BIN 2.输入set ORACLE_SID=你想进入的数据库的那个sid 3...

xiaoxin
12分钟前
0
0
图片缓存

Kxvz
14分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部