request对象?request对象是有什么功能
朋友们,你是否曾想过深入了解request对象和request对象是有什么功能的内涵?在本文中,我将为你详细解析这两个话题,希望能给你带来全新的视角和思考。
Request对象的主要方法有哪些
Request对象的主要方法:
setAttribute(String name,Object):设置名字为name的request的参数值
getAttribute(String name):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有 Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的 Body的长度
getHeader(String name):获得HTTP协议定义的文件头信息
getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例
getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(String name):获得客户端传送给服务器端的有 name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实
例
getParameterValues(String name):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的 IP地址
getRemoteHost():获取客户端的名字
getSession([Boolean create]):返回和请求相关 Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(String name):删除请求中的一个属性
java中怎么创建一个Request对象
packagewzh.Http;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.net.URL;
importjava.net.URLConnection;
importjava.util.List;
importjava.util.Map;
publicclassHttpRequest{
/**
*向指定URL发送GET方法的请求
*
*@paramurl
*发送请求的URL
*@paramparam
*请求参数,请求参数应该是name1=value1&name2=value2的形式。
*@returnURL所代表远程资源的响应结果
*/
publicstaticStringsendGet(Stringurl,Stringparam){
Stringresult="";
BufferedReaderin=null;
try{
StringurlNameString=url+"?"+param;
URLrealUrl=newURL(urlNameString);
//打开和URL之间的连接
URLConnectionconnection=realUrl.openConnection();
//设置通用的请求属性
connection.setRequestProperty("accept","*/*");
connection.setRequestProperty("connection","Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");
//建立实际的连接
connection.connect();
//获取所有响应头字段
Map<String,List<String>>map=connection.getHeaderFields();
//遍历所有的响应头字段
for(Stringkey:map.keySet()){
System.out.println(key+"--->"+map.get(key));
}
//定义BufferedReader输入流来读取URL的响应
in=newBufferedReader(newInputStreamReader(
connection.getInputStream()));
Stringline;
while((line=in.readLine())!=null){
result+=line;
}
}catch(Exceptione){
System.out.println("发送GET请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输入流
finally{
try{
if(in!=null){
in.close();
}
}catch(Exceptione2){
e2.printStackTrace();
}
}
returnresult;
}
/**
*向指定URL发送POST方法的请求
*
*@paramurl
*发送请求的URL
*@paramparam
*请求参数,请求参数应该是name1=value1&name2=value2的形式。
*@return所代表远程资源的响应结果
*/
publicstaticStringsendPost(Stringurl,Stringparam){
PrintWriterout=null;
BufferedReaderin=null;
Stringresult="";
try{
URLrealUrl=newURL(url);
//打开和URL之间的连接
URLConnectionconn=realUrl.openConnection();
//设置通用的请求属性
conn.setRequestProperty("accept","*/*");
conn.setRequestProperty("connection","Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");
//发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
//获取URLConnection对象对应的输出流
out=newPrintWriter(conn.getOutputStream());
//发送请求参数
out.print(param);
//flush输出流的缓冲
out.flush();
//定义BufferedReader输入流来读取URL的响应
in=newBufferedReader(
newInputStreamReader(conn.getInputStream()));
Stringline;
while((line=in.readLine())!=null){
result+=line;
}
}catch(Exceptione){
System.out.println("发送POST请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOExceptionex){
ex.printStackTrace();
}
}
returnresult;
}
}
publicstaticvoidmain(String[]args){
//发送GET请求
Strings=HttpRequest.sendGet("http://localhost:6144/Home/RequestString","key=123&v=456");
System.out.println(s);
//发送POST请求
Stringsr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString","key=123&v=456");
System.out.println(sr);
}
request对象是有什么功能
request的其他功能,request是一个域对象,request对象也是一个存储数据的区域对象,所以也具有如下方法:setAttribute(String name, Object o),getAttribute(String name),removeAttribute(String name)
request完成请求转发,获得请求转发器----path是转发的地址RequestDispatchegetRequestDispatcher(String path),通过转发器对象转发requestDispathcer.forward(ServletRequest request, ServletResponse response)
HttpServletRequest概述,在创建 Servlet时会覆盖 service()方法,或 doGet()/doPost(),这些方法都有两个参数,一个为代表请求的 request和代表响应 response。
service方法中的 request的类型是 ServletRequest,而 doGet/doPost方法的request的类型是 HttpServletRequest,HttpServletRequest是 ServletRequest的子接口,功能和方法更加强大,今天我们学习HttpServletRequest。因为 request代表请求,所以我们可以通过该对象分别获得 Http请求的请求行,请求头和请求体。
通过 request获得请求行,获得客户端的请求方式:String getMethod()
获得请求的资源:String getRequestURI(),StringBuffer getRequestURL(),String getContextPath(),String getQueryString(),request.getRemoteAddr()
通过 request获得请求头,long getDateHeader(String name),String getHeader(String name),Enumeration getHeaderNames(),Enumeration getHeaders(String name),int getIntHeader(String name),这里只展示最常用的两种方法~
通过 request获得请求体,请求体中的内容是通过 post提交的请求参数,通过一下方法获得请求参数:String getParameter(String name),String[] getParameterValues(String name),Enumeration getParameterNames(),Map<String,String[]> getParameterMap()
注意:get请求方式的请求参数上述的方法一样可以获得
文章到此结束,希望我们对于request对象和request对象是有什么功能的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。