ope*_*sas 11 java post get http
在ASP中,有request.form和request.queryString属性,但在Java中.好像我们只有一个集合,它可以通过以下方式访问request.getParamaterMap,getParametersNames,getParameterValues等.
有没有办法告诉哪些值已经发布以及哪些值已在URL中指定?
PS:
我想要实现的是创建一个可以处理以下情况的页面
request.getReader()).我正在使用tomcat 6.
根据我到目前为止看到的,如果我发布了一个request.getReader(),发布的值不再出现在getParamater集合中,但仍然存在查询字符串参数.
另一方面,如果我发出任何getParameters方法,则getReader返回空字符串.
好像我不能吃蛋糕也吃.
所以,我想解决方案是:
getReader.request.getParameter有什么好主意吗?
只是为了澄清事情.问题似乎是,getParameter您获得发布的值以及通过URL传递的值,请考虑以下示例:
<%@page import="java.util.*"%>
<%
Integer i;
String name;
String [] values;
for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
name = (String) e.nextElement();
values = request.getParameterValues( name );
for ( i=0; i < values.length; i ++ ) {
out.println( name + ":" + values[i] + "<br/>" );
}
}
%>
<html>
<head><title>param test</title>
</head>
<body>
<form method="post" action="http://localhost:8080/jsp_debug/param_test.jsp?data=from_get">
<input type="text" name="data" value="from_post">
<input type="submit" value="ok">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是
data:from_get
data:from_post
...
Run Code Online (Sandbox Code Playgroud)
似乎为了找到哪个参数来自哪里,我必须检查request.getQueryString.
mat*_*t b 27
HttpServletRequest.getMethod():
返回用于发出此请求的HTTP方法的名称,例如,GET,POST或PUT.与CGI变量REQUEST_METHOD的值相同.
你需要做的就是:
boolean isPost = "POST".equals(request.getMethod());
Run Code Online (Sandbox Code Playgroud)
另外,我真的很困惑为什么你不会简单地request.getParameter("somename")用来检索作为请求参数发送的值.无论请求是通过GET还是POST发送,此方法都会返回参数:
请求参数是随请求一起发送的额外信息.对于HTTP servlet,参数包含在查询字符串或发布的表单数据中.
比试图解析getQueryString()自己要简单得多.
| 归档时间: |
|
| 查看次数: |
32854 次 |
| 最近记录: |