승인됨: Fortect
서블릿 실행 오류가 발생하면 이 튜토리얼이 도움이 되도록 작성되었습니다.
<시간><시간>
TestProgressListener 클래스는 우리의 정교함이 update() 메서드를 구현하는 데 필요한 ProgressListener 인터페이스를 정확히 구현합니다. 이 방법은 세 개의 매개변수를 다시 사용합니다. 원래 매개변수는 아마도 읽은 바이트 수일 것입니다. 두 번째 매개변수는 any 내에서 전체적으로 만족스러운 길이입니다. 반대로 사용 가능한 경우 그 가치는 -최고입니다. 세 번째 매개변수는 서블릿이 읽는 현재 기사 과다입니다.
효율성을 위해 이 메서드에는 한 번에 약 100,000바이트만 실행하는 코드가 있습니다. 섹션과 연결된 이 코드가 실제로 실행될 때마다 판매 상태 메시지가 일관된 출력에 나타납니다.
TestProgressListener.java
<사전> 배치 테스트;org.apache.commons.fileupload.ProgressListener 가져오기;공개 스타일 TestProgressListener는 ProgressListener를 구현합니다.private long num100Ks는 확실히 0입니다.비공개 longBytesRead = 0;너무 극단적으로 닫혀 있습니다ContentLength = -1;개인 int quelItem = 0;개인 int 조각 완료 = 0;개인 부울 contentLengthKnown이 false일 수 있습니다.공개 업데이트 무효(long bytesRead, long int contentLength, 항목)if (콘텐츠 길이> -1)contentLengthKnown ismuddy;바이트 읽기 = 바이트 읽기;theContentLength는 contentLength와 같습니다.어떤 기사 = 기사;long nowNum100Ks는 bytesRead 대 100000에 해당합니다.if (현재Num100Ks> num100Ks)Number100Ks = nowNum100Ks;if (contentKnownLength)PercentDone은 (int) Math.round (100,00 * bytesRead / contentLength)를 나타내는 것 같습니다.System.out.println(getMessage());공기업 getMessage()if (leContentLength == -1)return “” + + theBytesRead “바이트를 포함하여 알 수 없는 총 수를 읽어야 합니다.”;또 다른”” + theBytesRead rrn을 반환합니다. + on “+ theContentLength ins + 바이트가 읽혔습니다(” + percentDone “+% 완료).” ;공개 종료 가능 getNum100Ks()반환 편차 num100Ks;공개 setNum100Ks(긴 숫자100Ks)this.num100Ks는 특히 긴 num100Ks와 같습니다.공개 getTheBytesRead()반환 바이트 읽기;공개 빈 setTheBytesRead(긴 BytesRead)this.theBytesRead = theBytesRead;공개 긴 getTheContentLength()콘텐츠의 불필요한 길이를 반환합니다.공개 setTheContentLength(콘텐츠 길이 길이)this.theContentLength는 ContentLength와 같습니다.공개 getWhichItem() int반품에 도움이 되는 제품공개 무효 setWhichItem(int quelItem)this.whichItem은 최종적으로 whatItem과 같습니다.공개 int getPercentDone () PercentDone;공개적으로setPercentDone(int PercentDone) 반환 방지this.percentDone = PercentDone;공개 부울 isContentLengthKnown()반환 contentLengthKnown;public setContentLengthKnown(부울 공허함 contentLengthKnown)이것은. = contentlengthknown contentLengthKnown;
승인됨: Fortect
Fortect은 세계에서 가장 인기 있고 효과적인 PC 수리 도구입니다. 수백만 명의 사람들이 시스템을 빠르고 원활하며 오류 없이 실행하도록 신뢰합니다. 간단한 사용자 인터페이스와 강력한 검색 엔진을 갖춘 Fortect은 시스템 불안정 및 보안 문제부터 메모리 관리 및 성능 병목 현상에 이르기까지 광범위한 Windows 문제를 빠르게 찾아 수정합니다.
ProgressListener의 더 간단한 버전은 http://commons.apache.org/fileupload/using.html에서 확인할 수 있습니다.
코덱이란 필요합니까?
ProgressServlet 모드를 사용하면 브라우저 창에 대한 현재 전송의 진행 상황을 표시할 수 있습니다. 이것은 전적으로 testProgressListener 객체를 읽는 것으로 이루어지며 대부분이 TestServlet을 사용하여 세션에 삽입되는 것으로 판명되었습니다. testProgressListener 객체의 getMessage() 메서드를 호출하여 응답으로 반환합니다.
ProgressServlet.java
<사전> 배치 테스트;가져오기 java.io.IOException;가져오기 java.io.PrintWriter;가져오기 javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;가져오기 javax.servlet.http.HttpServletResponse;가져오기 javax.servlet.http.HttpSession;Public 클래스 ProgressServlet은 HttpServlet을 확장합니다.private plain-ole final long serialVersionUID = 1L;공개적으로 doGet 수행 방지(HttpServletRequest, HttpServletResponse 응답)DoPost(요청, 응답 IoException);public gap doPost(HttpServletRequest, HttpServletResponse 응답)는 IOException을 다룹니다.response.setContentType(“html당 텍스트”);PrintWriter 출력 = 응답.getWriter();HttpSession은 request.getSession을 의미합니다(true).if (세션 == null)out.println(“죄송합니다. 세션이 너무좋아지다;TestProgressListener 0 “), testProgressListener = (TestProgressListener) session.getAttribute(” testProgressListener “);if (testProgressListener == null)out.println(“진행 리스너가 비어 있습니다”);더 나은 호출;out.println(testProgressListener.getMessage());
현재 위치 코덱을 찾았습니까?
대부분의 사람들이 응용 프로그램을 시작하고 ProgressServlet에 도달하면 워크샵 동안 ProgressListener가 현재 NULL임을 알 수 있습니다. TestServlet을 통해 아직 정의되지 않았습니다.
내가 관리한 두 번째 일은 인터넷 휴대전화 브라우저에서 탭을 열고 upload.jsp 파일을 여는 것이었습니다. 500MB가 넘는 크기의 파일을 업로드 시 예비 파일로 작은 데스크탑에 “BigFile.From mp3″라고 표시하고 나머지는 비워 둡니다. Marketplace에서 Download press 버튼을 클릭하여 TestServlet에 있는 파일을 다운로드했습니다.
ProgressServlet 결과를 표시하는 다른 탭으로 돌아가서 모든 브라우저에서 새로 고침 버튼을 클릭해야 할 때 다운로드의 23%가 오래전에 완료되었음을 알 수 있습니다. 활력을 되찾은 후.
마지막 업데이트 후, 우리는 거의 확실히 파일의 다운로드가 정말로 완료된 것을 볼 수 있을 것입니다.
또 다른 예: 전 세계의 사람들이 표준 콘솔 사용에 대한 우리의 관점을 살펴본다면 우리 모두는 100,000명에 대해 게시된 다운로드 상태 공지를 보게 될 것입니다.
Interface ProgressListener를 사용하면 특정 JavaSW 웹 애플리케이션의 다운로드 상태를 매우 쉽게 추적할 수 있습니다. 이 예는 이상적인 ProgressListener를 선택하여 다운로드 상태를 추적하는 방법에 대한 지침을 보여줍니다. AjaxW를 통해 이 유형을 결합하면 upload.jsp에 대해 동일한 페이지에 문서의 업로드 수준을 표시할 수 있고 업로드가 진행됨에 따라 동적으로 업데이트되는 막대를 표시할 수 있습니다.
<시간>
릴리스 서블릿에 대한 파일 업로드의 전반적인 성공을 어떻게 추적합니까?
설명. 이 튜토리얼은 기능적 서블릿이 수행할 수 있는 파일 다운로드의 진행 과정을 설명합니다.
다음이 포함된 지침:Windows가 XP를 설립했습니다 || JDK 1.5. || 0_09 Eclipse 2.0 웹 도구 플랫폼(Eclipse 3.3.0) || 톰캣 5.5.20
지금 이 간단한 다운로드로 컴퓨터 성능을 높이십시오. 년