[英]JSP getParameter (IE problem)
我的下一个来自:
<form action="relogin.jsp" method="post">
<input type="text" id="authname" name="login" value="<%=login%>" tabindex="1" title="<%=bundle.getString("[Login]")%>" />
<input type="password" name="pwd" id="authpass" value="" tabindex="2" title="<%=bundle.getString("[Password]")%>" />
<input type="submit" name="enter" value="<%=bundle.getString("[Enter]")%>" class="proaction" tabindex="3" title="<%=bundle.getString("[Enter]")%>" />
</form>
我在我的jsp文件中维护参数:
<%if (request.getContentLength() == 0) { .[IE6,7 goes here]. } else { .[Chrome and FireFox goes here]. } %>
如您所见,我在维护从IE6,7发布的发布参数方面存在问题。 在Chrome和FireFox中,一切正常。 我使用Apache Tomcat,并且两种情况下的日志文件均不包含任何错误。
有什么建议么?
我只是尝试了一下,却无法复制问题(我在FF4 Beta,IE6和IE8中进行了测试):
<% out.print("Content Length: " + request.getContentLength());%>
<h1>Content Length Test</h1>
<form action="test.jsp" method="post">
<input type="text" id="authname" name="login" value="a" tabindex="1" title="" />
<input type="password" name="pwd" id="authpass" value="b" tabindex="2" title="" />
<input type="submit" name="enter" value="b" class="proaction" tabindex="3" title="" />
</form>
你能试一下吗:
<%if (request.getContentLength() > 0) { .. } else { .[Chrome and FireFox goes here], [IE6,7 should go here]. } %>
注意:我也刚刚在Chrome中进行了测试。所有浏览器的句柄在request.getContentLength()中返回相同的值。确定要在relogin.jsp上调用getContentLength函数吗?
然后,我不确定,也许可以在没有request.getContentLength()的情况下在生产服务器上尝试测试页。
<%@page contentType="text/html" pageEncoding="UTF-8" import="java.io.*, java.util.*"%>
// adapted from: http://www.java2s.com/Code/Java/JSP/Printtherequestheadersandthesessionattributes.htm
Enumeration enames = request.getHeaderNames();
Enumeration pnames = request.getParameterNames();
Map map = new TreeMap();
while (enames.hasMoreElements()) {
String name = (String) enames.nextElement();
String value = request.getHeader(name);
map.put(name, value);
}
while(pnames.hasMoreElements()) {
String name = (String) pnames.nextElement();
String value = request.getParameter(name);
map.put(name, value);
}
out.println(createTable(map, "Request Headers"));
带有:
private static String createTable(Map map, String title)
{
StringBuffer sb = new StringBuffer();
// Generate the header lines
sb.append("<table border='1' cellpadding='3'>");
sb.append("<tr>");
sb.append("<th colspan='2'>");
sb.append(title);
sb.append("</th>");
sb.append("</tr>");
// Generate the table rows
Iterator imap = map.entrySet().iterator();
while (imap.hasNext()) {
Map.Entry entry = (Map.Entry) imap.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
sb.append("<tr>");
sb.append("<td>");
sb.append(key);
sb.append("</td>");
sb.append("<td>");
sb.append(value);
sb.append("</td>");
sb.append("</tr>");
}
// Generate the footer lines
sb.append("</table><p></p>");
// Return the generated HTML
return sb.toString();
}
查看生产服务器返回的标题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.