从http请求中 获得请求参数 应该调用哪个方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从http请求中 获得请求参数 应该调用哪个方法相关的知识,希望对你有一定的参考价值。

HTTP请求方式有两种,一种是GET方式,请求参数会用“?”作为分隔符跟在请求资源后面;另一种是POST方式,请求参数放在了最后面的位置。
  服务器监听到浏览器的链接,首先将HTTP请求信息保存下来,再进行解析。
// 请求信息的输入流
private InputStream input;

//获得HTTP请求信息,并解析出请求使用的是GET还是POST,然后调用相应的处理方法进行处理

public void parseInput()
byte [] b = new byte[1024];
try
input.read(b);
catch (IOException e)
LogInfo.error("读取请求信息出错"+e.getMessage());
return;

String inputStr = new String(b);
String type = inputStr.substring(0,inputStr.indexOf(" "));
if("GET".equals(type))
parseGetString(inputStr);

else
parsePostString(inputStr);



//路径信息,http://localhost:8088/CCB?account=abc&pwd=123,其中/CCB表示pathInfo
private String pathInfo;
//请求资源路径,pathInfo中最后一个斜杆后米啊的字符串,如/bank/CCB,其中/CCB表示urlPattern
private String urlPattern;
//请求参数,在Get请求中第一个问号后面的字符串,如account=abc&pwd=123
private String queryStr;
//解析GET请求
public void parseGetString(String getStr)

String allStr = getStr;
String info = allStr.substring(allStr.indexOf("/"),allStr.indexOf(" HTTP"));
int end = info.indexOf("?");
if(end == -1)
pathInfo = info;
else
pathInfo = info.substring(0,end);
queryStr = info.substring(end + 1);


urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));
parseQueryInfo(queryStr);

//解析POST请求
public void parsePostString(String postStr)
String qStr = postStr.trim();

pathInfo = postStr.substring(postStr.indexOf("/"),postStr.indexOf(" HTTP"));
urlPattern = pathInfo.substring(pathInfo.lastIndexOf("/"));
queryStr = qStr.substring(qStr.lastIndexOf(System.getProperty("line.separator"))).trim();
parseQueryInfo(queryStr);

解析出请求资源路径和请求参数就可以找到对应的资源发送给浏览器或根据请求参数做相应的处理,再将资源发送回去。
参考技术A php的话可以通过$_GET,$_POST 和 $_COOKIE 获取。

HttpServlet的子类要从HTTP请求中获得请求参数,应该调用哪个方法?

A.调用HttpServletRequest对象的getAttribute()方法
B.调用ServletContext对象的getAttribute()方法
C.调用HttpServletRequest对象的getParameter()方法
D.调用HttpServletRequest对象的getHeader()方法

参考技术A 回答
HttpServlet的子类要从HTTP请求中获得请求参数,应该调用哪个方法?
A.调用HttpServletRequest对象的getAttribute()方法B.调用ServletContext对象的getAttribute()方法C.调用HttpServletRequest对象的getParameter()方法D.调用HttpServletRequest对象的getHeader()方法
展开
JavaScript

以上是关于从http请求中 获得请求参数 应该调用哪个方法的主要内容,如果未能解决你的问题,请参考以下文章

struts2如何获取请求参数

在iOS中通过GET方法发送http请求,如果参数中有中文或者空格的时候应该怎么办?

Java sendPost请求方法如何加入参数?

Fegin-完整请求流程解析

Gin-获取POST请求参数

原Http-用getInputStream()或者getParameterMap()获得Post请求的数据