2013-02-05 188 views
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。

謝謝。 ?

+0

不是傳遞爲PARAM = MYPARAM的,試試這個:PARAM = MYPARAM。那意味着而不是? , 使用 &。這可能會起作用。請告訴我它是否有效。 –

+1

@TheDarkKnight:完全廢話。 '?'是將查詢字符串從URI中分離出來的,'&'是將查詢字符串本身的參數分開('='是將參數名稱和值分開)。回到書籍來學習基本的HTTP。 – BalusC

+0

@BalusC:在你說一些沒有意義的事情之前,花點時間和耐心去知道它並不完全合理。我所說的是從實際的POV中學到的。有時候呢?在查詢字符串中不起作用,因爲發佈的值不會將其作爲分隔符。並且不要假設告訴我關於基本的http而沒有驗證我所說的是否確實等於或不是。 –

回答

0

JSP頁面內

<a href="http://myhost/mypage.jsp?param=MYPARAM">link</a> 

mypage.jsp

String param = request.getParameter("param"); 

裏面工作是精細