JSP基本语法总结【2】九大内置对象
内置对象也称为内建对象,隐含对象,即无需声明,直接可以在JSP中使用的java对象。JSP的内置对象就是把最常用、重要的几个对象直接创建了。
JSP有9大内置对象:Request,Response, Page, Application , PageContext, Out, Session , Config, Exception
1' 使用Request对象获取请求
表示javax.servlet.http.HttpServletRequset对象。包含所以请求的信息,如请求来源,表头,cookies,相关的参数值等。
常用方法:
(1)Object getAttribute(String name) 返回name指定的属性值,该属性返回不存在时返回null
(2)void setAttribute(String name,Object) 在属性列表中add/delete指定的属性
(3) String getParameter(String name) 获取客户端发送给服务器端的参数值
(4)String[] getParameters(String name) 获取请求中指定参数的所有值
(5)String getProtocol() 返回请求使用的协议,如HTTP1.1
(6)String RequestURI() 返回发送请求的客户端地址,但不包括请求的参数字符串
(7)String getRemoteAddr() 获取发出请求的客户端IP地址
(8)HttpSession getSession() 获取session
2' 使用Response对象做应答
表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法。
(1)sendRedirect(URL) 可以将用户重定向到一个不同的页面URL
(2)setContentType(String type) 响应设置内容类型头
(3)addHeader(String name,String value) 添加String类型的值到HTTP文件头
▲sendRedirect与forword重定向的区别:后者实在容器内部实现的同一个web app的重定向,只能重定向到同一个web app的一个资源,URL不变;而前者可以重定向任意URL,因为senRedirect是修改HTTP头实现的,URL没什么限制,重定向后浏览器的地址栏URL改变。还有一个,forword重定向将原始的HTTP请求对象Request从一个Servlet实例传递到另一个实例,而senRedirect方式的两者不是同一个Request,简而言之,就是forword可以在转移时带上请求参数,而sendRedirect则不可。
3‘ Session对象中保存用户会话
表示一个请求的javax.servlet.http.HttpSession对象。session可以存储用户的状态信息。在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器到客户关闭浏览器离开服务器时结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法(如cookie)知道这是同一个客户,此时就需要session了。
常用方法:
(1)public String getId() 获取session对象编号。
(2)public void setAttribute(String key,Object obj) 将obj对象添加到session对象中,并指定一个索引关键字。
(3)public Object getAttribute(String key) 获取session中含有关键字的对象
(4)public Boolean isNew() 判断是否为一个新客户
4' Appliction对象,pageContext对象和JSP的Scope
服务器启动后就产生了Application对象;pageContext与Application类似,有setAttribute()和getAttribute()方法来保存对象,只是他只限于本页面内。
▲JSP的范围(Scope),分为四个:Page,Request,Session,Application。分别由pageContext,Request,Session,Application4个内置对象对应来保存对象,方法名都为上述两个方法setAttribute()和getAttribute()。
Ⅰ Page Scope 一个jsp页面中
Ⅱ Request Scope 一个jsp网页发出请求到另一个jsp网页之间,随后这个属性失效。即一个Client发出的一个请求
Ⅲ Session Scope 一个Client的所有请求共用
Ⅳ Application Scope 全局唯一,共用一个(慎用) 服务器开始执行服务到服务器关闭为止
5‘ 使用Out对象输出
为javax.jsp.JspWriter的一个实例,是一个输出流,用来向客户端输出数据。
常用方法:
(1)out.print() 输出各种类型数据
(2)out.newLine() 输出一个换行符
(3)out.close() 关闭流
6’ Exception处理异常
用于处理JSP文件执行发生的错误和异常,只有在错误页面才可以使用,前提在page指令中加入" isErrorPage=True "
常用方法:
(1)String getMessage() 取得错误提示信息
(2)void printStackTrace() 一场的堆栈信息
7‘ Page对象和Config对象
Page对象表示从该页面产生的一个Servlet实例,详单与这个JSP产生Servlet类的this,可以通过Page对象访问实例的属性和函数。
Config表示一个javax.servlet.ServletConfig对象。用于存取Servlet实例的初始化参数。
常用方法:
(1)String getInitParameter(String name) 返回名称为那么的初始化参数值
(2)Enumeration getInitParameter() 返回这个JSP所有的初始参数的名称集合
(3)ServletContext getContext() 返回执行者的Servlet的上下文
(4)String getServletName() 返回Servlet的名称
JSP基本语法总结【2】九大内置对象的更多相关文章
- Java Web(五) JSP详解(四大作用域九大内置对象等)
前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...
- 【转载】JSP详解(四大作用域九大内置对象等)
前面讲解了Servlet,了解了Servlet的继承结构,生命周期等,并且在其中的ServletConfig和ServletContext对象有了一些比较详细的了解,但是我们会发现在Servlet中编 ...
- web开发(五) JSP详解(四大作用域九大内置对象等)
在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6427759.html>,在此仅供学习参考之用. 一.JS ...
- 重温JSP学习笔记--三大指令九大内置对象
最近在温习javaweb的相关基础知识,鉴于我弄丢了记满了整整一本的笔记,决定以后把笔记和一些学习上的心得以及碰到的一些问题统统都放在网上,今天看了一下jsp的相关基础,以下是笔记: JSP三大指令: ...
- JSP九大内置对象,七大动作,三大指令
JSP之九大内置对象 隐藏对象入门探索 Servlet 和JSP中输出数据都需要使用out对象.Servlet 中的out对象是通过getWriter()方法获取的.而JSP中没有定义out对象却可以 ...
- jsp(九大内置对象,三大指令)
九大内置对象JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.except ...
- 今天我们来认识一下JSP的九大内置对象
虽然现在基本上我们都是使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对象的.像request.response.session这些对象,即便使用 ...
- jsp的九大内置对象
九大内置对象 jsp servlet 对象名 类型 使用范围 request HttpServletRequest 请求 浏览器--->服务器 response HttpServletRes ...
- jsp数据交互(一),九大内置对象
九大内置对象 九大内置对象 内置对象 类型 说明 作用域 request javax.servlet.ServletRequest 请求对象——在 一次请求/一个Request请求周期 中传递数据,请 ...
- JSP九大内置对象的作用和用法总结?
JSP九大内置对象的作用和用法总结? 1.request对象javax.servlet.http.HttpServletRequest request对象代表了客户端的请求信息,主要用于接受通过HTT ...
随机推荐
- elasticsearch系列(四)部署
本文采用tar包的方式部署es 准备jdk8的环境 5.4.0的es依赖jdk8及以上版本 下载linux版的jdk jdk-8u121-linux-x64.tar.gz tar -zvxf jdk- ...
- (中级篇 NettyNIO编解码开发)第八章-Google Protobuf 编解码-2
8.1.2 Protobuf编解码开发 Protobuf的类库使用比较简单,下面我们就通过对SubscrjbeReqProto进行编解码来介绍Protobuf的使用. 8-1 Protob ...
- TCP/UDP客户端
Python 网络编程----模块socekt 在渗透测试的过程中,经常会遇到需要创建一个TCP客户端来连接服务器.发送垃圾数据.进行模糊测试活进行其他任务的情况. 简单的TCP客户端代码: #!/u ...
- hdu_A Walk Through the Forest ——迪杰特斯拉+dfs
A Walk Through the Forest Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/ ...
- 【转载】C/C++中的char,wchar,TCHAR
点击这里查看原文章 总体简介:由于字符编码的不同,在C++中有三种对于字符类型:char, wchar_t , TCHAR.其实TCHAR不能算作一种类型,他紧紧是一个宏.我们都知道,宏在预编译的时候 ...
- Java中常见的数据结构的区别
把多个数据按照一定的存储方式,存储起来,称存储方式之为数据结构. 数据的存储方式有很多,数组,队列,链表,栈,哈希表等等. 不同的数据结构,性能是不一样的,比如有的插入比较快,查询比较快,但是删除比较 ...
- 限制容器对CPU的使用 - 每天5分钟玩转 Docker 容器技术(28)
上节学习了如何限制容器对内存的使用,本节我们来看CPU. 默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制. Docker 可以通过 -c 或 --cpu-shares 设置容器 ...
- 利用canvas压缩图片
现在手机拍的照片动不动就是几M,当用户上传手机里的照片时一个消耗流量大,一个上传时间长,为了解决这个问题,就需要压缩图片: 想法:利用canvas重绘图片,保持宽高比不变,具体宽高根本具体情况而定. ...
- JS问题笔记——模拟Jq底层实现工厂模式
<script type="text/javascript"> (function (window,undefined){ function _$(arguments) ...
- 懵懂oracle之存储过程2
上篇<懵懂oracle之存储过程>已经给大家介绍了很多关于开发存储过程相关的基础知识,笔者尽最大的努力总结了所有接触到的关于存储过程的知识,分享给大家和大家一起学习进步.本篇文章既是完成上 ...