criar um programa em Java que gerência as tarefas o programa tem que te permitir so usuário adicionar listar marcar e como concluir as tarefas a serem armazenado em um lista
Caro professor, primeiramente, parabéns pela excelente aula!! Não é comum encontrar material com tamanha qualidade! Caso o senhor tenha um tempo, eu gostaria de fazer uma pergunta: Como faço para vitar que os usuários (não autenticados) "colem" a url da página que quero proteger diretamente na barra de endereços? E neste caso, redirecioná-los para a tela de logi?! De qualquer forma, muito obrigado!
11 месяцев назад
A melhor maneira de resolver esse problema é criando uma camada na frente de todas as requisições. No caso do Java Web, essa camada é chamada de Filter. O filter é um pedaço de código que é executado antes de tudo. Nesse Filter, você vai precisar verificar se o usuário pode acessar a página da URL. De maneira resumida: 1. Você vai ter um ArrayList contendo todas as URLs protegidas 2. No Filter, você vai pegar a URL atual que o usuário está acessando 3. Vai verificar se essa URL é uma URL protegida (ou seja, verificar se a URL é igual a alguma URL do ArrayList de todas as URLs protegidas) 4. Se for uma URL protegida, vai verificar se o usuário está autenticado (tem uma sessão aberta) 5. Caso o usuário não esteja autenticado, retornar para página de login. Caso esteja, você pode fazer outras validações, se necessário. Por exemplo: pode ser que o usuário esteja autenticado, mas ele não é admin. Então precisa validar se ele pode acessar aquela página. Bons estudos!
Fala Igor muito bom dia! Cara, meu ta dando um erro bizarro. HTTP Status 500 - Internal Server Error Type Exception Report Message For input string: "on" Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception java.lang.NumberFormatException: For input string: "on" java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) java.base/java.lang.Integer.parseInt(Integer.java:668) java.base/java.lang.Integer.parseInt(Integer.java:786) servlet.FinalizarTarefaServlet.doPost(FinalizarTarefaServlet.java:62) javax.servlet.http.HttpServlet.service(HttpServlet.java:681) javax.servlet.http.HttpServlet.service(HttpServlet.java:764) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Note The full stack trace of the root cause is available in the server logs. Eu já olhei e olhei milhão de vezes, alterei a lógica do for, mas não to achando esse erro, o que eu errei??
Fala Igor bão? Cara um adúvida por que usar Servlets? Já não é possível usar apenas JSP? Colocar todos os métodos dentro da JSP e matar o Servlet? E redirecionar as páginas pelo form = "action"; É apenas uma dúvida que pode ser besta. Um abraço! E continue com essa didática impecável! Valeuuu!
Год назад
Pode usar Jsp direto sim. Obs.: Lembrando, todo JSP é "transformado" em um servlet por baixo dos panos. Explicação de por que vale a pena separar em Jsp e servlets: Servlets são usados para separar mais o código. A lógica e regras de negócio são implementadas no servlet, enquanto a estrutura visual (HTML + dados) é construída no JSP. Se usar apenas JSP, o arquivo vai ficar com lógica e regra de negócio misturadas com estrutura visual. Não existe certo ou errado. Dependendo do projeto, fazer usando só JSP tem suas vantagens. Mas para projetos médios e grandes, vale a pena demais separar as duas coisas. É complicado explicar as vantagens e desvantagens na teoria. É preciso sentir na pele as dificuldades para poder entender vantagens/desvantagens. Por isso eu sempre digo que vale a pena estudar JSP e servlets. Você sente na pele como eram os primórdios do Java web e entende melhor porque existem frameworks como spring hoje em dia.
dependendo do tamanho do projeto é má pratica misturar rergra de negócio com estrutura visual, pensa na bagunça que seria fazer uma manutenção em um sistema onde a logica esteja misturada com estrutura html
Fala Igor! Estava fazendo o código e seguindo a sua aula, porém me deu um erro grotesco do SQL, quando eu fui inserir uma tarefa, opção 4, java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`lista_tarefas`.`tarefa`, CONSTRAINT `tarefa_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuario` (`id`)) Pelo o meu conhecimento pifio de BD, ele não está encontrando a FK é isso? Mas eu fiz igualzinho o teu prompt do MySQL.
Год назад
Fala, João. Verifique se o usuário existe na tabela de usuário e se o id dele tá igual na tabela de usuário e tarefa. Outra coisa, verifique se você conectou no banco 'lista_tarefas' com o comando "use lista_tarefas". Abraço!
@ Então quando ta criando a tarefa ele não tá amarrando com o id_usuario, o que eu to entendendo ela não encontra o id da tabela usuario, eu conferi ta tudo certo, fiz todo o comando de chave estrangeira igual o seu :( EDIÇÃO 1: FOI ACHADO O ERRO IGOR, burrice do estudante, depois de dois dias, hoje eu mandei mensagem requisitando ajuda sua, e tomei vergonha e fui procurar, solução, erro de digitação em getId para getIdUsuario. Muito obrigado e forte abraço!!!
Igor, eu estou apreciando a sua aula, e sem palavras, que didática amigo, uma didática IMPECÁVEL!! Parabéns pela didática, apenas essa didática para ensinar o que é MVC, depois de 24 aulas/vídeos, com uma calma e paciência e novamente uma DIDÁTICA DE INVEJAR QUALQUER UM! Tu é foda e estou no aguardo da playlist Spring! É nóis :)
Год назад
Obrigado pelo carinho, João. Mini-spoiler: já estou preparando o setup para novos vídeos. Stay tuned e um grande abraço.
Fala Igor, primeiramento, conteúdo EXCELENTE, boa didática, incrível explicação e paciência, POR FAVOR FAÇA MAIS VÍDEOS, Uma pergunta o que você acha mais recomendável para quem está começando à estudar JAVA WEB e quer entrar para o mercado de trabalho, sou estudante de EngSoft e quero uma vaga, estou estudando já tem 4 anos, porém ta foda. Servlet puro ou Spring, qual a melhor forma de implantar um sistema web Java? Vale a pena aprofundar o conhecimento em Servlets ou deve-se partir logo para o aprendizado do framework Spring? Óbvio que tem seus prós que é estudar o Javão, porém eu vejo vários vídeo aulas, vários cursos e fica meio confuso, pois cada um usa uma coisa diferemte, uma tecnologia, um banco, tipo de framework, conexão diferentes, então qual seria o teu conselho? Um abraço, de um cara aleatório que ficou muito seu fã e quer mais vídeo, por favor faz mais.
Год назад
Fala, João, obrigado pelo carinho. Esse tipo de comentário me incentiva a voltar a gravar o mais rápido possível. Pode ter certeza que irei voltar. Respondendo a sua pergunta de forma direta: spring te abre muito mais portas no mercado de trabalho, principalmente no regime CLT. Eu focaria em ficar bom no spring (que é minha especialidade, inclusive). Porém, uma dica valiosa que eu te dou é realmente entender como o spring funciona. E, pra isso, estudar servlets/Java web puro ajuda demais. Digo isso porque o spring facilita e "esconde" muita coisa que acontece debaixo dos panos. Se você conseguir conciliar 70% do seu tempo pra estudar spring e 30% pra estudar os fundamentos dos protocolos TCP/IP e HTTP, aí sim você vai se tornar o profissional que quer e será muito bem remunerado por isso. Digo por experiência própria. Bons estudos!
@ muito obrigado pela resposta Igor, por favor volte, seus vídeos são incríveis, a próxima playlist pode ser de Spring. Muito obrigado pelo conselho irei colocar em praticar e maratonar os vídeos novamente!
Prof. faz uma série de um projeto de Dashboard do início ao fim com Java, gráficos, export… mas que seja pago, eu serei o primeiro aluno! De fato a sua didática é muito boa e eu maratonei os seus vídeos de Java e você conseguiu esclarecer muitas dúvidas que eu tinha. 😊
Excelente didática Professor. O código para estudo está no seu Git?
Год назад
Infelizmente, não coloquei o código no git. O canal está com planejamento de voltar com tudo e será mais organizado para facilitar o aprendizado. Obrigado pelo comentário e bons estudos.
Camarada! Você está de parabéns pelos vídeos. A sua didática é muito boa e você explica nos mínimos detalhes, o que é muito difícil encontrar na internet. Estou maratonando todos os vídeos do seu canal.
Em vez de usar uma Collection não seria mais simples usar de inicio o List<T>?
Год назад
Opa, Felipe. Isso mesmo, seria mais simples sim. A Collection foi usada mais por motivos didáticos, para demonstrar a usabilidade do List e ficar claro que existem outras implementações de Collection. Bons estudos e forte abraço.
Ótimo vídeo. Mas uma pergunta..... seria possível fazer um método chamado "Calculo" que recebe operadores externos (+, -, *, /)? pensando na coesão...
Год назад
Anderson, totalmente possível. Isso vai depender do nível de flexibilidade que você quer dar para seu programa. No final, os resultados serão os mesmos, apenas a implementação será diferente. Isso é muito normal (implementações diferentes para o mesmo objetivo). Contudo, vale ressaltar que você terá apenas um único método com muita responsabilidade. Ou seja, você está centralizando todo o seu código num único ponto central. As boas práticas de arquitetura de software direcionam para separar os métodos nas menores unidades possíveis que eles possam ser (desde que resolvam o problema que se propõem a resolver). Nesse caso, entendo que o mais interessante seja separar cada operação em métodos diferentes. Algumas vantagens em separar: 1. Menos complexidade. Estamos falando aqui de uma simples calculadora. Mas, imagine se você quiser fazer um "upgrade" na sua calculadora e implementar novas operações, tais como raiz, logaritmo, exponencial, cálculos binários/hexadecimais, etc. Manter toda essa lógica em um único ponto vai tornar seu código muito mais difícil de dar manutenção. Ao separar, você criar vários "pontos de lógica" diferentes, separados. Cada ponto tem sua própria funcionalidade e, portanto, fica mais fácil de resolver cada uma delas em separado. 2. Mais facilidade ao testar seu programa. Você consegue testar exatamente se o método "soma" está funcionando tal como deveria. Você consegue testar de forma separada cada operação que existe hoje no seu programa e, também, cada uma das operações que vierem a existir no futuro. 3. Caso você queira expor seu programa na internet, você consegue separar em microserviços. Mas, novamente, depende sempre do seu objetivo ao desenvolver o código. Com certeza, passar a operação por parâmetro tem suas vantagens também. Uma delas é a flexibilidade, reusabilidade e todas as vantagens de ter um código bem genérico (ao invés de um código específico). Finalizo enfatizando que um excelente desenvolvedor precisa ser capaz de avaliar os trade-offs das suas soluções e saber, de forma independente e razoável, tomar uma decisão. E, caso a decisão se mostre não tão boa, ter a humildade para voltar atrás e mudar de solução, ou, ao menos, trabalhar em uma otimização. Grande abraço e bons estudos.
olá, gostaria de saber se a séria vai continuar :D?
Год назад
Oi, Esther. Essa série foi gravada para servir como material de apoio de um curso presencial. O restante do conteúdo foi passado em aula, e, infelizmente, não foi gravado. Mas o canal tem planos para fazer novas séries em breve. Bons estudos!
Ótimo vídeo, mais um inscrito. Tenho uma pergunta: teria como eu adicionar um som na hora de abrir o programa?
Год назад
Tem como adicionar, sim. Você pode jogar no Google "how to play sound in Java" e abrir o link do stack overflow. Tem alguns exemplos de código lá. Bons estudos.
como posso fazer esse jogo de quiz?= SOCKET - servidor e cliente ??
Год назад
Segue o passo a passo que eu recomendo: 1. Usar um framework como o spring-boot ou micronaut. Isso elimina toda a complexidade de desenvolver a estrutura cliente-servidor, sockets e etc. 2. Utilizar a arquitetura REST para a comunicação entre cliente e servidor Caso você esteja fazendo algum trabalho de faculdade (ou estudando e praticando programação) e seu objetivo é realmente desenvolver a estrutura cliente-servidor com sockets e tudo mais, o que eu recomendo é estudar as classes Socket, a biblioteca java.net e o protocolo http. Vejo que o importante é você entender que mexer com sockets é algo voltado apenas para estudo. Ajuda bastante entender esses conceitos, mas é apenas com objetivos didáticos.
@ te mandei em seu e-mail, se puder dar essa força eu vou agradecer de coração, pode até usar como conteúdo para seu canal, creio que ajudara outras pessoas no futuro
Excelente vídeo, mas não consegui, quando vou listar usuários todos aprecem com null, pois, não entendi o por quê.
Год назад
Oi, Paulo. Se quiser, pode enviar o seu código ou um print para o e-mail igor@cerebrobinario.com e, assim que der, retorno com uma resposta. Bons estudos.
To tendo problema para excluir usuários de um sistema já rodando tanto no BDS MYSQL e POSTGRESQL?
Год назад
Verifique se existem dados associados aos registros que você está tentando deletar. Caso o registro seja "pai" de outros registros, o banco de dados pode bloquear devido às contraints de chave estrangeira.