Olá pessoal, boa tarde.
Estou construindo um pequeno sistema para fazer upload de arquivos pdf’s e apresentar os mesmos. Construí um formulário de login que esta funcionando normalmente, autenticando os usuários de forma correta. No entanto, eu preciso salvar o nome de usuário digitado nesse formulário de login para poder fazer a exibição do arquivo pdf correto e estou com problemas justamente nisso. Já pesquisei em fóruns como salvar o nome de usuário na sessão mas até agora nada funcionou. Agradeço desde já a quem puder me ajudar.
Aqui esta meu formulário de login:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%-- <meta charset="ISO-8859-1"> --%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Login</title>
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<c:import url="cabecalho.jsp"/>
<h3>Autenticação de usuário</h3>
<form action="mvc?logica=AutenticacaoLogic" method="post">
<table>
<tr>
<th>Login</th>
<td><input name="login" type="text"/></td>
</tr>
<tr>
<th>Senha: </th>
<td><input name="senha" type="password"/></td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Entrar">
</td>
</tr>
</table>
</form>
<c:import url="rodape.jsp"/>
</body>
Aqui esta minha tela de busca do arquivo para exibir:
<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>
Envio de arquivo
<% String id = "1"; %>Ano 2019 2018 Documento Contracheque Informe
Aqui esta minha classe de autenticação:
package br.com.coren_ba.logica;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import br.com.coren_ba.conexao.*;
import br.com.coren_ba.modelo.Funcionario;
public class AutenticacaoLogic implements Logica{
@Override
public String executa (HttpServletRequest req, HttpServletResponse res) throws Exception {
// TODO Auto-generated method stub
res.setContentType("text/html");
String usuario = req.getParameter("login");
String senha = req.getParameter("senha");
Funcionario funcionario = new Funcionario();
funcionario.setUsuario(usuario);
Conexao_AD conecta = new Conexao_AD();
boolean conectado = conecta.conexao(usuario,senha);
if(conectado == true) {
QueryRH_AD pesquisarh = new QueryRH_AD();
if(pesquisarh.autentica(usuario, senha) == true) {
return "/WEB-INF/jsp/AutenticadoRH.jsp";
}else {
QueryTI_AD pesquisati = new QueryTI_AD();
if(pesquisati.autentica(usuario, senha) == true) {
return "/WEB-INF/jsp/AutenticadoTI.jsp";
}else {
return "/WEB-INF/jsp/Autenticado.jsp";
}
}
}else {
return "/WEB-INF/jsp/Invalido.jsp";
}
}
}
E aqui esta minha classe de exibição dos arquivos:
package br.com.coren_ba.servlet;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.coren_ba.modelo.Funcionario;
@WebServlet("/ApresentaServlet")
public class ApresentaServlet extends HttpServlet {
byte[] arquivo = null;
//File file = new File(“C:\teste.pdf”);
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String ano = request.getParameter(“ano”) ;
String mes = request.getParameter(“mes”);
String documento = request.getParameter(“documento”);
String path;
File file;
Funcionario funcionario = (Funcionario)request.getAttribute("funcionario");
String nome = funcionario.getUsuario();
System.out.println(nome);
if(documento.equals("Contracheque")) {
path = "C:\\Users\\matheus.souza\\Documents\\Aplicações\\Contracheques\\Arquivos\\Contracheques\\"+ ano +"\\" + mes + "\\";
file = new File (path);
} else {
path = "C:\\Users\\matheus.souza\\Documents\\Aplicações\\Contracheques\\Arquivos\\Informes\\"+ ano + "\\";
file = new File (path);
}
try {
arquivo = fileToByte(file);
} catch (Exception e) {
e.printStackTrace();
}
response.setContentType("application/pdf");
response.setContentLength(arquivo.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(arquivo, 0, arquivo.length);
ouputStream.flush();
ouputStream.close();
}
public static InputStream byteToInputStream(byte[] bytes) throws Exception {
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
return bais;
}
public static byte[] fileToByte(File imagem) throws Exception {
FileInputStream fis = new FileInputStream(imagem);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[8192];
int bytesRead = 0;
while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
baos.write(buffer, 0, bytesRead);
}
return baos.toByteArray();
}
}