0
我們有一個使用JSF 1.2製作的應用程序。我們使用JBoss 4.2和Apache。缺少請求參數
我們遇到的問題隨機出現在生產環境中。
我們在JSP頁面的靜態鏈接,類似於:
<a href="https://myhost/mypage.jsp?param=MYPARAM">link</a>
MYPARAM進行編碼BASE64。
在mypage.jsp文件中,我們做了下:
<body>
<% String param = request.getParameter("param");
String decoded = new BASE64Decoder().decodeBuffer(param));%>
...
有時,串PARAM它是空,因此然後,它將啓動一個NullPointerException。
正如你所看到的,它非常簡單。
有關這裏發生了什麼的一些想法?我一直在谷歌上搜索了幾天,我沒有找到有關的線索是怎麼回事...
我們有我們的代碼另一部分同樣的問題,我們做了:
FacesContext facescontext = FacesContext.getCurrentInstance();
facescontext.getExternalContext().redirect("/myservlet?param=TYPE");
的var TYPE有時會丟失它,在我們的代碼的其他部分產生另一個NullPointerException,當它永遠不應該是NULL。
謝謝。 ?
不是傳遞爲PARAM = MYPARAM的,試試這個:PARAM = MYPARAM。那意味着而不是? , 使用 &。這可能會起作用。請告訴我它是否有效。 –
@TheDarkKnight:完全廢話。 '?'是將查詢字符串從URI中分離出來的,'&'是將查詢字符串本身的參數分開('='是將參數名稱和值分開)。回到書籍來學習基本的HTTP。 – BalusC
@BalusC:在你說一些沒有意義的事情之前,花點時間和耐心去知道它並不完全合理。我所說的是從實際的POV中學到的。有時候呢?在查詢字符串中不起作用,因爲發佈的值不會將其作爲分隔符。並且不要假設告訴我關於基本的http而沒有驗證我所說的是否確實等於或不是。 –