黑马程序员 Java教程:JSP九大内置对象和四大域
jsp的九大内置对象和四大作用域
Out对象时一个输出流,用来向客户端输出数据。Out对象用于各种数据的输出。其常用方法如下。
● out.print():输出各种类型数据。
● out.newLine():输出一个换行符。
● out.close():关闭流。
6、Cookie对象
(1)什么是Cookie
整个应用是指从应用启动,到应用结束。我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用,当然你关闭了服务器,就会把上面所有的应用都关闭了。
application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。
与上述三个不同的是,application里的变量可以被所有用户共用。如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。这在其他scope中都是不会发生的,page, request, session都是完全隔离的,无论如何修改都不会影响其他人的数据。
1.简单说 page指当前页面。在一个jsp页面里有效
2.request 指从http请求到服务器处理结束,返回响应的整个过程。在这个过程中使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。
3.Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程。
4.application它的有效范围是整个应用。
(2)Session对象的ID
当一个客户首次访问服务器上的一个JSP页面时,JSP 引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样 Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该 服务器时,服务器为该客户再创建一个新的Session对象。
JSP内置9大对象及方法
JSP内置9大对象JSP的内置对象包括request、respones、session、application、out、config、page、pageContext、exception1. request对象request对象封装了客户端提交数据信息,包括用户提交的信息以及客户端的一些信息。
客户端可通过HTML表单或者在网页地址后面使用参数的方法提交数据,在用request对象的相关方法来获取提交的各种数据。
【JSP中直接request.方法,如:<%=request.getParameter("username")%>】1. getAttribute()将参数name指定的属性作为一个Object对象返回;如果参数name中给定的名字不存在相应的属性则返回null,public Object getAttribute(String name)2. getAttributeNames()得到一个Enumeration(枚举型)对象,其中的值为此请求中可用的属性的名称,public java.util.Enumeration getAttributeNames()3. getCharacterEncodeing()此方法返回请求中所用的字符串编码的名称,如果未指定字符串编码则返回null,public String getCharacterEncoding()4. getContentType()此方法返回请求的MIME类型,如果类型位置则返回null,public String getContentType()5. getContentPath()得到请求URI中请求的应用上下文路径。
如果当前Web应用就是Tomcat安装目录的webapps 子目录中的ROOT,则该方法返回"";如果为其他目录,则返回相对与Web应用服务器的根目录的子目录。
JSP九大内置对象
JSP内置对象在JSP内部已经被定义完善的对象有:out对象、request对象、response对象、exception对象、config 对象、page对象、pagecontext对象、application对象、session对象等九大内置对象(又称隐含对象)。
jsp内置对象 servlet中的java对象page thispageContext PageContextrequest HttpServletRequestresponse HttpServletResponseconfig ServletConfigexception Throwableout JspWritersession HttpSessionapplication ServletContext一、内置对象的作用域及使用方法application、session、request、page 4个JSP内置对象的作用域以及他们的使用方法。
几乎所有的Web开发语言都支持Session功能,Servlet也不例外。
Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的,作用域分为4种JSP内置对象作用域表所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。
Web交互的最基本单位为HTTP请求。
每个用户从进入网站到离开网站这段过程称为一个HTTP会话,一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话。
作用域解释如下。
1、 application:服务器启动到停止这段时间。
2、 session:HTTP会话开始到结束这段时间。
3、 request:HTTP请求开始到结束这段时间。
4、 page:当前页面从打开到关闭这段时间。
(1) application 作用域application作用域就是服务器启动到关闭的整段时间,在这个作用域内设置的信息可以被所有应用程序使用。
jsp中的9大内置对象
JSP中的9大内置对象对应的类pageContext javax.servlet.jsp.PageContextrequest javax.servlet.HttpServletRequestresponse javax.servlet.HttpServletResponsesession javax.servlet.HttpServletSessionapplication javax.servlet.ServletContextconfig javax.servlet.HttpServletConfigoutpageexception一、JSP中的九大内置对象:为什么会叫内置对象在我们的Java中对象要被实例化后才才可以用,jsp的9内内置对象是jsp内置的9个对象在使用的时候不需要去new其中前6个是必须掌握的:尤其是pageContext request responese session application 更是必须熟练掌握(若果想学好以后J2EE的知识前6大对象是必须牢牢掌握的后三种知道名字即可)二、四种属性范围属性范围:所谓的属性范围就是一个属性设置后经过多少个其他页面仍然可以访问到的属性范围1、pageContext:一个属性只能在本页面中取得,跳转到其他页面该属性值是无法获取到的。
2、request :一次服务器的请求范围,在一个页面中设置了属性只要经过的是服务器端的跳转后仍然可以获取到该属性值3、session:代表一次会话,就是在一个浏览器打开一个面的时候就是一次会话。
在一个页面中设置了属性只要不开启新的页面,不论是服务器端的跳转还是客户端的跳转都可以获取到该属性值4、application:代表整个服务器范围,不管是客户端跳转还是服务器端跳转页也不管跳转多少次开启多少个新的会话只要服务器不关闭都可以获取到该属性1 Public void setAttribute(String name,Object设置属性value)2 Public Object getAttribute(String name) 取得属性删除属性3 Public void deleteAttribute(String name,Objectvalue)。
JSP九个对象四个域
【四个域对象】
范围由小到大: page(jsp有效) request(一次请求) session(一次会话) application(当前web应用)
request 包含用户端送出的HTTP请求
response 包含送给用户端的HTTP回应
out 代表“输出数据流”(output stream)的JspWriter对象
config 包含Servlet(JSP编译后所产生的)相关信息的ServletConfig对象
|-----------getOut( )
|-----------getException( )
1.使用pageContext可以访问page、request、session、application范围的变量。
2.pageContext是PageContext类的实例,它提供了如下两个方法来访问page、request、session、application范围的变量。
【继承覆盖原则】:前面不能缩小,后面不能放大
|--------------父类访问权限不能比子类访问权限小【即子类访问权限只能比父类越大,子类是越来越开放,而不是越来越自私】
|--------------子类不能抛出比父类更大(多)的一次【父类抛“I/O”异常,子类顶多也抛“I/O”异常,如果子类还有其他异常,就必须“try catch”住,不能再抛出异常,即子类不能抛出比父类更多的异常】
config-----------------ServletConfig
application------------ServletContext---------------只有一个实例,一直存在,相当于系统的全局变量,实现多用户之间的数据信息共享。
Jsp学习总结(1)——JSP九大内置对象和四种属性范围解读
12. 时间:${pageScope.time}<brtml>
输出结果: 这说明page范围的值只能在本页使用!
1.4、 request属性范围
request将属性保存在一次请求范围之内:
前提:必须使用服务器端跳转:<jsp:forward/> 应用点:MVC设计模式、Struts、 Webwork 应用实例 首先是设置request: request.jsp
12. 获取session时间:${sessionScope.time}<br>
13. </body>
14. </html>
输出结果: 如果还有一个sessionResult1.jsp和sessionResult.jsp一样如下
[html]
01. <%@page import="java.util.*"%>
12. //设置request属性范围
13. request.setAttribute("name", "linbingwen");
14. request.setAttribute("time", new Date());
15. %>
16. <jsp:forward page="requestResult.jsp"/>
17. </body>
18. </html>
然后是取出sesson的值sessionResult.jsp
[html]
01. <%@page import="java.util.*"%>
jsp九大内置对象常用方法及四个作用域
jsp九⼤内置对象常⽤⽅法及四个作⽤域九⼤内置对象jsp中的九⼤内置对象是⾃带的,不需要new 也能使⽤的对象out:print(),println( )⽅法输出对象,向客户端输出内容request:请求对象,存储“客户端向服务端发送的请求信息”request对象的常见⽅法:String getParameter(String name) :根据请求的字段名key (input标签的name属性值),返回字段值value (input标签的value属性值)String[] getParameterValues(String name):根据请求的字段名key ,返回多个字段值value (checkbox)void setCharacterEncoding("编码格式utf-8") :设置post⽅式的请求编码(tomcat7以前默认iso-8859-1,tomcat8以后改为了utf-8)getRequestDispatcher("B.jsp").forward(request,response) :请求转发的⽅式跳转页⾯ A - > BServletContext getServerContext():获取项⽬的ServletContext对象Cookie getCookies():获取⼀个cookie对象void setAttribute(String name,Object obj):设置属性值(新增,修改)Object getAttribute(String name):根据属性名,查找属性值response:响应对象response对象的常见⽅法:void addCookie( Cookie cookie ),服务端向客户端增加cookie对象void sendRedirect(String location ) throws IOException :页⾯跳转的⼀种⽅式(重定向)void setContetType(String type):设置服务端响应的编码(设置服务端的contentType类型)session:会话对象,session存储在服务端实现机制:客户端第⼀次请求服务端时,服务端会产⽣⼀个session对象(⽤于保存该客户的信息),并且每个session对象都会有⼀个唯⼀的 sessionId( ⽤于区分其他session),且产⽣⼀个cookie,并且该cookie的name=JSESSIONID ,value=服务端sessionId的值;然后服务端会在响应客户端的同时将该cookie发送给客户端客户端第⼆次请求服务端时,服务端会先⽤客户端cookie种的JSESSIONID 去服务端的session中匹配sessionid,如果匹配成功(cookie jsessionid和sesion sessionid),说明此⽤户不是第⼀次访问,⽆需登录;session对象的常见⽅法:String getId() :获取sessionIdboolean isNew() :判断是否是新⽤户(第⼀次访问)void invalidate():使session失效(退出登录、注销)void setAttribute(String name,Object obj):设置属性值(新增,修改)Object getAttribute(String name):根据属性名,查找属性值void setMaxInactiveInterval(秒) :设置最⼤有效⾮活动时间int getMaxInactiveInterval():获取最⼤有效⾮活动时间application:全局对象application对象的常见⽅法:String getContextPath() :虚拟路径String getRealPath(String name):绝对路径(虚拟路径相对的绝对路径)void setAttribute(String name,Object obj):设置属性值(新增,修改)Object getAttribute(String name):根据属性名,查找属性值pagecontext:JSP页⾯容器void setAttribute(String name,Object obj):设置属性值(新增,修改)Object getAttribute(String name):根据属性名,查找属性值config:配置对象(服务器配置信息)page:当前JSP页⾯对象(相当于java中的this)exception:异常对象四个作⽤域四种范围对象作⽤域pageContext(page对象)请求数据当前页⾯有效request请求对象请求数据同⼀次请求有效,(重定向后⽆效)session会话对象请求数据同⼀次会话有效appliation全局对象请求数据全局有效(整个项⽬有效)以上4个对象共有的⽅法:Object getAttribute(String name):根据属性名,查找属性值void setAttribute(String name,Object obj) :设置属性值(新增,修改)setAttribute("a","b") ;//如果a对象之前不存在,则新建⼀个a对象;如果a之前已经存在,则将a的值改为b void removeAttribute(String name):根据属性名,删除对象注意:尽量使⽤最⼩的范围。
四大域对象-JSP九大内置对象-11个EL隐式对象
四大域对象详解JSP中隐式对象的名称范围名称具体的类型pageContext page javax.servlet.jsp.PageContextrequest request javax.servlet.ServletRequest (显示完数据就没有用了)session session javax.servlet.http.HttpSession (显示完数据了,过一会自己还要用)application application javax.servlet.ServletContext(显示完数据了,大家都要用。
不建议使用,如果使用,必须同步处理)JSP九大内置对象JSP的内置对象引用名称对应的类型request HttpServletRequestresponse HttpServletResponsesession HttpSession(有开关的:page指令的session属性的取值)application ServletContextconfig ServletConfigpage this(当前Servlet对象)exception ng.Throwable(有开关的:page指令的isErrorPage属性改为true)out JspWriterpageContext javax.servlet.jsp.PageContext非常重要pageContext有三大作用:1、本身是一个域对象。
同时还能操作其他三个域对象(PageContext ServletRequest HttpSession ServletContext)本身表示的域范围是本页面。
void setAttribute(String name,Object value)void removeAttribute(String name)Object getAttribute(String name)操作其他的三个域对象void setAttribute(Stringname,Objectvalue,intscope)void removeAttribute(String name,inscope)Object getAttribute(String name,int scope)参数int scope是由PageContext类提供的静态变量规定的。
JSP九大对象和四大作用域
序号方法说明1object getAttribute(String name)返回指定属性的属性值2Enumeration getAttributeNames()返回所有可用属性名的枚举3String getCharacterEncoding()返回字符编码方式4int getContentLength()返回请求体的长度(以字节数)5String getContentType()得到请求体的MIME 类型6ServletInputStream getInputStream()得到请求体中一行的二进制流7String getParameter(String name)返回name 指定参数的参数值8Enumeration getParameterNames()返回可用参数名的枚举9String[] getParameterValues(String name)返回包含参数name 的所有值的数组10String getProtocol()返回请求用的协议类型及版本号11String getScheme()返回请求用的计划名,如:http.https 及ftp 等12String getServerName()返回接受请求的服务器主机名JSP 九大对象和四大作用域JSP 九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用的对象。
一、request 对象:代表的是来自客户端的请求,例如我们在FORM 表单中填写的信息等,是最常用的对象。
客户端的请求信息被封装在request 对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest 类的实例。
作用域为request(用户请求期)。
常用方法:序号方法说明13int getServerPort()返回服务器接受此请求所用的端口号14Bu eredReader getReader()返回解码过了的请求体15String getRemoteAddr()返回发送此请求的客户端IP 地址16String getRemoteHost()返回发送此请求的客户端主机名17void setAttribute(String key,Object obj)设置属性的属性值18String getRealPath(String path)返回一虚拟路径的真实路径序号方法说明1String getCharacterEncoding()返回响应用的是何种字符编码2ServletOutputStream getOutputStream()返回响应的一个二进制输出流3PrintWriter getWriter()返回可以向客户端输出字符的一个对象4void setContentLength(int len)设置响应头长度5void setContentType(String type)设置响应的MIME 类型6sendRedirect(Java .lang.String location)重新定向客户端的请求二、response 对象:对象代表的是对客户端的响应,也就是说可以通过response 对象来组织发送到客户端的数据。
9大内置对象及四个作用域
九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用1-out:javax.servlet.jsp.JspWriter类型,代表输出流的对象。
作用域为page(页面执行期)request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据)。
作用域为request(用户请求期)。
方法由可查看APIresponse:javax.servlet.ServletResponse的子类型,此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。
作用域为page(页面执行期)。
pageContext:javax.servlet.jsp.PageContext(抽象类)类型,作用域为page(页面执行期)。
此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法:该对象的方法都是抽象方法session:javax.servlet.http.HttpSession类型,主要用于跟踪对话。
作用域session(会话期—)。
HttpSession是一个类似哈希表的与单一WEB浏览器会话相关的对象,它存在于HTTP 请求之间,可以存储任何类型的命名对象。
如果不需要在请求之间跟踪会话对象,可以通过在page指令中指定session="false"需要记住的是pageContext对象也可以与session.getAttribute(),session.setAttribute()一样的方式取得并设置会话属性。
application:javax.servlet.ServletContext类型,servlet的环境通过调用getServletConfig().getContext()方法获得。
jsp九大内置对象
jsp九⼤内置对象什么是内置对象 可以在JSP⽂件中直接拿来使⽤的对象 JSP⽂件翻译后⽣成的⽂件:在service⽅法中就引⼊了9个对象,所以在jsp⽂件中才可以直接使⽤九⼤内置对象有哪些四个范围对象的范围从⼩到⼤是什么: 从⼩范围到⼤范围:pageContext、request、session、applicationpageContext对象是什么 pageContext对象代表jsp页⾯上下⽂对象pageContext对象可以⼲什么 通过pageContext对象可以获取整个JSP页⾯环境中的所有数据: 获取当前JSP页⾯中的请求对象:pageContext.getRequest()。
获取当前JSP页⾯中的会话对象:pageContext.getSession()。
获取ServletContext对象:pageContext.getServletContext()。
通过pageContext对象传递数据(只能存储⼀个页⾯中的数据,⽆法跨页⾯。
可以获取include指令包含的jsp页⾯中存储的数据,但是不能获取include动作包含的jsp页⾯中存储的数据): pageContext.setAttribute(“username”,jack); //存 pageContext.getAttribute(“username”); //取 通过pageContext对象往request,session,application对象中存储数据: 向request范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.REQUEST_SCOPE); 向session范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.SESSION_SCOPE); 向application范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.APPLICATION_SCOPE);。
JSP的四大作用域和九大内置对象解析
马一、请求对象方法 (1)二、JSP的九大内置对象和四大作用域 (2)1.request对象(作用域) (2)2.response对象 (3)3.session对象(作用域) (4)4.out对象 (4)5.page对象(作用域) (5)6.application对象(作用域) (6)7.exception对象 (8)8.pageContext对象 (8)9.config对象 (10)一、请求对象方法二、JSP的九大内置对象和四大作用域jsp(4)定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):1.request对象(作用域)2.response对象3.session对象(作用域)4.out对象out 内置对象是在 JSP 开发过程中使用得最为频繁的对象,然而其使用起来也是最简单的。
out对象用于向客户端浏览器输出数据, out 对象5.page对象(作用域)6.application对象(作用域)7.exception对象8.pageContext对象pageContext 对象是 javax.servlet.jsp 包中 PageContext 类的对象,他提供了对 JSP 页面中所有的对象及命名空间的访问,使用这个对象可以访问 application 对象, session 对象,exception 对象等等。
也就是说这个对象可以访问除了本身之外的 8 个 JSp 内置对象。
还可以访问绑定在 page、 request、 session、 application 这些对象上的 Java 对象,它相当于 JSP程序中所有对象功能的集成者。
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
JSP的四大作用域和九大内置对象
马一、请求对象方法 (1)二、JSP的九大内置对象和四大作用域 (2)1.request对象(作用域) (2)2.response对象 (3)3.session对象(作用域) (4)4.out对象 (4)5.page对象(作用域) (5)6.application对象(作用域) (6)7.exception对象 (8)8.pageContext对象 (8)9.config对象 (10)一、请求对象方法二、JSP的九大内置对象和四大作用域jsp(4)定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):1.request对象(作用域)2.response对象3.session对象(作用域)4.out对象out 内置对象是在 JSP 开发过程中使用得最为频繁的对象,然而其使用起来也是最简单的。
out对象用于向客户端浏览器输出数据, out 对象5.page对象(作用域)6.application对象(作用域)7.exception对象8.pageContext对象pageContext 对象是 javax.servlet.jsp 包中 PageContext 类的对象,他提供了对 JSP 页面中所有的对象及命名空间的访问,使用这个对象可以访问 application 对象, session 对象,exception 对象等等。
也就是说这个对象可以访问除了本身之外的 8 个 JSp 内置对象。
还可以访问绑定在 page、 request、 session、 application 这些对象上的 Java 对象,它相当于 JSP程序中所有对象功能的集成者。
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
Jsp的9个内置对象
Jsp的内置对象一共有九个:1、out对象:out对象主要用来向客户输出各种数据类型的内容,并管理应用服务器上的输出缓冲区。
2、page对象:page对象指向当前Jsp页面本身,有点像Java类中的this指针。
3、request对象:request对象代表了客户端的请求信息,主要用于接收客户端通过HTTP协议传送给服务器端的数据。
4、response对象:response对象实现HttpServletResponse接口,使用HttpServletResponse的方法将服务器端数据发给客户端。
5、session对象:session对象用来保存每个用户的信息,以便跟踪每个用户的操作状态。
6、pageContext对象:pageContext对象提供了对Jsp页面内使用到的所有对象及名字空间的访问,提供了对几种页面属性的访问,并且允许向其他应用组件转发request对象,或者从其他应用组件包含request对象。
7、config对象:confing对象提供了对初始化Jsp的配置参数的访问。
8、exception对象:exceptiony对象用来处理Jsp文件在执行时发生的错误和异常。
9、application对象:application对象用来保存Web应用程序中公有的数据,可存放全局变量,服务器启动后自动创建application对象,该对象一直有效,直到服务器关闭。
import="java.util.*"pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>request对象示例</title></head><body><%request.setAttribute("张三", "123");request.setAttribute("李四", "456");request.setAttribute("王五", "789");/*Enumeration 是列举,而nextElement()用于读取一个元素 */Enumeration e = request.getAttributeNames();while(e.hasMoreElements()){String attributeName = (String)e.nextElement();String attribureValue = (String)request.getAttribute(attributeName);out.print("姓名:"+attributeName+"   ");out.print("ID:"+attribureValue+"<br>");}%></body></html>import="java.util.*"pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>response对象示例</title></head><body>当前时间:<br><hr><%response.setHeader("refresh", "5");/*网页每隔5秒跟新一次 */%><%out.println(new java.util.Date());%><hr></body></html>import="java.util.*"pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>session对象示例</title></head><!-- 用session实现的功能是获取页面访问次数,页面每访问一次数字加1--><body><%int number=100;/*从seeion对象获取number */Object obj = session.getAttribute("number");if(obj == null){/*设定session对象的变量值 */session.setAttribute("number",String.valueOf(number));}else{/*获取session对象中的number变量 */number = Integer.parseInt(obj.toString());/*统计页面访问次数*/number+=1;session.setAttribute("number",String.valueOf(number));}%>页面访问次数为:<%=number%></body></html><%@page language="java"contentType="text/html" import="java.util.*"pageEncoding="utf-8"%><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>application对象示例</title></head><body><%/*获取一个对象 */String s = (String)application.getAttribute("count");int count=0;/*如果对象存在,说明有用户访问 */if(s != null)/*类型转化后值加1 */count = Integer.parseInt(s)+1;/*人数值加1后重新对count赋值 */application.setAttribute("count",String.valueOf(count));%>您是第<%=application.getAttribute("count") %>位访问者。
jsp9个内置对象
文章分类:Web前端
JSP中的内置对象(9个)
对象名 对象的类型 范围
pageContext Javax.servlet.jsp.PageContext Page
page:代表该页面本身,通常没有太大用处。也就是Servlet中的this,其类型就是生成的Servlet类,能用page的地方就可用this。
pageContext:javax.servlet.jsp.PageContext的实例,该对象代表该JSP页面上下文,使用该对象可以访问页面中的共享数据。常用的方法有getபைடு நூலகம்ervletContext()和getServletConfig()等。
response:javax.servlet.http.HttpServletResponse的实例,代表服务器对客户端的响应。通常很少使用该对象直接响应,而是使用out对象,除非需要生成非字符响应。而response对象常用于重定向,常用的方法有getOutputStream()、sendRedirect(ng.String location)等。
out Javax.servlet.jsp.JspWriter Page
config Javax.servlet.ServletConfig Page
exception ng.ThrowAble page
request:javax.servlet.http:HttpServletRequest的实例,该对象封装了一次请求,客户端的请求参数都被封装在该对象里。这是一个常用的对象,获取客户端请求参数必须使用该对象。常用的方法有getParameter(String paramName)、getParameterValues(String paramName)、setAttribute(String atttName,Object attrValue)、getAttribute(String attrName)和setCharacterEncoding(String env)等。
jsp九大内置对象
SP中使用到的内置对象主要有如下九个:request内置对象response内置对象page内置对象session内置对象application内置对象out内置对象exception内置对象config内置对象pageContext内置对象在jsp开发当中使用比较多的就request、response、session和out对象。
下面是各个对象的介绍和使用实例。
一、request内置对象request内置对象是最常用的对象之一,它代表的是Java.servlet.HttpServletRequest类的对象。
request内置对象中包含了有关浏览器请求的信息,并提供了多个用于获取cookie、header以及session内数据的方法。
request对象常用方法request对象主要用于客户端请求处理,其中,该对象中所包含的方法有:request对象主要用于客户端请求处理,其中,该对象中所包含的方法有:getMethod():返回HTTP请求信息中所使用到的方法名称;getServletPath():返回请求信息中调用Servlet的URL部分;getQueryString():返回HTTP GET请求信息中URL之后的查询字符串;getContentType():返回请求实体的MIME类型;getProtocol():返回请求信息中的协议名名字与版本号;getPathInfo():返回有关任何路径信息;getServletName():返回接受请求的服务器主机;getServletPort():返回服务器的端口号;getRemoteHost():返回提交请求的客户机的规范名字;getRemoteAddr():返回提交请求的客户机的IP地址;getScheme():返回请求使用的模式(协议)名字;getParameter():返回客户端通过表单提交过来的参数值。
例如request. getParameter(“myname”),通过该语句来获取客户端传递过来的myname 参数。
JSP九大内置对象及四个作用域
JSP九大内置对象及四个作用域九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用1-out: out对象是JspWriter类的实例,是向客户端输出内容常用的对象javax.servlet.jsp.JspWriter类型,代表输出流的对象。
作用域为page(页面执行期)request:javax.servlet.ServletRequest的子类型,此对象封装了由WEB浏览器或其它客户端生成地HTTP客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest类的实例。
请求的细节(参数,属性,头标和数据)。
作用域为request(用户请求期)。
方法由可查看APIresponse:javax.servlet.ServletResponse的子类型,此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。
作用域为page (页面执行期)。
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
它是HttpServletResponse类的实例。
pageContext:javax.servlet.jsp.PageContext(抽象类)类型,作用域为page(页面执行期)。
此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
该对象的方法都是抽象方法session:javax.servlet.http.HttpSession类型,主要用于跟踪对话。
四大作用域及九大内置对象
四⼤作⽤域及九⼤内置对象四⼤作⽤域及九⼤内置对象jsp是运⾏在服务端的程序JSP有九个内置对象(⼜叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使⽤JSP九⼤内置对象分为四类:输⼊输出对象:out对象、response对象、request对象通信控制对象:pageContext对象、session对象、application对象Servlet对象:page对象、config对象错误处理对象:exception对象jsp四⼤作⽤域:page范围:只在⼀个页⾯保留数据(javax.servlet.jsp.PageContext(抽象类))request范围:只在⼀个请求中保存数据(javax.servlet.httpServletRequest)Session范围:在⼀次会话中保存数据,仅供单个⽤户使⽤(javax.servlet.http.HttpSession)Application范围:在整个服务器中保存数据,全部⽤户共享(javax.servlet.ServletContext)九种对象简介:1. out对象:⽤于向客户端、浏览器输出数据。
2. request对象:封装了来⾃客户端、浏览器的各种信息。
3. response对象:封装了服务器的响应信息。
4. exception对象:封装了jsp程序执⾏过程中发⽣的异常和错误信息。
5. config对象:封装了应⽤程序的配置信息。
6. page对象:指向了当前jsp程序本⾝。
7. session对象:⽤来保存会话信息。
也就是说,可以实现在同⼀⽤户的不同请求之间共享数8. application对象:代表了当前应⽤程序的上下⽂。
可以在不同的⽤户之间共享信息。
9. pageContext对象:提供了对jsp页⾯所有对象以及命名空间的访问。
1.page对象page对象有点类似与java编程中的this指针,他指向了当前jsp页⾯本⾝。
page对象是ng.object类的⼀个实例page对象拥有⼀个toString⽅法,下⾯是官⽅定义的⽅法介绍:public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}包名+类名+@+hashcode值page对象的⽅法:⽅法名说明toString将当前项⽬的信息打印出来getClass返回当前的object类hashCode返回page对象的hashCode值equals⽤于⽐较对象是否与当前对象相同2.request对象request对象封装了从客户端到服务器发出的请求信息。
四大域对象-JSP九大内置对象-11个EL隐式对象
四大域对象详解JSP中隐式对象的名称范围名称具体的类型pageContext page javax.servlet.jsp.PageContextrequest request javax.servlet.ServletRequest (显示完数据就没有用了)session session javax.servlet.http.HttpSession (显示完数据了,过一会自己还要用)application application javax.servlet.ServletContext(显示完数据了,大家都要用。
不建议使用,如果使用,必须同步处理)JSP九大内置对象JSP的内置对象引用名称对应的类型request HttpServletRequestresponse HttpServletResponsesession HttpSession(有开关的:page指令的session属性的取值)application ServletContextconfig ServletConfigpage this(当前Servlet对象)exception ng.Throwable(有开关的:page指令的isErrorPage属性改为true)out JspWriterpageContext javax.servlet.jsp.PageContext非常重要pageContext有三大作用:1、本身是一个域对象。
同时还能操作其他三个域对象(PageContext ServletRequest HttpSession ServletContext)本身表示的域范围是本页面。
void setAttribute(String name,Object value)void removeAttribute(String name)Object getAttribute(String name)操作其他的三个域对象void setAttribute(Stringname,Objectvalue,intscope)void removeAttribute(String name,inscope)Object getAttribute(String name,int scope)参数int scope是由PageContext类提供的静态变量规定的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
九大对象:内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用1-out:,代表输出流的对象。
作用域为page(页面执行期)request:,此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据)。
作用域为request(用户请求期)。
方法由可查看APIresponse:,此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
经常用来设置HTTP标置响应内容的类型和状态,发送HTTP重定向和编码URL。
作用域为page(页面执行期)。
pageContext:,作用域为page(页面执行期)。
此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求他资源的方法:该对象的方法都是抽象方法session:,主要用于跟踪对话。
作用域session(会话期—)。
HttpSession是一个类似哈希表的与单一WEB浏览器会话相关的对象,它存在于HTTP请求之间,可以存储任何类型的命名对象。
如果不需要在请求之间跟踪会话对象,可以通过在page指令中指定session="false"需要记住的是pageContext对象也可以与session.getAttribute(),session.setAttribute()一样的方式取得并设置会话属性application:,servlet的环境通过调用getServletConfig().getContext()方法获得。
作用域是application(整个程序运行期)。
它提供了关于服务器版本,应用级初始化参数和应用内信息的方式config:,作用域为page(页面执行期)exception:,通过JSP错误页面中一个catch块已经益出但没有捕获的,传向了errorPage的URI。
作用域为page(页面执行期)。
注意exception只有在page指令中具有属性isErrorPage="true"时才有效。
page:,指向页面自身的方式。
作用域为page(页面执行期JSP中九大内置对象为:request 请求对象类型作用域 Requestresponse 响应对象类型作用域PagepageContext 页面上下文对象类型作用域 Pagesession 会话对象类型作用域 Sessionapplication 应用程序对象类型作用域 Applicationout 输出对象类型作用域 Pageconfig 配置对象类型作用域 Pagepage 页面对象类型作用域 Pageexception 例外对象类型作用域 page 来源request 对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象常用的方法有:getParameter、g getParameterValues 通过调用这几个方法来获取请求对象中所包含的参数的值。
response 对象代表的是对客户端的响应,也就是说可以通过response 对象来组织发送到客户端的数据。
但是由于组织方式比普通读者使用,需要向客户端发送文字时直接使用pageContext 对象直译时可以称作“页面上下文”对象,代表的是当前页面运行的一些属性常用的方法有:findAttribute、getAttribute、getAttributesScope 和getAttributeNamesInScope一般情况下pageContext对象用到得也不是很多,只有在项目所面临的情况比较复杂的情况下,才会利用到页面属性来辅助处session 对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购“session”对象建立在cookie的基础上,所以使用时应注意判断一下客户端是否打开了cookie。
常用的方法包括getId、 getV 和putValue等。
概要HTTP是无状态(stateless)协议;Web Server 对每一个客户端请求都没有历史记忆;Session用来保存客户端状态信息;由Web Server 写入;存于客户端;客户端的每次访问都把上次的session记录传递给Web Server;Web Server读取客户端提交的session来获取客户端的状态信息application 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。
out 对象代表了向客户端发送数据的对象,与“response”对象不同,通过“out”对象发送的内容将是浏览器需要显示的可以通过“out”对象直接向客户端写一个由程序动态生成HTML文件。
常用的方法除了pirnt和println之外,还包括clear、c getBufferSize和getRemaining,这是因为“out”对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法“config”对象提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时“page”对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。
“exception”对象则代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“isErrorPage="true "%>”的JSP文件中使用四个作用域:何为作用域先让我们看看效果:大概流程是这样的,我们访问04-01/index.jsp的时候,分别对pageContext, request, session,application四个作用域中的变量进行累加。
(当然先判断这个变量是不是存在,如果变量不存在,则要把变量初始化成1。
)计算执行forward跳转到test.jsp。
在test.jsp里再进行一次累加,然后显示出这四个整数来。
从显示的结果来看,我们可以直观的得出结论:page里的变量没法从index.jsp传递到test.jsp。
只要页面跳转了,它们就不见了。
request里的变量可以跨越forward前后的两页。
但是只要刷新页面,它们就重新计算了。
session和application里的变量一直在累加,开始还看不出区别,只要关闭浏览器,再次重启浏览器访问这页,session里application里的变量一直在累加,除非你重启tomcat,否则它会一直变大。
而作用域规定的是变量的有效期限。
如果把变量放到pageContext里,就说明它的作用域是page,它的有效范围只在当前jsp页面里。
从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
如果把变量放到request里,就说明它的作用域是request,它的有效范围是当前请求周期。
所谓请求周期,就是指从http请求发起,到服务器处理结束,返回响应的整个过程。
在这个过程中可能使用forward的方式在这些页面里你都可以使用这个变量。
如果把变量放到session里,就说明它的作用域是session,它的有效范围是当前会话。
所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程。
这个过程可能包含多个请求响应。
也就是说器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会如果把变量放到application里,就说明它的作用域是application,它的有效范围是整个应用。
整个应用是指从应用启动,到应用结束。
我们没有说“从服务器启动,到服务器关闭”,是因为一个服务器可能部署多个应用器,就会把上面所有的应用都关闭了。
application作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一直可以使用。
与上述三个不同的是,application里的变量可以被所有用户共用。
如果用户甲的操作修改了application中的变量,用户乙访的值。
这在其他scope中都是不会发生的,page, request,session都是完全隔离的,无论如何修改都不会影响其他人的数据。
我们使用public Object getAttribute(String name)获得变量值,使用public void setAttribute(String name, Object v 对应作用域中。
举个pageContext的例子就是:// pageInteger countPage = (Integer) pageContext.getAttribute("countPage");if (countPage == null) {pageContext.setAttribute("countPage", 1);} else {pageContext.setAttribute("countPage", countPage + 1);}这里先从pageContext中取出名为countPage的整数,因为返回的都是,所以需要强制转换成我们需要的整形。
这里取得的变回null,通过判断countPage == null来辨别变量是否存在,如果不存在就设置为1,如果存在就进行累加,最后使用setAttrib 变量值放入pageContext。
将其中的pageContext换成request, session, application就可以操作其他三个作用域中的变量。