1.请求对象类型与生命周期
JavaEE请求对象要实现javax.servlet.http.HttpServletRequest接口。
在web组件开发中,不需要servlet和jsp自己创建对象,他们由web容器自动创建,并传递给
servlet和jsp的服务方法doGet和doPost,在服务处理方法中直接使用请求对象即可。
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{}
2.请求对象的功能
(1).取得请求头的信息
(2).取得请求体中包含的提交数据
(3).取得客户端的相关信息
(4).取得服务端的相关信息
(5).取得请求对象的属性信息
3.取得请求头方法
(1). String getHeader(String name)
取得指定请求头字符串类型的内容
String browser=request.getHeader("User-Agent");
(2). int getIntHeader(String name)
取得指定请求头整型类型的内容
int size=request.getIntHeader("Content-Length");
(3).long getDateHeader(String name)
取得指定请求头日期类型的内容,返回long型表示从1970年1月1日0点开始计时的毫秒数
long datetime=request.getDateHeader("If-Modify-Since");
(4).Enumeration getHeaderNames()
取得所有请求头的列表,以枚举类型返回
for(Enumeration enum=request.getHeaderNames();enum.hasMoreElements();){
String headername=(String)enum.nextElement();
System.out.println("name:"+headername);
}
4.取得请求体中的数据
(1).String getParameter(String name)
取得指定名称的数据类型,主要用于处理表单数据
员工编号:<input type="text" name="userid" />
String id=request.getParameter("userid");
(2).String[] getParameterValues(String name)
取得指定名称的数据数组,主要用于处理复选框和下拉菜单
爱好:<input type="checkbox" name="behave" value="travel" />旅游
<input type="checkbox" name="behave" value="read" />读书
<input type="checkbox" name="behave" value="PE" />体育
String[] behaves=request.getParameterValues("behave");
for(int i=0;i<behaves.length;i++){
out.println("behaves[i]");
}
(3).Enumeration getParameterNames()
取得所有参数的名称
for(Enumeration enum=request.getParameterNames();enum.hasMoreElements();){
String paramname=(String)enum.nextElement();
System.out.println("name:"+paramname);
}
(4).Map getParameterMap()
取得所有请求对象的参数名和值,包装在一个Map对象中,可以使用这个对象同时取得
所有参数名和参数值
Map params=request.getParameterMap();
Set names=params.keySet();
for(Object o:names){
String paramname=(String)o;
out.print(paramname+"="+params.get(paramname)+"<br/>");
}
(5).ServletInputStream getInputStream() throws IOExcepyion
取得客户提交的流
注意:getInputStream()方法和getParameter()方法不能同时使用
5.取得客户端相关信息
(1).String getRemoteHost()
取得请求客户的主机名
(2).String getRemoteAddr()
取得请求客户的IP地址
(3).int getRemotePort()
取得请求客户的端口号
(4).String getProtocol()
取得请求协议
(5).String getContentType()
取得请求体的内容类型,以MIME表达
(6).int getContentLength()
取得当请求体为二进制流时请求体的长度
(7).String getProtocol()
取得请求的协议,一般为HTTP,返回HTTP1.1
6.取得服务端信息
(1).String getServerName()
取得服务器的HOST,一般为IP地址
(2).int getServerPort()
取得服务器的接收端口