Fórum Resultado de pesquisa em arquivo txt #531204
09/09/2015
0
Li muitas coisas e comecei a fazer uma pagina em jsp e na verdade o que eu queira
que quando eu na pagina quando eu fisesse uma pesquisa no meu banco postgreSQL ele retornasse somente o resultado em um arquivo txt e possivel?
Segue um exemplo este select traz a data e hora do sistema nao quero que ele mostre na pagina quero que ele gere um arquivo txt , o que mais eu preciso fazer para gerar este bendito arquivo ... rs
obrigado
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%
Class.forName( "org.postgresql.Driver" );
Connection cn = DriverManager.getConnection( "jdbc:postgresql://10.0.0.10:5432/tecnet", "postgres", "teste" );
cn.setAutoCommit( true );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery( "SELECT now() AS dtatual" );
while( rs.next() )
{
out.println( "Agora = " + rs.getString( "dtatual" ) );
}
rs.close();
st.close();
cn.close();
%>
Fabiana
Curtir tópico
+ 0Post mais votado
09/09/2015
No caso usando JSP você só vai conseguir gerar um .txt em uma pasta do servidor, não é possível gerar na máquina cliente.
PrintWriter out = new PrintWriter( new FileWriter(getServletContext().getRealPath("sua_pasta") + "/arquivo.txt"));
out.println("--->Aqui vai o conteúdo<---");
out.close();
getReaPath informa qual o caminho completo para se chegar no diretório "sua_pasta"
Jothaz
Gostei + 1
Mais Posts
09/09/2015
Fabiana
Agradeço pela resposta, e qual parte do meu código eu coloco estas linhas
Ja sou grata pela ajuda dada
obrigada bjs
Gostei + 0
10/09/2015
Jothaz
Exemplo 01:
<%
Date dataAtual = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String dataStr = "Agora = " + sdf.format(dataAtual);
PrintWriter out = new PrintWriter( new FileWriter(getServletContext().getRealPath("pasta_destino_txt") + "/arquivo.txt"));
out.println(dataStr);
out.close();
%>
Exemplo 02:
<%
Class.forName( "org.postgresql.Driver" );
Connection cn = DriverManager.getConnection( "jdbc:postgresql://10.0.0.10:5432/tecnet", "postgres", "teste" );
cn.setAutoCommit( true );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery( "SELECT now() AS dtatual" );
rs.next()
string resultado = "Agora = " + rs.getString(1);
rs.close();
st.close();
cn.close();
PrintWriter out = new PrintWriter( new FileWriter(getServletContext().getRealPath("pasta_destino_txt") + "/arquivo.txt"));
out.println(resultado);
out.close();
%>
Usando seu código original:
<%
Class.forName( "org.postgresql.Driver" );
Connection cn = DriverManager.getConnection( "jdbc:postgresql://10.0.0.10:5432/tecnet", "postgres", "teste" );
cn.setAutoCommit( true );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery( "SELECT now() AS dtatual" );
string resultado = "";
while( rs.next() )
{
resultado = "Agora = " + rs.getString( "dtatual" );
}
rs.close();
st.close();
cn.close();
PrintWriter out = new PrintWriter( new FileWriter(getServletContext().getRealPath("pasta_destino_txt") + "/arquivo.txt"));
out.println(resultado);
out.close();
%>
Em todos os casos você terá de criar um pasta como o nome "pasta_destino_txt" (ou qualquer outro nome e claro mudar no código) onde será gravado o arquivo "arquivo.txt" ().
Não testei os códgios então podem ocorrer erros, mas acredito que já ajude a dar uma ideia de como proceder.
Gostei + 0
10/09/2015
Fabiana
Desculpe, como disse sou nova rsrs nisto rs. e isto e uma licao mais nao sei oq esta acontecendo
segue erro
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 29 in the jsp file: /fabiana.jsp
String literal is not properly closed by a double-quote
26: cn.close();
27:
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().getRealPath("c:\") + "/arquivo.txt"));
30: out.println("resultado");
31: out.close();
32:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:570)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.20 logs.
Gostei + 0
10/09/2015
Jothaz
Troque a linha:
PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
Com este novo comando vai ser criado um .txt na raiz da pasta, nem precisa criar uma pasta especifica.
Gostei + 0
10/09/2015
Fabiana
Class.forName( "org.postgresql.Driver" );
Connection cn = DriverManager.getConnection( "jdbc:postgresql://10.0.0.10:5432/teste", "postgres", "teste" );
cn.setAutoCommit( true );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery("select now() AS dtatual ");
while (rs.next())
{
out.println("dtatual ");
out.println(rs.getString("dtatual"));
}
rs.close();
st.close();
cn.close();
PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
out.println(resultado);
out.close();
Porem ainda continua dando estes erros
Segue
type Exception report
message Unable to compile class for JSP:
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 29 in the jsp file: /fabiana.jsp
PrintWriter cannot be resolved to a type
26: st.close();
27: cn.close();
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
30:
31: out.println(resultado);
32: out.close();
An error occurred at line: 29 in the jsp file: /fabiana.jsp
Duplicate local variable out
26: st.close();
27: cn.close();
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
30:
31: out.println(resultado);
32: out.close();
An error occurred at line: 29 in the jsp file: /fabiana.jsp
PrintWriter cannot be resolved to a type
26: st.close();
27: cn.close();
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
30:
31: out.println(resultado);
32: out.close();
An error occurred at line: 29 in the jsp file: /fabiana.jsp
FileWriter cannot be resolved to a type
26: st.close();
27: cn.close();
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
30:
31: out.println(resultado);
32: out.close();
An error occurred at line: 29 in the jsp file: /fabiana.jsp
application cannot be resolved or is not a field
26: st.close();
27: cn.close();
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
30:
31: out.println(resultado);
32: out.close();
An error occurred at line: 31 in the jsp file: /fabiana.jsp
resultado cannot be resolved to a variable
28:
29: PrintWriter out = new PrintWriter( new FileWriter(getServletContext().application.getRealPath("/arquivo.txt")));
30:
31: out.println(resultado);
32: out.close();
33:
34:
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:570)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.20 logs.
Gostei + 0
10/09/2015
Jothaz
Tenta assim:
<%@ page import="java.io.*"
Class.forName( "org.postgresql.Driver" );
Connection cn = DriverManager.getConnection( "jdbc:postgresql://10.0.0.10:5432/teste", "postgres", "teste" );
cn.setAutoCommit( true );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery("select now() AS dtatual ");
string resultado = "";
while( rs.next() )
{
resultado = rs.getString( "dtatual" );
}
rs.close();
st.close();
cn.close();
String dir = getServletContext().getRealPath("/");
String arquivo = dir + "/arquivo.txt";
File file = new File(arquivo);
Writer writer = new BufferedWriter(new FileWriter(file));
writer.write(resultado);
writer.flush();
writer.close();
%>
Gostei + 0
10/09/2015
Fabiana
Prometo nao incomoda-lo mais .
Este Try eu coloco em que parte do codigo?
Gostei + 0
10/09/2015
Jothaz
Tente com o novo conteúdo que postei.
Gostei + 0
10/09/2015
Fabiana
Queria primeiramente agradecer do fundo do meu coração pela paciência que vc tem tido comigo. Sei que nao tenho muito em que lhe ajudar mais se precisar de mim pode pedir ;
So queria dizer que ainda continua com erro mais vou ver aqui oq eu faco pois nao quero mais importunar vc
bjs e obrigada
Gostei + 0
10/09/2015
Jothaz
Não é incomodo nenhum, num fórum quando alguém se dispõe a ajudar é para solucionar o problema e não é motivo para se sentir importunado.
Post o erro que esta ocorrendo, assim eu ou outra pessoa poderemos ajudá-la.
Gostei + 0
10/09/2015
Fabiana
type Exception report
message Unable to compile class for JSP:
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 17 in the jsp file: /outro.jsp
string cannot be resolved to a type
14: Statement st = cn.createStatement();
15: ResultSet rs = st.executeQuery("select now() AS dtatual ");
16:
17: string resultado = "";
18:
19: while( rs.next() )
20: {
Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:361)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:570)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.20 logs.
Segue codigo
<%@ page import="java.io.*" %>
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.text.*" %>
<%
Class.forName( "org.postgresql.Driver" );
Connection cn = DriverManager.getConnection( "jdbc:postgresql://10.10.0.10:5432/teste", "postgres", "teste" );
cn.setAutoCommit( true );
Statement st = cn.createStatement();
ResultSet rs = st.executeQuery("select now() AS dtatual ");
string resultado = "";
while( rs.next() )
{
resultado = rs.getString( "dtatual" );
}
rs.close();
st.close();
cn.close();
String dir = getServletContext().getRealPath("/");
String arquivo = dir + "/arquivo.txt";
File file = new File(arquivo);
Writer writer = new BufferedWriter(new FileWriter(file));
writer.write(resultado);
writer.flush();
writer.close();
%> Gostei + 0
10/09/2015
Jothaz
String resultado = null;
Gostei + 0
10/09/2015
Fabiana
o arquivo foi salvo.
O ultimo favor.....
O arquivo salvou na pagina onde encontra-se o projeto , seria possível quando eu salvasse ele fosse salve na maquina onde browser esta aberto. e que eu pudesse salvar com nome que eu quisesse;
obrigado
Gostei + 0
11/09/2015
Jothaz
Você pode gravar cookies, mas ai o processo é outro é a única forma que conheço.
O que você pode fazer é gravar no server e fazer o download para a máquina do cliente.
Para alterar o nome é só alterar nesta linha:
String arquivo = dir + "/arquivo.txt";
Altere "/arquivo.txt" pelo nome que você quer, mas mantenha a "/".
Seria possível descrever o que você quer?
Qual o objetivo a ser alcançado?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)