2013-02-05 6 views
0

우리는 JSF 1.2로 만든 응용 프로그램을 가지고 있습니다. 우리는 JBoss 4.2와 Apache를 사용합니다.누락 요청 매개 변수

우리가 가지고있는 문제는 생산 환경에 무작위로 나타납니다.

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

하여 myParam는 BASE64로 인코딩 :

우리는 JSP 페이지에서 유사한 정적 링크를 가지고있다. mypage.jsp 파일에서

우리는 다음을 수행하십시오

<body> 
<% String param = request.getParameter("param"); 
    String decoded = new BASE64Decoder().decodeBuffer(param));%> 
... 

때때로, 문자열 PARAM이 너무 다음 NULL의 IT는 NullPointerException이 시작됩니다.

여러분도 알다시피 매우 간단합니다.

여기에 무슨 일이 일어나고 있는지에 대한 아이디어가 있습니까?

FacesContext facescontext = FacesContext.getCurrentInstance(); 
facescontext.getExternalContext().redirect("/myservlet?param=TYPE"); 

: 우리가 할 곳

우리는 우리의 코드의 다른 부분에서 같은 문제를 가지고 ... 나는 며칠 동안 인터넷 검색을 봤는데 무슨 일이 일어나고 있는지 나는에 대한 단서를 찾을 수 없습니다 var TYPE 그것은 때로는 누락되어 NULL이 아니어야 할 때 코드의 다른 부분에서 또 다른 NullPointerException을 생성합니다.

감사합니다. ? mypage.jsp

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

일 내부

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

JSP 페이지 내

+0

대신 PARAM =하여 myParam로 전달 괜찮습니다,이 시도 : & PARAM =하여 myParam. 그건 대신에? &를 사용하십시오. 그럴 수도 있습니다. 그것이 효과가 있는지 말해봐. –

+1

@TheDarkKnight : 완전 말도 안돼. '?'는 URI와 쿼리 문자열을 분리하는 것이며'&'는 쿼리 문자열 자체에서 매개 변수를 분리하는 것입니다 (그리고'= '는 매개 변수 이름과 값을 분리하는 것입니다). 책으로 돌아가서 기본 HTTP를 배우십시오. – BalusC

+0

@BalusC : 무언가가 이치에 맞지 않는다는 말을하기 전에, 그것이 의미가 정확하지 않다는 것을 알기 위해 시간과 인내심을 가져라. 내가 말한 것은 실용적인 POV에서 배웠습니다. 때로는? 게시 된 값이 delimeter로 사용되지 않으므로 쿼리 문자열에서 작동하지 않습니다. 그리고 내가 말한 것이 정말로 무엇인가에 달려 있는지 여부를 검증하지 않고 기본 http에 관해 말해 줄 생각은하지 마십시오. –

답변