JSP——九大内置对象
2017-12-12 17:41
204 查看
部分转自:http://blog.csdn.net/icarus_wang/article/details/51107470
http://blog.csdn.net/icarus_wang/article/details/51107771 http://blog.csdn.net/icarus_wang/article/details/51108267
部分摘抄于:刘中兵.开发者突击:JavaWeb主流框架整合开发(J2EE+Struts+Hibernate+Spring)(第2版)
JSP中一共预先定义了9个这样的对象,分别为:
Request:请求对象;
Response:响应对象;
Session:会话对象;
Application:应用程序对象;
Out:输出对象;
Config:配置对象;
Page:页面对象;
PageContext:页面上下文对象;
Exception:例外对象。
(一)Request:请求对象
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存发到一个字节数组中,然后再将这个数组转化为字符串对象即可。
Request常用的方法如下:
getParameter(StringstrTextName):获取表单提交的信息。
例如:StringstrName=request.getParameter("name");
getProtocol():获取客户使用的协议。
例如:StringstrProtocol=request.getProtocol();
getServletPath():获取客户提交信息的页面.
例如:StringstrServlet=request.getServletPath();
getMethod():获取客户提交信息的方式。
getHeader():获取HTTP头文件中的accept、accept-encoding和Host的值。例如:StringstrHeade=request.getHeader("accept");
getRermoteAddr():获取客户的IP地址。
getRemoteHost():获取客户机的名称。
getServerName():获取服务器名称。
getServerPort():获取服务器的端口号。
getParameterNames():获取客户端提交的所有参数的名字。
isUserInRole():判断认证后的用户是否属于某一成员组
其余方法:
getAttribute():获取指定属性的值,如该属性值不存在返回Null
getAttributeNames():获取所有属性名的集合
getCookies():获取所有Cookie对象
getCharacterEncoding():获取请求的字符编码方式
getContentLength():返回请求正文的长度,如不确定返回-1
getHeaders():获取指定名字报头的所有值,一个枚举
getHeaderNames():获取所有报头的名字,一个枚举
getInputStream():返回请求输入流,获取请求中的数据
getParameterValues:获取指定名字参数的所有值
getQueryString():获取以get方法向服务器传送的查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getSession():获取和请求相关的会话
removeAttribute():删除请求中的一个属性
setAttribute():设置指定名字参数值
request对象演示,完成一个简单的用户注册信息界面,将注册信息发送到欢迎界面上:
用户注册界面表单设置:
用户注册信息处理界面使用getParameter方法将用户的表单信息提取出来
Stringname=request.getParameter("userName");
String[]skillArr=request.getParameterValues("skills");
//将skillArr数组转换成字符串:
Stringskills="";
if(skillArr!=null&&skillArr.length>0){
for (String skill:skillArr
) {
skills=skills+skill+" ";
}
}
//将数据使用setAttribute保存起来
request.setAttribute("userName",name);
request.setAttribute("skills",skills);
//使用jsp的forword指令将页面跳转到welcome.jsp
<jsp:forwardpage="welcome.jsp"></jsp:forward>
setAttribute和getAttribute用于在web组件之间共享信息。getparameter方法用于接收服务器通过set和post方法传输的数据
注意没有setparameter方法
welcome.jsp页面配置:
(二)Response:响应对象
response对象主要用于对客户端的请求进行回应。以及处理http的连接信息,例如设置http文件头,设置cookie对象等。
response对象方法:
addCookie:添加一个Cookie对象
addHeader:添加Http文件指定名字头信息
containsHeader:判断指定名字Http文件头信息是否存在
encodeURL:使用sessionid封装URL
flushBuffer:强制把当前缓冲区内容发送到客户端
getBufferSize:返回缓冲区大小
getOutputStream:返回到客户端的输出流对象
sendError:向客户端发送错误信息
sendRedirect:把响应发送到另一个位置进行处理。在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用Response的sendRedirect(URL)方法实现客户的重定向。
例如:response.sendRedirect(“index.jsp”);
setContentType:设置响应的MIME类型,动态响应contentType属性当一个用户访问一个JSP页面时,如果该页面用page指令设置页面的contentType属性时text/html,那么JSP引擎将按照这个属性值做出反应。如果要动态改变这换个属性值来响应客户,就需要使用Response对象的setContentType(Strings)方法来改变contentType的属性值。
格式:response.setContentType(Strings);参数s可取text/html,application/x-msexcel,application/msword等。
setHeader:设置指定名字的Http文件头信息
(三)Session:会话对象
Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。
当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。
Session对象的常用方法
Public String getId():获取Session对象编号。
Public void setAttribute(String keyObject obj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。
Public Object getAttribute(Stringkey):获取Session对象中含有关键字的对象。
Public Boolean isNew():判断是否是一个新的客户。
getAttributeNames:获取session中全部属性名字,一个枚举
getCreationTime:返回session的创建时间
getLastAccessedTime:返回最后发送请求的时间
getMaxInactiveInterval:返回session对象的生存时间单位千分之一秒
invalidate:销毁session对象
removeAttribute:删除指定名字的属性
session对象的应用:
登陆逻辑处理界面
在欢迎界面使用getAttribute获取当前的用户名:
在登出界面里清除session对象信息,并跳转到欢迎界面中去
(四)Application:应用程序对象
服务器启动后就产生了这个Application对象,当客户在所访问的网站的各个页面之间浏览时,这个Application对象都是同一个,直到服务器关闭。但是与Session对象不同的是,所有客户的Application对象都是同一个,即所有客户共享这个内置的Application对象。
setAttribute(Stringkey,Objectobj):将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。
getAttribute(Stringkey):获取Application对象中含有关键字的对象。
getInitParameter():返回应用对象中指定名字的初始参数值
getServletInfo():返回Servlet编译器中当前版本信息
setAttribute():设置应用对象中指定名字的属性值
可以使用application对象来实现页面访问次数记录的功能:
(五)out:输出对象
Out对象是一个输出流,用来向客户端输出数据。Out对象用于各种数据的输出。
其常用方法如下:
out.print():输出各种类型数据;
out.newLine():输出一个换行符;
out.close():关闭流。
out.flush():输出缓冲区数据
out.clear():清除缓冲区中数据,但不输出到客户端
out.clearBuffer():清除缓冲区中数据,输出到客户端
out.getBufferSize():获得缓冲区大小
out.getRemaining():获得缓冲区中没有被占用的空间
out.isAutoFlush():是否为自动输出
(六)Config:配置对象
一般我们使用Config对象来获取一些初始化配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。此外,还可以通过getServletContext()方法取得ServletContext。一个ServletContext对象,它能给出Servlet如何与服务器交互的信息。ServletContext对象是服务器传给这个Servlet的。在ServletConfig接口定义中ServletContext对象是其中的一部分。
getServletContext():返回所执行的Servlet的环境对象
getServletName():返回所执行的Servlet的名字
getInitParameter():返回指定名字的初始参数值
getInitParameterNames():返回该JSP中所有的初始参数名,一个枚举
(七)Page:页面对象
Page对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。page对象有点类似与java编程中的this指针,他指向了当前jsp页面本身。page对象是java.lang.object类的一个实例。
page对象拥有一个toString方法,下面是官方定义的方法介绍:
page对象的方法:
toString():将当前项目的信息打印出来
getClass():返回当前的object类
hashCode():返回page对象的hashCode值
equals():用于比较对象是否与当前对象相同
(八)PageContext:页面上下文对象
JSP引入了一个名为PageContext的类,通过通过它可以访问所有的jsp内置对象。。pageContext变量存储与当前页面相关联的PageContext对象的值。PageContext类拥有getRequest,getResponse,getOut,getSession等方法。如果需要访问多个与页面相关的对象,传递pageContext要比传递request,response,out等的独立引用更容易。
Forward():重定向到另一页面或Servlet组件
getAttribute():获取某范围中指定名字的属性值
findAttribute():按范围搜索指定名字的属性
removeAttribute():删除某范围中指定名字的属性
setAttribute():设定某范围中指定名字的属性值
getException():返回当前异常对象
getRequest():返回当前请求对象
getResponse():返回当前响应对象
getServletConfig():返回当前页面的ServletConfig对象
getServletContext():返回所有页面共享的ServletContext对象
getSession():返回当前页面的会话对象
(九)Exception:例外对象
Exception对象代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@pageisErrorPage="true"%>”的JSP文件中使用,这是因为JSP文件运行时产生的错误对象被向外向外抛出,只能被使用了“<%@pageisErrorPage="true"%>”标记从而具有拦截错误对象功能的JSP所拦截。最常用的方法就是getMessage,用以获得错误信息,此外还会用到getLocalizedMessage和printStackTrace。
http://blog.csdn.net/icarus_wang/article/details/51107771 http://blog.csdn.net/icarus_wang/article/details/51108267
部分摘抄于:刘中兵.开发者突击:JavaWeb主流框架整合开发(J2EE+Struts+Hibernate+Spring)(第2版)
JSP中一共预先定义了9个这样的对象,分别为:
Request:请求对象;
Response:响应对象;
Session:会话对象;
Application:应用程序对象;
Out:输出对象;
Config:配置对象;
Page:页面对象;
PageContext:页面上下文对象;
Exception:例外对象。
(一)Request:请求对象
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存发到一个字节数组中,然后再将这个数组转化为字符串对象即可。
StringtextContent=request.getParameter(“boy”); Byteb[]=textContent.getBytes(“ISO-8859-1”); textContent=newString(b);
Request常用的方法如下:
getParameter(StringstrTextName):获取表单提交的信息。
例如:StringstrName=request.getParameter("name");
getProtocol():获取客户使用的协议。
例如:StringstrProtocol=request.getProtocol();
getServletPath():获取客户提交信息的页面.
例如:StringstrServlet=request.getServletPath();
getMethod():获取客户提交信息的方式。
getHeader():获取HTTP头文件中的accept、accept-encoding和Host的值。例如:StringstrHeade=request.getHeader("accept");
getRermoteAddr():获取客户的IP地址。
getRemoteHost():获取客户机的名称。
getServerName():获取服务器名称。
getServerPort():获取服务器的端口号。
getParameterNames():获取客户端提交的所有参数的名字。
isUserInRole():判断认证后的用户是否属于某一成员组
其余方法:
getAttribute():获取指定属性的值,如该属性值不存在返回Null
getAttributeNames():获取所有属性名的集合
getCookies():获取所有Cookie对象
getCharacterEncoding():获取请求的字符编码方式
getContentLength():返回请求正文的长度,如不确定返回-1
getHeaders():获取指定名字报头的所有值,一个枚举
getHeaderNames():获取所有报头的名字,一个枚举
getInputStream():返回请求输入流,获取请求中的数据
getParameterValues:获取指定名字参数的所有值
getQueryString():获取以get方法向服务器传送的查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getSession():获取和请求相关的会话
removeAttribute():删除请求中的一个属性
setAttribute():设置指定名字参数值
request对象演示,完成一个简单的用户注册信息界面,将注册信息发送到欢迎界面上:
用户注册界面表单设置:
<form action="do_register.jsp" method="post"> 用户名: <input type="text" name="userName"><br> 技能: <input type="checkbox" name="skills" value="java">java <input type="checkbox" name="skills" value="python">python <input type="checkbox" name="skills" value="ruby">ruby <input type="checkbox" name="skills" value="golang">golang <br> <input type="submit" value="提交"> <input type="reset" value="重置"> </form>
用户注册信息处理界面使用getParameter方法将用户的表单信息提取出来
Stringname=request.getParameter("userName");
String[]skillArr=request.getParameterValues("skills");
//将skillArr数组转换成字符串:
Stringskills="";
if(skillArr!=null&&skillArr.length>0){
for (String skill:skillArr
) {
skills=skills+skill+" ";
}
}
//将数据使用setAttribute保存起来
request.setAttribute("userName",name);
request.setAttribute("skills",skills);
//使用jsp的forword指令将页面跳转到welcome.jsp
<jsp:forwardpage="welcome.jsp"></jsp:forward>
setAttribute和getAttribute用于在web组件之间共享信息。getparameter方法用于接收服务器通过set和post方法传输的数据
注意没有setparameter方法
welcome.jsp页面配置:
<html> <head> <title>技能展示界面</title> </head> <body> 信息展示界面:<br><br> <%--<%=%>这是表达式<%%>这是jsp程序处理--%> 姓名:<%=request.getAttribute("userName")%><br> 技能:<%=request.getAttribute("skills")%> </body> </html>
(二)Response:响应对象
response对象主要用于对客户端的请求进行回应。以及处理http的连接信息,例如设置http文件头,设置cookie对象等。
response对象方法:
addCookie:添加一个Cookie对象
addHeader:添加Http文件指定名字头信息
containsHeader:判断指定名字Http文件头信息是否存在
encodeURL:使用sessionid封装URL
flushBuffer:强制把当前缓冲区内容发送到客户端
getBufferSize:返回缓冲区大小
getOutputStream:返回到客户端的输出流对象
sendError:向客户端发送错误信息
sendRedirect:把响应发送到另一个位置进行处理。在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用Response的sendRedirect(URL)方法实现客户的重定向。
例如:response.sendRedirect(“index.jsp”);
setContentType:设置响应的MIME类型,动态响应contentType属性当一个用户访问一个JSP页面时,如果该页面用page指令设置页面的contentType属性时text/html,那么JSP引擎将按照这个属性值做出反应。如果要动态改变这换个属性值来响应客户,就需要使用Response对象的setContentType(Strings)方法来改变contentType的属性值。
格式:response.setContentType(Strings);参数s可取text/html,application/x-msexcel,application/msword等。
setHeader:设置指定名字的Http文件头信息
(三)Session:会话对象
Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。
当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。
Session对象的常用方法
Public String getId():获取Session对象编号。
Public void setAttribute(String keyObject obj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。
Public Object getAttribute(Stringkey):获取Session对象中含有关键字的对象。
Public Boolean isNew():判断是否是一个新的客户。
getAttributeNames:获取session中全部属性名字,一个枚举
getCreationTime:返回session的创建时间
getLastAccessedTime:返回最后发送请求的时间
getMaxInactiveInterval:返回session对象的生存时间单位千分之一秒
invalidate:销毁session对象
removeAttribute:删除指定名字的属性
session对象的应用:
//登陆表单设置: <form action="do_login.jsp" method="post"> userName:<input type="text" name="userName"><br/> password:<input type="password" name="password"><br/> <input type="submit" value="submit"> <input type="reset" value="reset"> </form>
登陆逻辑处理界面
//使用getParameter获取到用户名和密码: String userName=request.getParameter("userName"); String password=request.getParameter("password"); //对用户名和密码进行判断: if (userName!=null&&password!=null){ session.setAttribute("userName",userName); response.setHeader("refresh","2;URL=welcome.jsp"); }
在欢迎界面使用getAttribute获取当前的用户名:
<%if(session.getAttribute("userName")!=null){%> <%--getAttribute方法是使用指定的key获取session中的value值。获取到的是一个object对象 在使用的时候需要根据具体的类型进行类型转换。 这里取出的是一个字符串,直接调用会使用他的toString方法,因此不用进行转换--%> 欢迎 <%=session.getAttribute("userName")%> <a href="logout.jsp">注销</a> <%}else{%> 请先登陆 <a href="login.jsp">登陆</a> <%}%> //判断session对象是否是新创建 <%if (session.isNew()){%> <br/> <br/> 欢迎新用户 <%}else{%> <br/> <br/> 欢迎老用户 <%}%>
在登出界面里清除session对象信息,并跳转到欢迎界面中去
session.invalidate();//清除掉session对象 response.setHeader("refresh","2;URL=welcome.jsp");
(四)Application:应用程序对象
服务器启动后就产生了这个Application对象,当客户在所访问的网站的各个页面之间浏览时,这个Application对象都是同一个,直到服务器关闭。但是与Session对象不同的是,所有客户的Application对象都是同一个,即所有客户共享这个内置的Application对象。
setAttribute(Stringkey,Objectobj):将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。
getAttribute(Stringkey):获取Application对象中含有关键字的对象。
getInitParameter():返回应用对象中指定名字的初始参数值
getServletInfo():返回Servlet编译器中当前版本信息
setAttribute():设置应用对象中指定名字的属性值
可以使用application对象来实现页面访问次数记录的功能:
<% Object obj=application.getAttribute("counter"); if (obj==null){ application.setAttribute("counter",new Integer(1)); out.println("该页面被访问了1次<br/>"); }else { int countValue=new Integer(obj.toString()); countValue++; out.println("该页面被访问了"+countValue+"次<br/>"); application.setAttribute("counter",countValue);//java会自动装箱 } %>
(五)out:输出对象
Out对象是一个输出流,用来向客户端输出数据。Out对象用于各种数据的输出。
其常用方法如下:
out.print():输出各种类型数据;
out.newLine():输出一个换行符;
out.close():关闭流。
out.flush():输出缓冲区数据
out.clear():清除缓冲区中数据,但不输出到客户端
out.clearBuffer():清除缓冲区中数据,输出到客户端
out.getBufferSize():获得缓冲区大小
out.getRemaining():获得缓冲区中没有被占用的空间
out.isAutoFlush():是否为自动输出
(六)Config:配置对象
一般我们使用Config对象来获取一些初始化配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数。此外,还可以通过getServletContext()方法取得ServletContext。一个ServletContext对象,它能给出Servlet如何与服务器交互的信息。ServletContext对象是服务器传给这个Servlet的。在ServletConfig接口定义中ServletContext对象是其中的一部分。
getServletContext():返回所执行的Servlet的环境对象
getServletName():返回所执行的Servlet的名字
getInitParameter():返回指定名字的初始参数值
getInitParameterNames():返回该JSP中所有的初始参数名,一个枚举
(七)Page:页面对象
Page对象代表了正在运行的由JSP文件产生的类对象,不建议一般读者使用。page对象有点类似与java编程中的this指针,他指向了当前jsp页面本身。page对象是java.lang.object类的一个实例。
page对象拥有一个toString方法,下面是官方定义的方法介绍:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } //包名+类名+@+hashcode值
page对象的方法:
toString():将当前项目的信息打印出来
getClass():返回当前的object类
hashCode():返回page对象的hashCode值
equals():用于比较对象是否与当前对象相同
(八)PageContext:页面上下文对象
JSP引入了一个名为PageContext的类,通过通过它可以访问所有的jsp内置对象。。pageContext变量存储与当前页面相关联的PageContext对象的值。PageContext类拥有getRequest,getResponse,getOut,getSession等方法。如果需要访问多个与页面相关的对象,传递pageContext要比传递request,response,out等的独立引用更容易。
Forward():重定向到另一页面或Servlet组件
getAttribute():获取某范围中指定名字的属性值
findAttribute():按范围搜索指定名字的属性
removeAttribute():删除某范围中指定名字的属性
setAttribute():设定某范围中指定名字的属性值
getException():返回当前异常对象
getRequest():返回当前请求对象
getResponse():返回当前响应对象
getServletConfig():返回当前页面的ServletConfig对象
getServletContext():返回所有页面共享的ServletContext对象
getSession():返回当前页面的会话对象
(九)Exception:例外对象
Exception对象代表了JSP文件运行时所产生的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了“<%@pageisErrorPage="true"%>”的JSP文件中使用,这是因为JSP文件运行时产生的错误对象被向外向外抛出,只能被使用了“<%@pageisErrorPage="true"%>”标记从而具有拦截错误对象功能的JSP所拦截。最常用的方法就是getMessage,用以获得错误信息,此外还会用到getLocalizedMessage和printStackTrace。
相关文章推荐
- JSP的九大内置对象以及四大作用域
- jsp九大内置对象之application对象
- JSP九大内置对象和四大作用域及其作用
- JSP的九大内置对象及JSP的基本用法
- JSP九大内置对象及四个作用域
- 详解JSP九大内置对象及对应作用域
- java WEB学习之路①之jsp九大内置对象
- 深入分析JavaWeb 14 -- jsp九大内置对象
- JSP九大内置对象
- Servlet:Servlet与JSP九大内置对象的对应关系以及通过Servlet获取表单数据
- jsp的九大内置对象和四大作用域<2>
- jsp的九大内置对象
- JSP九大内置对象
- JSP九大内置对象
- JSP的九大内置对象
- jsp学习与总结(九大内置对象)
- JSP九大内置对象
- jsp九大内置对象
- JSP九大内置对象。(自己明白就行。)
- JSP基本语法总结【2】九大内置对象