我看到一个奇怪的问题,request.getParameter("pg")
在URL中返回null,我可以看到它与其他参数一起传递。除了这一个参数外,所有其他参数都正确打印。可能出现什么问题?
Map<String,String[]> paramMap = (Map<String,String[]>)request.getParameterMap();
for (Map.Entry<String, String[]> paramPair : paramMap.entrySet()) {
LOGGER.info("key - " + paramPair.getKey() + " value =" + paramPair.getValue()[0]);
}
示例网址 -
http://myserver?searchfor=History+of+Photography&cb=XQ&n=77de88ca&ptnrS=XQyyyyyyYYus&qid=812753692c6536fb529f5ca7ac5aca9b&action=pick&ss=sub&pn=1&st=hp&ptb=447E5AED-F162-40B4-9EE5-A81299D0223D&plp=1&pg=PRshop&redirect=mPWsrdz9heamc8iHEhldEeSc%2FVOw6SzSGaNI5V3YDA%2F2aJhytHNs8w96Bn6LLIZVUIhPwV62vOCzTXhqJvTnW5g66rsz%2FnxYxdLMAYgDRrDL0jeKlXJQ1pFUFFVXHSrvxvGE971vUn5%2F0m7v9vrFJGEoo6nckfQS9o9CGCHUWndDqD0rhA8TW%2Bfa%2Fpxz8JafQQ3ID%2Fsw6GdCvt65%2FomhgEvEX4xv%2B8XQkfNLNvl6%2BpZdZJshoyUfDw5LZBwzFpw52x0Em9ZDVu1sHm4WxLPt9rDUBHj5Wn0eVf5HNoVYGyCa%2FfufPwfQy8OYiLdgvskMPxUTd3YQOJiiO%2F%2ByMdF4Ew%3D%3D&hlc=YWotbWVnYXx4cS1ocA..&pr=PR&ct=GG&tpr=sbt&tp=top
答案 0 :(得分:4)
对于ServletRequest的Java EE 6 API,如果参数不存在,getParameter(String)将返回null
。如果您收到null
,则该参数不存在。
此外,您包含的网址示例未显示此错误。
以下是我用来测试的代码:
public final class BlueServlet extends HttpServlet
{
private static final long serialVersionUID = 6055351295950796407L;
private static final Logger logger = LoggerFactory.getLogger(BlueServlet.class);
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter responseWriter;
@SuppressWarnings("unchecked")
Map<String, String[]> parameterMap = request.getParameterMap();
if ((parameterMap != null) && !parameterMap.isEmpty())
{
Map.Entry<String, String[]> entry;
int index;
Iterator<Map.Entry<String, String[]>> iterator = parameterMap.entrySet().iterator();
StrBuilder valueBuffer = new StrBuilder();
String[] values;
while (iterator.hasNext())
{
entry = iterator.next();
values = entry.getValue();
valueBuffer.setLength(0);
if (values != null)
{
for (index = 0; index < values.length; ++index)
{
valueBuffer.appendSeparator(", ");
valueBuffer.append(values[index]);
}
}
else
{
valueBuffer.append("[none]");
}
logger.info("Key: {}; Value(s): {}", entry.getKey(), valueBuffer);
}
}
else
{
logger.info("parameterMap is empty.");
}
responseWriter = response.getWriter();
responseWriter.println("<html><head><title>Blue</title></head><body>");
responseWriter.println("<h1>Blue</h1></body>");
}