Blog

서블릿 엑셀 다운로드

이러한 새로운 API를 통해 개발자의 삶을 더 쉽게 만들 수 있습니다! 이제 새로운 Servlet 3.0 API를 적용하여 파일 업로드 및 다운로드 기능을 빌드해 보겠습니다. 가져오기 org.apache.commons.fileupload.FileItem; 가져오기 org.apache.commons.fileupload.FileUpload예외; 가져오기 org.apache.commons.fileupload.diskFileItemFactory; 가져오기 org.apache.commons.fileupload.servletFileUpload; 경우(! ServletFileUpload.isMultipartContent(요청){{throw 새 서벌렛예외(“콘텐츠 유형은 다중 부분/양식 데이터가 아닙니다”); } ? 공개 무효 retornaArquivoExcel (HttpServletResponse 응답) ServletException, IOException { 시도 {response.setContentType(“응용 프로그램/vnd.ms-excel”); response.setHeader(“콘텐츠 처리”, “첨부 파일”; 파일 이름=샘플엑셀.xls”); HSSF워크북 통합 문서 = 만들기 엑셀(); 통합 문서.쓰기(응답.get출력 스트림()); } 캐치 (예외 전자) { 새 서버릴트 예외를 throw (“다운로드 엑셀 서볼렛의 예외”, e); } Servlet은 J2EE 서버에 존재하고 실행되는 Java 프로그램으로 HTTP 프로토콜 요청을 수신하고 처리하고 클라이언트에 대한 응답을 다시 보내는 데 사용됩니다. 서블릿은 패키지 javax.servlet 및 javax.servlet.http의 Java 표준 확장 클래스를 사용합니다. Servlets는 휴대용 Java 언어로 작성되고 표준 프레임워크를 따르므로 서버 및 운영 체제에서 독립적인 방식으로 정교한 서버 확장을 만들 수 있는 수단을 제공합니다. 서볼렛컨텍스트Listener 구현 코드는 아래와 같습니다. 필요:요청컨텍스트 발견:HttpServletRequest 이유:실제 인수 HttpServletRequest 메서드 호출 변환 java.io.FileNotFoundException에 의해 요청 컨텍스트로 변환할 수 없습니다. (파일 출력스트림.java:206) 에서 자바.io.FileOutputStream. (FileOutputStream.java:156) 에서 org.apache.commons.fileupload.diskFile.write(DiskFileItem.java:394) 에서 UploadDownloadFileServlet.doPost (UploadDownloadFileServlet.java:148) 자바x.servlet.http.httpServ let.service(HttpServlet.java:644) 에서 자바x.servlet.http.httpservlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(애플리케이션필터체인.java:301) org.apache.catalina.core.applicationFilterChain.doFilter(애플리케이션필터체인.자바:206) 내부도 필터(애플리케이션필터체인.자바:239)에서 org.apache.catalina.core.ApplicationFilterChain.doFilter(애플리케이션필터체인.java:206) at org.netbeans.modules.web.server.monitor.monitorFilter.doFilter(모니터필터.java:393) org.apache.catalina.core.applicationFilterChain.internalDoFilter (응용 프로그램 필터 체인.자바:239) 에서 org.apache.catalina.core에서 org.apache.catalina.core.StandardWrapper.invo.apache.catalina.invo.apache.catalina.invo. (StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(인증자.java:503) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136) at org.apache.catalina.valve.ErrorReportValve.invoke(오류리포트밸브.자바:74) invoke(추상액세스로그밸브.자바:610) at org.apache.catalina.invoke(StandardEngineValve.java:88) at org.apache.catalina.catalina.coyoteAdapter.service(코요테어댑터.java:516) org.apache.coyote.http11.abstractHttp11Processor.process(추상Http11Processor.java:1015) at org.apache.coyote.AbstractProtocol$추상연결처리기.프로세스(추상프로토콜.java:652) Http11ConnectionHandler.process(Http11NioProtocol.java:222) at org.apache.tomcat.util.net.net NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575) at org.apache.tomcat.net.net.net 소켓프로세서.런(). NioEndpoint.java:1533) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(스레드.745) 20:46:37.140 정보 [http-nio-8084-exec-406] org.apache.catalina.core.StandardContext.reload 다시로드 컨텍스트 이름으로 [/Upload] 20:46:38.650 정보 [http-nio-808-exec] org.apache.jasper.servlet.TldScanner.scanJars 적어도 하나의 JAR은 TLD에 대해 스캔되었지만 TLD가 포함되어 있지 않습니다.