我對JSP/Servlet來說很新,我一直在做一些工作,並且工作了一段時間。我有一個名爲「telGir.jsp」 jsp和我通過一個URL參數,從這個JSP到一個名爲「telKayit」的servlet將URL參數從JSP傳遞給Servlet,參數更改
一個例子URL JSP頁面,當我在本地主機上運行:
http://localhost:9081/Pol/telGir.jsp?token=3403123412340000
這是我的JSP代碼:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Title</title>
</head>
<body
<p align="center"><font size="14"><b>TEXT</b></font></p>
<p align="center"><font size="14">MORE TEXT</font></p>
<table align="center" size="800">
<form name="Police" id="Police" action="telKayit?token=${param.token}" method="post">
</table>
<table align="center" size="800">
<tr><td align="center"><input type="submit" value="Tamam" style="height:2.5em; width:7.5em;font-size: 51px "></td></tr>
</table></form>
</body>
</html>
當按鈕被按下的形式帶我到這個網址:
http://localhost:9081/Pol/telKayit?token=3403123412340000
最後在我的servlet我用這行代碼從上面的鏈接獲得令牌:
String token = request.getParameter("token");
這爲我工作,到目前爲止,因爲令牌由數字。最近,我被要求把編碼的文本進行標記,所以對於JSP新的URL會是這樣的:
http://localhost:9081/Pol/telGir.jsp?token=6amyutm%2F%2BhZeXxJonjEBqduaQVlXuO3%2FUAffs2MSyBs%3D
這裏的問題是:當令牌參數正在從JSP傳遞到Servlet的出於某種原因'%'會導致它改變。當我按下按鈕時,會出現下面的鏈接,它具有不同的「標記」值。
http://localhost:9081/Pol/telKayit?token=6amyutm/+hZeXxJonjEBqduaQVlXuO3/UAffs2MSyBs=
由於參數在servlet中接收到它時發生變化,我無法正確解碼並得到我的結果。從我研究的內容中我已經意識到'%'符號使得我的代碼將以下兩個字符解釋爲ASCII。所以:2F變成'/',2B變成'+'等。我怎樣才能阻止它,讓它只是作爲一個常規的字符串變量傳遞'token'而不改變它?