9大内置对象作用
Java中的JSP中内置对象及作用是什么?
JSP有9个内置对象:- request:封装客户端的请求,其中包含来自GET或POST请求的参数;- response:封装服务器对客户端的响应;- pageContext:通过该对象可以获取其他对象;- session:封装用户会话的对象;- application:封装服务器运行环境的对象;- out:输出服务器响应的输出流对象;- config:Web应用的配置对象;- page:JSP页面本身(相当于Java程序中的this);- exception:封装页面抛出异常的对象。
补充:如果用Servlet来生成网页中的动态内容无疑是非常繁琐的工作,另一方面,所有的文本和HTML标签都是硬编码,即使做出微小的修改,都需要进行重新编译。
JSP解决了Servlet的这些问题,它是Servlet很好的补充,可以专门用作为用户呈现视图(View),而Servlet作为控制器(Controller)专门负责处理用户请求并转发或重定向到某个页面。
基于Java的Web开发很多都同时使用了Servlet和JSP。
JSP页面其实是一个Servlet,能够运行Servlet的服务器(Servlet容器)通常也是JSP容器,可以提供JSP页面的运行环境,Tomcat就是一个Servlet/JSP容器。
第一次请求一个JSP页面时,Servlet/JSP容器首先将JSP页面转换成一个JSP页面的实现类,这是一个实现了JspPage接口或其子接口HttpJspPage的Java类。
JspPage接口是Servlet的子接口,因此每个JSP页面都是一个Servlet。
转换成功后,容器会编译Servlet类,之后容器加载和实例化Java字节码,并执行它通常对Servlet所做的生命周期操作。
对同一个JSP页面的后续请求,容器会查看这个JSP页面是否被修改过,如果修改过就会重新转换并重新编译并执行。
如果没有则执行内存中已经存在的Servlet实例。
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里九大内置对象
Request,Response,pageContext,session,Application,Out,Config,Page,Exception1.request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest类的实例。
序号方法说明1 object getAttribute(String name) 返回指定属性的属性值2 Enumeration getAttributeNames() 返回所有可用属性名的枚举3 String getCharacterEncoding() 返回字符编码方式4 int getContentLength() 返回请求体的长度(以字节数)5 String getContentType() 得到请求体的MIME类型6 ServletInputStream getInputStream() 得到请求体中一行的二进制流7 String getParameter(String name) 返回name指定参数的参数值8 Enumeration getParameterNames() 返回可用参数名的枚举9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组10 String getProtocol() 返回请求用的协议类型及版本号11 String getScheme() 返回请求用的计划名,如:http.https及ftp等12 String getServerName() 返回接受请求的服务器主机名 13 int getServerPort() 返回服务器接受此请求所用的端口号 14 BufferedReader getReader() 返回解码过了的请求体15 String getRemoteAddr() 返回发送此请求的客户端IP地址16 String getRemoteHost() 返回发送此请求的客户端主机名 17 void setAttribute(String key,Object obj) 设置属性的属性值18 String getRealPath(String path) 返回一虚拟路径的真实路径2.response对象response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
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学习总结(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提供了9大内置对象,为JSP页面的操作提供了丰富的功能,这9个内置对象分别应用到请求、响应、会话、应用、输出、配置信息和异常信息等内容的操作。
下面将介绍各内置对象的使用场合。
request对象:该对象封装了客户端提交的HTTP请求信息,适用于处理客户端提交的信息。
在开发Web应用时,经常应用request对象获取请求参数的值、Cooike等数据。
response对象:该对象适用于响应客户端请求信息。
在开发Web应用时,经常应用response 对象重定向网页,设置HTTP响应报头和缓冲区配置等。
session对象:该对象适用于在同一个应用程序中,每个客户端的各个页面中共享数据。
session对象通常应用在保存用户信息和购物车信息等。
application对象:该对象适用于在同一个应用程序中,各个用户间共享数据。
application对象通常应用在计数器或是聊天室中。
out对象:该对象适用于向客户端输出各种类型的数据。
通常用来向JSP页面输出文本。
page对象:该对象适用于操作JSP页面自身。
应用很少。
config对象:该对象用于读取服务器的配置信息。
exception对象:该对象用于操作JSP文件执行时发生的异常信息。
pageContext对象:该对象适用于get、set页面属性,然后通过jstl标签库向JSP页面输出页面内容。
out输出对象的应用:[html]view plain copy1.out.print("message");//输出页面内容2.out.clear();//清除缓冲区中的内容3.out.clearBuffer();//清除当前缓冲区的内容4.out.isAutoFlush();//检测当前缓冲区已满时自动清空,还是抛出异常5.out.getBufferSize();//获取缓冲区的大小request请求对象的应用:[html]view plain copy1.request.getParameter("param");//获取请求页面传递过来的参数2.String userName = new String(request.getParameter("userName").getBytes("ISO-8859-1"),"UTF-8");//适用于当访问请求URL链接中参数为中文时,通过request对象获取到的中文参数值为乱码时可用3.request.setCharacterEncoding("UTF-8");//当获取表单提交的信息时,通过request对象获取到的中文参数值为乱码时适用4.request.getHeader("host");//返回服务器IP地址和端口号127.0.0.1:80805.request.getHeader("user-agent");//返回客户端浏览器代理,用来判断是否是MSIE类型,设置兼容浏览器样式。
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);。
9大内置对象作用
JSP九大内置对象Request,Reponse,Out,Session,Application,Cookie,Config,Page,Exception1.Request对象发送请求时,该对象被创建,一次请求结束后即销毁。
(一次请求产生一个request对象)该对象封装了用户提交的信息,通过调用该对象相应的方法要以获取封装的信息。
即,使用该对象可以获取用户提交的信息。
当Request对象获取客户提交的内容为汉字字符时,会出现乱码现象,则必须进行特殊处理。
首先,将获取的字符串用ISO8859-1进行编码,并将编码存放到一个字节数组中,然后将这个数组转化为字符串对象即可。
如下代码:String text = request.getParameter("body");byte [] b = text.getBytes("ISO8859-1"); //将text字符串转换成字节数组---编码的过程text = new String(b); //构造字符串,按照当前操作系统的字符集进行构造。
将字节转换成字符串---解码的过程Request常用的方法:getParameter(String s) ----- 获取表单提交的信息String s = request.getParameter("name");getProtocol() -----获取客户使用的协议String s = request.getProtocol() ;getServletPath() ----获取客户提交信息的页面String s = request.getServletPath();getMethod() -----获取客户提交信息的方式get或postString s = request.getMethod();getHeader() ----- 获取HTTP头文件中的accept、accept-encoding和host的值String s = request.getHeader("accept");getRemoteAddr() --获取客户的ip地址String s = request.getRemoteAddr();getServerHost() ---获取客户机的名称String s = request.getServerHost();getServerName() ---获取服务器名称String s = request.getServerName();getServerPort() ----获取服务器的商口号String s = request.getServerPort();getPamameterNames() ----获取客户端提交的所有参数的名字Enumeration enum = request.getParameterNames();while(enum.hasMoreElements()){String s = (String) enum.nextElement();out.println(s);}2. Response对象:对客户的请求做出动态响应,向客户端发送数据。
java中9个内置对象的介绍
四、response 对象
response 对象主要将JSP 处理数据后的结果传回到客户端。
response 对象是实现javax.servlet.http.HttpServletResponse 接口。response对象所提供的方法。
1.设定表头的方法
void addCookie(Cookie cookie)新增cookie
long getCreationTime()取得session产生的时间,单位是毫秒
String getId()取得session 的ID
long getLastAccessedTime()取得用户最后通过这个session送出请求的时间
long getMaxInactiveInterval()取得最大session不活动的时间,若超过这时间,session 将会失效
void setDateHeader(String name, long date)指定long类型的值到name标头
void setHeader(String name, String value)指定String类型的值到name标头
void setIntHeader(String name, int value)指定int类型的值到name标头
九:session:
javax.servlet.http.HttpSession的实例,该对象代表一次会话。从客户端浏览器与站点建立连接起,开始会话,直到关闭浏览器时结束会话。常用的方法有:
getAttribute(StringattName),setAttribute(StringattName,String attValue)等。
void setAttribute(String name, Object value)设定name属性的值为value
jsp9大内置对象和作用
2 public String getId() 返回SESSION创建时JSP引擎为它设的惟一ID号
3 long getLastAccessedTime() 返回此SESSION里客户端最近一次请求时间
4 int getMaxInactiveInterval() 返回两次请求间隔多长时间此SESSION被取消(ms)
5 String[] getValueNames() 返回一个包含此SESSION中所有可用属性的数组
6 void invalidate() 取消SESSION,使SESSION不可用
7 boolean isNew() 返回服务器创建的一个SESSION,客户端是否已经加入
8 void removeValue(String name) 删除SESSION中指定的属性
8 int getMajorVersion() 返回服务器支持的Servlet API的最大版本号
9 int getMinorVersion() 返回服务器支持的Servlet API的最大版本号
10 String getMimeType(String file) 返回指定文件的MIME类型
4 ServletRequest getRequest() 返回当前页的ServletRequest对象(request)
5 ServletResponse getResponse() 返回当前页的ServletResponse对象(response)
10 void wait() 使一个线程处于等待直到被唤醒
11 void enterMonitor() 对Object加锁
12 void exitMonitor() 对Object开锁
jsp9大内置对象和作用
JSP的九个内置对象及其作用1.request 封装用户请求2.response 向用户做出响应3.page JSP页面本身4.session 客户和服务器间的会话5.config 包括servlet初始化要用的参数6.application 于服务器启动时开始运行,用来存放全局变量,在用户间共享7.out向客户端输出8.pageContext 用于访问page的各种对象9.exception 异常1.request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
它是HttpServletRequest类的实例。
序号方法说明1 object getAttribute(String name) 返回指定属性的属性值2 Enumeration getAttributeNames() 返回所有可用属性名的枚举3 String getCharacterEncoding() 返回字符编码方式4 int getContentLength() 返回请求体的长度(以字节数)5 String getContentType() 得到请求体的MIME类型6 ServletInputStream getInputStream() 得到请求体中一行的二进制流7 String getParameter(String name) 返回name指定参数的参数值8 Enumeration getParameterNames() 返回可用参数名的枚举9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组10 String getProtocol() 返回请求用的协议类型及版本号11 String getScheme() 返回请求用的计划名,如:http.https及ftp等12 String getServerName() 返回接受请求的服务器主机名13 int getServerPort() 返回服务器接受此请求所用的端口号14 BufferedReader getReader() 返回解码过了的请求体15 String getRemoteAddr() 返回发送此请求的客户端IP地址16 String getRemoteHost() 返回发送此请求的客户端主机名17 void setAttribute(String key,Object obj) 设置属性的属性值18 String getRealPath(String path) 返回一虚拟路径的真实路径2.response对象response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
jsp九大内置对象
request的常用方法
• 获取请求参数的:
– getParameterValues()
返回作为字符串列举的指定参数的值
– getParameterName()
输出char类型数据
out.print(char[]) out.println(char[])
输出char[]类型数据
out.print(double out.println(double)
输出double类型数据
out.print(float) out.println(float)
输出float类型数据
• 如果autoFlush="false",那么当操作造成了缓冲 区溢出时,这个类的所有的I/O操作都将抛出一个 IOException异常。
out对象的主要方法
out.print(boolean) out.println(boolean)
输出Boolean类型数据
out.print(char) out.println(char)
返回本次请求的参数名字
– getParameter()
返回包含指定参数的单独值的字符串
• 获取、设置容器内容的:
– getAttribute(key)
返回请求容器中给出名称的属性值
– setAttribute(key,value)
设置请求容器给出名称的属性值
• 获取客户端信息的:
– getRemoteHost()
输出String类型数据
out.newLine()
jsp九种内置对象
jsp九种内置对象:request, reponse, out, session, application, config, pagecontext, page, exception.一.request对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
1.Request对象可以使用getParameter(string s)方法获取该表单通过text提交的信息。
如:Request.getParameter(“boy”)例:request1.jsp:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=green><FONT size=1><FORM action="tree.jsp" method=post name=form><INPUT type="text" name="boy"><INPUT TYPE="submit" value="Enter" name="submit"></FORM></FONT></BODY></HTML>tree.jsp:<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=green><FONT size=1><P>获取文本框提交的信息:<%String textContent=request.getParameter("boy");%><BR><%=textContent%><P> 获取按钮的名字:<%String buttonName=request.getParameter("submit");%><BR><%=buttonName%></FONT></BODY></HTML>使用request对象获取信息要格外小心,要避免使用空对象,否则会出现NullPointerException异常,所以我们可以作以下处理.request3.jsp<%@ page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=cyan><FONT size=5><FORM action="" method=post name=form><INPUT type="text" name="girl"><INPUT TYPE="submit" value="Enter" name="submit"></FORM><%String textContent=request.getParameter("girl");double number=0,r=0;if(textContent==null){textContent="";}try{ number=Double.parseDouble(textContent);if(number>=0){r=Math.sqrt(number) ;out.print("<BR>"+String.valueOf(number)+"的平方根:");out.print("<BR>"+String.valueOf(r));}else{out.print("<BR>"+"请输入一个正数");}}catch(NumberFormatException e){out.print("<BR>"+"请输入数字字符");}%></FONT></BODY></HTML>2.处理汉字信息:当request对象获取客户提交的汉字字符时,会出现乱马问题,必须进行特殊处理。
JSP中九大内置对象
JSP中九大内置对象JSP中九大内置对象导语:JSP中有九大内置对象,分别为:application、out、pagecontext、request、response、session、config、page、exception,下面我们一起来了解一下。
1、request对象request对象代表了客户端的请求信息,主要用于接受通过HTTP 协议传送到服务器的数据。
(包括头信息、系统信息、请求方式以及请求参数等)。
request对象的作用域为一次请求。
String s = request.getParameter("xxxx");//接收值request.setAttribute("key","value");//传出request.getAttribute("key");//根据key值接收2、response对象response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。
response对象也具有作用域,它只在JSP页面内有效。
response.sendRedirect("url");//跳转response.getWriter().append("xxxxx");//往页面输入内容3、session对象主要用于来分别保存每个用户信息,与请求关联的会话session保存在服务器上。
它是每次会话中进行状态保存。
默认情况下是30分钟的生命期。
//造sessionHttpSession session=request.getSession();//写sessionsession.setAttribute("key","value");//读sessionsession.getAttribute("key");4、application对象application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。
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对象封装了从客户端到服务器发出的请求信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSP九大内置对象Request,Reponse,Out,Session,Application,Cookie,Config,Page,Exception1.Request对象发送请求时,该对象被创建,一次请求结束后即销毁。
(一次请求产生一个request对象)该对象封装了用户提交的信息,通过调用该对象相应的方法要以获取封装的信息。
即,使用该对象可以获取用户提交的信息。
当Request对象获取客户提交的内容为汉字字符时,会出现乱码现象,则必须进行特殊处理。
首先,将获取的字符串用ISO8859-1进行编码,并将编码存放到一个字节数组中,然后将这个数组转化为字符串对象即可。
如下代码:String text = request.getParameter("body");byte [] b = text.getBytes("ISO8859-1"); //将text字符串转换成字节数组---编码的过程text = new String(b); //构造字符串,按照当前操作系统的字符集进行构造。
将字节转换成字符串---解码的过程Request常用的方法:getParameter(String s) ----- 获取表单提交的信息String s = request.getParameter("name");getProtocol() -----获取客户使用的协议String s = request.getProtocol() ;getServletPath() ----获取客户提交信息的页面String s = request.getServletPath();getMethod() -----获取客户提交信息的方式get或postString s = request.getMethod();getHeader() ----- 获取HTTP头文件中的accept、accept-encoding和host的值String s = request.getHeader("accept");getRemoteAddr() --获取客户的ip地址String s = request.getRemoteAddr();getServerHost() ---获取客户机的名称String s = request.getServerHost();getServerName() ---获取服务器名称String s = request.getServerName();getServerPort() ----获取服务器的商口号String s = request.getServerPort();getPamameterNames() ----获取客户端提交的所有参数的名字Enumeration enum = request.getParameterNames();while(enum.hasMoreElements()){String s = (String) enum.nextElement();out.println(s);}2. Response对象:对客户的请求做出动态响应,向客户端发送数据。
响应客户请求时创建,响应结束时销毁。
(一次响应产生一个response对象)动态响应contentType属性当一个用户访问了一个jsp页面时,如果该页面用page指令设置页面的contentType属性为text/html,那么jsp 引擎将按照这个属性值做出反应。
如果要动态改变这个属性值来响应客户,就需要使用Response对象的setContentType(String s);方法来改变contentType属性的值。
格式:response.setContentType(String s) -----参数s可取:text/html,application/x-msexcel,application/msword 等Response重定向在某些情况下,当响应客户时,需要将客户重新引导到另一个页面,可以使用Response的sendRedirect(URL);方法,实现客户的重定向格式:response.sendRedirect("index.jsp");3. Session对象:在页面的page指令加上session="true" 或缺省情况下以及在servlet中使用request.getSession();的方式进行创建。
超时或服务停止时,session结束。
(一个用户对应一个session对象) 什么是session对象?----- 它是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束(或者超时),被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。
session对象的ID -----当一个客户首次访问服务器上的一个jsp页面时,jsp引擎会产生一个session对象,同时分配一个String类型的的ID号,jsp引擎同时将这个ID号发送到客户端,存放在cookie中,这样,session对象直到客户关闭浏览器后,服务器端,该客户的session对象才会消失,会并,和客户的会话对应关系消失。
当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
session对象的常用方法:public String getId() ----获取Session对象的编号pulbic void setAttribute(String key,Object obj) --- 将参数object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字public Object getAttribute(String key) --- 获取session对象中含有关键字的对象public Blooean isNew() ----判断是否为一个新的客户4. Application对象:启动服务时创建,停止服务时销毁。
(整个程序只有一个application对象)什么是Application对象?--- 服务器启动后就产生了这个Application对象,当客户在所访问的的网站的各个页面之间浏览时,这个Application对象都是同一个,直到服务器关闭。
但是,与session对象不同的是,所有客户的Application对象都是同一个,即,所有客户共享这个内置的Application对象。
Application对象的常用方法setAttribute(String key,Ojbect obj) ----将参数obj添加到Application对象中,并为添加的对象指定一个索引关键字getAttribute(String key); ---- 获取Application对象中含有关键字的对象5.Out对象:请求时,就创建,请求结束时,销毁。
(一个请求,创建一个out对象)Out对象是一个输出流,用来向客户端输出数据。
out对象用于各种数据的输出。
其常用方法如下:out.print(); ---- 向浏览器输出各种类型数据out.newLine(); --- 输出一个换行符out.close(); ---关闭流6.cookie对象:什么是cookie?----cookie是web服务器保存在用户硬盘上的一段文本。
cookie允许一个web站点在用户电脑上保存信息并且随后再取它。
举例来说,一个web站点可能会为每一个访问者产生一个唯一的ID、然后以cookie文件的形式保存在每个用户的机器上。
如果用户选择的是IE浏览器访问web,用户就会看到所有保存在自己硬盘上的cookie。
它们最常存放的地方是:c:/Windows/Cookies。
cookie是以”关键字key = 值value“的格式来保存记录的。
创建一个cookie对象调用cookid对象的构造函数就可以创建cookie对象。
cookie的构造函数有两个字符串参数:cookie名字和cookie值。
如:Cookie c = new Cookie("username","hyc");将cookie对象传送到客户端在jsp中,如果要将封装好的cookie对象传送到客户端,可使用Response对象的addCookie()方法如:Response.addCookie();读取保存在客户端的cookie使用request对象的getCookie()方法,执行时,将所有客户端传来的cookie对象以数组的形式排列。
如果要取出更符合需求的cookie对象,就需要循环比较数组内每个对象的关键字。
如:Cookie [] c = request.getCookies();if (c! = null){for (int i = 0;i<c.length;i++){if("username".equals("c,getName))out.println(c.getValue());}}设置cookie对象的有效时间调用cookie对象的setMaxAge()方法,可以设置cookie对象的有效时间。
如Cookie c = new Cookie("username","hyc");c.setMaxAge(3600);cookie应用cookie对象的典型应用是用来统计网站的访问人数。
由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一的ID。
使用cookie,网站可以完成以下工作测试定多少人访问过;测定访问者有多少是新用户(即第一次来访)、有多少老用户;测定一个用户多久访问一次网站当一个用户第一次访问时,网站在数据库中建立一个新的ID,并把ID通过Cookie传送给用户。
用户再次来访时,网站把该用户的ID对应的计数器加1,得到用户来访的次数。
7.config对象:配置对象8.page对象:页面对象9.Exception对象:在处理异常的网页中可以直接访问exception隐式对象。