2013-02-05 187 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"); 

里面工作是精细