第4章 JSP内置对象.docx
《第4章 JSP内置对象.docx》由会员分享,可在线阅读,更多相关《第4章 JSP内置对象.docx(37页珍藏版)》请在冰豆网上搜索。
第4章JSP内置对象
第四章、JSP内置对象
JSP的内置对象由JSP容器自动为JSP页面提供,可以使用标准的变量来访问这些对象,并且不用编写任何额外的代码,可以在JSP网页中使用。
在JPS2.0规范中定义了以下9个内置对象:
request(请求对象)、response(响应对象)、session(会话对象)、application(应用程序对象)、out(输出对象)、page(页面对象)、config(配置对象)、exception(异常对象)、pageContext(页面上下文对象)。
在这一章中,我们将对它们进行介绍,并通过示例来介绍它们的具体使用方法。
4.1内置对象概述
正如第一章所介绍,Web应用程序的特点是每一个JSP文件相当于独立的运行单元,类似于一个独立的应用程序,并由容器(Tomcat)进行统一管理。
对于一个实际工程项目来说,不可能只有一张页面,且页面之间存在各类内部数据的实时通信问题,如:
把A页面登录数据传递到B页面进行验证;购物车的设计涉及若干页面共享数据问题;公告栏涉及不同用户的数据共享问题。
而且,在实际项目中,存在着对各类请求/响应有一些特殊要求等。
因此,容器根据规范要求,向用户提供了一些内置对象,用于解决上述问题,并负责对这些对象的管理,包括内置对象的生存期、作用域等。
这些内置对象中,request、response对象是在客户端请求一个JSP页面,由容器实时生成并作为服务参数传递给JSP(实际上是servlet),请求/相应结束,由容器回收;session的生成一般是在用户第一进入系统时形成,退出系统时,由容器回收。
4.2request对象
request对象最主要的作用在于接收参数,当客户端请求一个JSP页面时,JSP容器会将客户端的请求信息包装在这个request对象,请求信息的内容包括请求的头信息、请求的方式、请求的参数名称和参数值等信息。
request对象封装了用户提交的信息,通过调用该对象相应的方法可以获取来自客户端的请求信息,然后做出响应。
它是HttpServletRequest类的实例。
4.2.1request对象主要方法
序号
方法名
方法说明
1
*getAttribute(Stringname)
返回指定属性的属性值
2
getAttributeNames()
返回所有可用属性名的枚举
3
getCharacterEncoding()
返回字符编码方式
4
getContentLength()
返回请求体的长度(以字节数)
5
getContentType()
得到请求体的MIME类型
6
getInputStream()
得到请求体中一行的二进制流
7
*getParameter(Stringname)
返回name指定参数的参数值
8
getParameterNames()
返回可用参数名的枚举
9
getParameterValues(Stringname)
返回包含参数name的所有值的数组
10
getProtocol()
返回请求用的协议类型及版本号
11
getServerName()
返回接受请求的服务器主机名
12
getServerPort()
返回服务器接受此请求所用的端口号
13
getReader()
返回解码过了的请求体
14
getRemoteAddr()
返回发送此请求的客户端IP地址
15
getRemoteHost()
返回发送此请求的客户端主机名
16
*setAttribute(Stringkey,Objectobj)
设置属性的属性值
17
getRealPath(Stringpath)
返回一虚拟路径的真实路径
18
getMethod()
返回客户向服务器传输数据的方式
19
getRequestURL()
返回发出请求字符串的客户端地址
20
*getSession()
创建一个session对象
表4-1request对象方法
下面的程序示例了request对象的一些常用方法,通常使用request对象来获得客户端传来的数据。
example4_1.jsp
<%@pagecontentType="text/html;charset=gb2312"%>
<%request.setCharacterEncoding("gb2312");%>
<%@pageimport="java.util.Enumeration"%>
request对象示例
一.request对象常用方法
请求方式:
<%=request.getMethod()%>
请求的资源:
<%=request.getRequestURI()%>
请求用的协议:
<%=request.getProtocol()%>
请求的文件名:
<%=request.getServletPath()%>
请求的服务器的IP:
<%=request.getServerName()%>
请求服务器的端口:
<%=request.getServerPort()%>
客户端IP地址:
<%=request.getRemoteAddr()%>
客户端主机名:
<%=request.getRemoteHost()%>
表单提交来的值:
<%=request.getParameter("qwe")%>
二.使用request获取客户端提交的参数
用户名:
密码:
<%Stringstr="";
if(request.getParameter("username")!
=null
&&request.getParameter("userpass")!
=null){
Enumerationenumt=request.getParameterNames();
while(enumt.hasMoreElements()){
str=enumt.nextElement().toString();
out.println(str+":
"+request.getParameter(str)+"
");
}
}
%>
擅长:
VC++
JAVA
DELPHI
VB
<%if(request.getParameter("qwe")!
=null){
for(inti=0;iout.println("cb"+i+":
"
+request.getParameterValues("cb")[i]
+"
");
}
out.println(request.getParameter("qwe"));
}
%>