문제

우선 내 Java는 녹슬지 않았고 JSP나 서블릿을 사용해 본 적이 없지만 다른 사람이 문제를 해결하도록 도우려고 노력하고 있습니다.

JavaScript로 렌더링된 양식이 JSP에 다시 게시됩니다.이 양식의 일부 필드 크기는 100KB를 초과합니다.그러나 JSP 측에서 양식 필드를 검색할 때 필드 값이 100KB로 잘립니다.

이제 나는 Request.BinaryRead를 사용하여 해결할 수 있는 ASP Request.Form에 비슷한 문제가 있다는 것을 알고 있습니다.Java에도 이에 상응하는 것이 있습니까?

아니면 Websphere/Apache/IBM HTTP Server에 동일한 문제를 해결하는 설정이 있습니까?

도움이 되었습니까?

해결책 2

문제가 해결되었습니다.결과적으로 웹 서버 설정과 관련이 없으며 게시물에서 아무것도 잘리지 않았습니다.

게시 전 양식 필드는 JavaScript에 의해 102399바이트 크기의 청크로 분할되었으며 각 청크는 양식 필드에 값으로 추가되어 값 배열로 끝났습니다.Request.Form()은 이러한 값을 자동으로 연결하여 하나의 거대한 문자열을 재생하는 것처럼 보이지만 Java getParameter()는 그렇지 않습니다.그러나 getParameterValues()를 사용하고 반환된 값에서 문자열을 다시 작성하는 것은 트릭이었습니다.

다른 팁

ServletRequest API가 요구하는 기능을 제공하기 위해 Servlet 컨테이너에 의해 게시 된 요청은 메모리를 유지해야하므로 대부분의 서블릿 컨테이너는 DOS 공격을 방지하기 위해 구성 가능한 크기 제한을 가지고 있습니다. 메모리가 부족합니다.

WebSphere가 제대로 실패하는 대신 요청을 조용히 자르고 있다면 약간 이상하지만, 이것이 문제의 원인이라면 구성 옵션을 찾을 수 있습니다. 여기 WebSphere 문서에서.

당신이 사용할 수있는 getInputStream (원시 바이트) 또는 getReader (디코딩 된 문자 데이터) 요청에서 데이터를 읽습니다. 메모 이것이 어떻게 상호 작용하는지 매개 변수를 읽습니다. 서블릿을 사용하지 않으려면 필터 에게 포장하다 요청.

WebSphere는 데이터를 임의로 자연시키기보다는 요청을 거부 할 것으로 기대합니다. 나는 다른 곳에서 버그를 의심합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top