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 ...
随机推荐
- QT修改UI和源码后,程序页面还是原来页面的解决方法
发生原因: 移植了一个Qt程序在修改完QT的cpp源码和UI界面布局等内容后,重启点击QT Creator左下角的运行(Ctrl+R)编译程序并启动后,程序界面及修改内容并没有改变. 解决方式: 找到 ...
- 《NLTK基础教程》译者序
购买<NLTK基础教程> 说来也凑巧,在我签下这本书的翻译合同时,这个世界好像还不知道AlphaGo的存在.而在我完成这本书的翻译之时,Master已经对人类顶级高手连胜60局了.至少从媒 ...
- Android6.0-运行时权限处理
为什么需要有运行时权限? 大家都知道在Android6.0之前,权限在应用安装过程中只询问一次,以列表的形式展现给用户,如果点击取消(即不认可应用所申请的权限),则会取消应用的安装.而用户出于安装应用 ...
- php 二级级联菜单
找了很多个级联的菜单,都不好用,自己弄个简单点的,共享下,希望有朋友用得着 <?php //建立表country,有三个字段Id,parentId,area. $pro = $_POST['pr ...
- firstChild,lastChild,nextSibling,previousSibling & 兼容性写法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 最基础的mybatis入门demo
demo结构 数据库情况 (不会转sql语句 骚瑞) 数据库连接信息 jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:m ...
- 提高java编程质量 - (四)i++ 和 ++i 探究原理
先看一个例子: package com.test; public class AutoIncrement { public static void main(String[] args) { int ...
- MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?
本文出处:http://www.cnblogs.com/wy123/p/7003157.html 最近无意间看到一个MySQL分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的 ...
- EF之通过不同条件查找去重复
Enumerable.Distinct<TSource> Method(IEnumerable<TSource>, IEqualityComparer<TSource&g ...
- Bash中的特殊变量和位置参量
位置参量:向脚本或函数传递的参数,可以被set命令设置.重置和清空. 1.$$ 当前Shell的PID 2.$- 当前Shell的选项,如果是交互式shell,应该包含字符i,例如$ echo $-h ...