Olá pessoal.
Sou novo em java, e não sei como pegar o arquivo do JSP (fazendo o UPLOAD) e passando pelo servlet, enviar para a classe que recebe e le o arquivo, fazendo insert na base. para vocês testarem, em casa, só tirar os inserts, e tirar o comentário do TESTE do System.out.println.
o insert ta funcionando, só que não sei como pegar o arquivo e jogar no FILE para ser lido no workbook.
jsp:
[code]<%@ page language=“java” contentType=“text/html; charset=utf-8”
pageEncoding=“utf-8”%>
[/code]
classe java:
import java.io.File;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import org.apache.catalina.util.RequestUtil;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.poi.hssf.record.RecordFactoryInputStream;
public class Upload {
private static Connection conn;
private static int i = 0;
private static String colunaA;
private static String colunaB;
private static String colunaC;
private static String colunaD;
private static String colunaE;
private static String colunaF;
private static String colunaG;
private static String colunaH;
private static String colunaI;
private static String colunaJ;
private static String colunaK;
public boolean anexos(HttpServletRequest request,
HttpServletResponse response) throws Exception {
// DÚVIDA AQUI... NÃO SEI FAZER PARA RECEBER O ARQUIVO DO UPLOAD, E CONVERTER PARA "FILE" DA API JEXCEL ABAIXO
if (ServletFileUpload.isMultipartContent(request)) {
ServletFileUpload servletFileUpload = new ServletFileUpload(
new DiskFileItemFactory());
/* AQUI NÃO CONSIGO RECEBER O ARQUIVO E CONVERTER PARA "FILE" PARA PODER FAZER OS INSERTS RECEBENDO NO WORKBOOK*/
File file = new File("Lista_TELECOM.xls");
if (AQUI VOU VALIDAR O NOME DO ARQUIVO) {
Workbook workbook = Workbook.getWorkbook(NÃO SEI COMO LER O ARQUIVO AQUI);
/* pega a primeira planilha dentro do arquivo XLS */
Sheet sheet = workbook.getSheet(0);
// Pega a quantidade de linhas da planilha
int linhas = sheet.getRows();
/* pega os valores das células como se numa matriz */
for (i = 1; i < linhas; i++) {
Cell celA = sheet.getCell(0, i);
Cell celB = sheet.getCell(1, i);
Cell celC = sheet.getCell(2, i);
Cell celD = sheet.getCell(3, i);
Cell celE = sheet.getCell(4, i);
Cell celF = sheet.getCell(5, i);
Cell celG = sheet.getCell(6, i);
Cell celH = sheet.getCell(7, i);
Cell celI = sheet.getCell(8, i);
Cell celJ = sheet.getCell(9, i);
Cell celK = sheet.getCell(10, i);
/* pega os conteúdos das células */
colunaA = celA.getContents();
colunaB = celB.getContents();
colunaC = celC.getContents();
colunaD = celD.getContents();
colunaE = celE.getContents();
colunaF = celF.getContents();
colunaG = celG.getContents();
colunaH = celH.getContents();
colunaI = celI.getContents();
colunaJ = celJ.getContents();
colunaK = celK.getContents();
/*
* // TESTE para Imprimir Valores
* System.out.println(colunaA); System.out.println(colunaB);
* System.out.println(colunaC); System.out.println(colunaD);
* System.out.println(colunaE); System.out.println(colunaF);
* System.out.println(colunaG); System.out.println(colunaH);
* System.out.println(colunaI); System.out.println(colunaJ);
* System.out.println(colunaK);
*/
/*
* Executa o insert para inserir os dados no banco de testes
* Postgres
*/
PreparedStatement ps = conn
.prepareStatement("INSERT INTO Cad_Cards(car,linha,apn_utz,conta,operadora,plano,sts_simcard,data_atv,id,sts_linha,imsi)"
+ "VALUES(?,?,?,?,?,?,?,?,?,?,?)");
ps.setString(1, colunaA);
ps.setString(2, colunaB);
ps.setString(3, colunaC);
ps.setString(4, colunaD);
ps.setString(5, colunaE);
ps.setString(6, colunaF);
ps.setString(7, colunaG);
ps.setString(8, colunaH);
ps.setString(9, colunaI);
ps.setString(10, colunaJ);
ps.setString(11, colunaK);
ps.executeUpdate();
ps.close();
}
workbook.close();
conn.close();
} else {
System.out.println("Nome de arquivo inválido");
return false;
}
}
return true;
}
}
eu não sei fazer com que o arquivo enviado pelo jsp