文档章节

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

粉丝 153
博文 319
码字总数 187682
作品 0
济南
部门经理
初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)

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

姜白告
08/03
0
0
servlet/jsp基础复习

servlet就是一个普通的Java类,类对象由服务器(容器)创建,实现请求,响应交互数据。 实现第一个servlet继承HTTPservlet重写doget,dopost方法。其实servlet执行处理请求时候都会调用父类s...

hello_hp
2017/10/20
0
0
JSP 学习总结---学习笔记

什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的对象 HttpServletResponse表示服务端到客户端的...

知止内明
04/18
0
0
七、JSP九大内置对象和四个作用域

九大内置对象: request:类型是HttpServletRequest,和Servlet里的HttpServletRequest一模一样。 response:类型是HttpServletResponse,和Servlet里的HttpServletResponse一模一样。JSP里基...

Wakeeee_
07/16
0
0
浅谈ServletContext 与application的异同

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

小欣妹妹
2017/11/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

002,zabbix-agent的安装 监控Linux主机

2.1.安装zabbix-agent $ rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm$ yum install -y zabbix-agent zabbix-get 2.2.配置zabbix-agent ......

happyeveryday32
33分钟前
2
0
docker learn :swarm

swarm是什么 swarm是一组运行docker服务的集群,之后,还是使用那些命令去操作docker,但是是通过swarm manager来执行的。 swarm中的机器可以是实体的也可以是虚拟的,加入swarm后,他们被当作...

writeademo
33分钟前
1
0
Golang + vscode 开发环境配置

GOPATH 环境变量的配置 https://my.oschina.net/xinxingegeya/blog/718305 安装vscode go 扩展 下载vscode ,安装go的扩展https://github.com/Microsoft/vscode-go 该扩展对 Golang 支持非常......

秋风醉了
35分钟前
0
0
idea jar包

我自己用idea新建一个springboot项目,打包一直有问题,百度了下,又总结了下。 方式一: 找到Project Structure菜单,然后点开,照下图点击 然后出现下图所示 红框1:为你项目的main函数所在...

朝如青丝暮成雪
37分钟前
0
0
Vue scoped CSS 与深度作用选择器 /deep/

使用 scoped 后,父组件的样式将不会渗透到子组件中。 例如(无效): <template> <div id="app"> <el-input class="text-box" v-model="text"></el-input> </div></template><......

不负好时光
37分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部