我用的tomcat7,现在后台用request.getParameter("url")取不到前台JSP页面的值,JSP页面代码如下:
<%@ page contentType="text/html; charset=UTF-8" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="cache-control" CONTENT="no-cache">
<META HTTP-EQUIV="expires" CONTENT="0">
<META HTTP-EQUIV="Content-Type" content="text/html; charset=UTF-8">
<META HTTP-EQUIV="Content-Script-Type" content="text/javascript">
<META HTTP-EQUIV="Content-Style-Type" content="text/css">
<link rel="stylesheet" type="text/css" href="css/base.css">
<title>Menu</title>
<SCRIPT language="JavaScript">
<!--
function nextPage(url) {
location.replace(url);
}
function setUrl(url) {
document.forms[0].url.value = url;
}
//-->
</SCRIPT>
</head>
<body tabindex="-1">
<%-- ページ?ボディ --%>
<form action="/apl500/select.do" method="post" target="_self" >
<input type="hidden" name="url" value ="" />
<input type="hidden" name="apl500_p" value ="1" />
<table style="width:100%;" border="0">
<tr>
<td style="width:100%;text-align:center">
<font size="5" color="#000000">
<B>Menu</B></font>
</td>
<td style="text-align:right">
<input type="submit" name="submit_logout" value="Logout" tabindex="-1"/>
</td>
</tr>
</table>
<hr><br>
<div align="center" style="width:90%;height:482px;overflow:auto;margin-left:40px;">
<table border="0">
<tr>
<td style="width:100%;text-align:center">
<input type="submit" name="btn1" value="アプリケーション1" onclick="setUrl('/aplXXX')" style="width:400px;height=150px;font-size:14pt;"/>
</td>
</tr>
<tr>
<td style="width:100%;text-align:center">
<input type="submit" name="btn2" value="新共通認証システム(ローカル環境用)テスト" onclick="setUrl('/authTest')" style="width:400px;height=150px;font-size:14pt;"/>
</td>
</tr>
</table>
</div>
<%-- ページ?フッダー --%>
<%@ include file="/WEB-INF/jsp/footer.inc" %>
</form>
</body>
</html>
<% out.flush(); %>
我用tomcat5就可以取到。
另外,我在后台获得的ServletInputStream里面有url,但是不知道为什么getParameter却取不到。
这是后台取到的stream: url=%2FaplXXX&apl500_p=1&btn1=%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%EF%BC%91
高手帮忙,急死了!
------解决方案--------------------
试试用
request.getRequestURL()这个看能不能取到
------解决方案--------------------
request.getRequestURL()或者request.getHeader("Referer");
------解决方案--------------------
request.getParameter 和 request.getInputStream() 是有冲突的,因为流只能被读一次。
------解决方案--------------------
换浏览器看看呢
------解决方案--------------------
用request.getParameterMap看看是否有,tomcat7用的servlet3.0协议,和servlet2.0还是差别很大的。
------解决方案--------------------
getInputStream()和getReader()会干扰parameter的解析。是不是getParameter()之前有调用了getInputStream()。
------解决方案--------------------
一般url都会带有&这些特殊字符,需要用js用转码后传给后台,或把特殊字符替换了,如把=替换成$$$,然后在后台再把$$$替换成=