VRaptor 3 - Revista Java Magazine 96 - Parte 3
No terceiro artigo da série daremos sequência ao estudo sobre o VRaptor 3 durante o desenvolvimento de uma aplicação web. Veremos aqui como implementar o controle de acesso através do login e permissões e como melhorar a interação do usuário com o sistema, deixando-o mais dinâmico e seguro.
No terceiro artigo da série daremos sequência ao estudo sobre o VRaptor 3 durante o desenvolvimento de uma aplicação web. Veremos aqui como implementar o controle de acesso através do login e permissões e como melhorar a interação do usuário com o sistema, deixando-o mais dinâmico e seguro.
Em que situação o tema útil:
Este tema é útil a todo desenvolvedor interessado em ter mais uma excelente opção Java para desenvolvimento web em sua caixa de ferramentas.
Resumo DevMan:
Neste artigo vamos aprender como desenvolver a funcionalidade de envio e recebimento de arquivos entre o usuário e a aplicação. Também será mostrado como tornar a aplicação mais segura mantendo um controle de login e permissão a determinadas áreas do sistema.
Na segunda parte deste minicurso, vimos como deixar o sistema desacoplado utilizando interfaces e como reaproveitar funcionalidades com classes Genéricas. Além disso, aprendemos como é possível facilitar o desenvolvimento da parte visual do sistema utilizando templates e a biblioteca visual jQuery UI.
Qualquer sistema que preze por seus dados e pela integridade da informação necessita de um controle rígido de segurança. No entanto, é comum encontrarmos aplicações web que não possuem um bom controle de acesso ou que apresentam falhas que possibilitam o uso indevido por pessoas mal intencionadas. Diante deste fato surgiram diversos mecanismos de segurança, e com a evolução das tecnologias se torna cada vez mais fácil implementar este controle.
Este será um dos objetivos desta terceira parte da série: demonstrar como implementar um controle de acesso e permissão às ações do sistema. O controle será feito baseando-se no privilégio de cada um dos usuários, que por sua vez poderão ter mais ou menos direito de acesso às funcionalidades de acordo com suas tarefas dentro da organização. A partir disso, iremos possibilitar uma maior interação entre o usuário e a aplicação, deixando-o livre para enviar as capas dos filmes, fotos dos artistas e a do seu perfil, tudo com ajuda do VRaptor.
Como fazer download e upload de arquivos
O VRaptor, através de alguns componentes, facilita bastante a manipulação de arquivos em formato stream. Sem nenhum componente para nos auxiliar nesta tarefa, o trabalho fica um tanto quanto desgastante, e foi pensando nisso que estes componentes foram criados. Com eles não temos a necessidade de movimentar cada byte do arquivo, já que esta tarefa é feita automaticamente através de simples métodos. Assim, tirando proveito destes recursos, será criado um formulário para fazer o upload das capas dos filmes para o servidor, bem como a opção de apresentação destas imagens.
Fazendo upload da capa de um filme
Para iniciarmos a codificação da funcionalidade de upload de imagens, devemos adicionar na entidade Filme um atributo do tipo String (neste caso, imagem) que será responsável por manter o nome do arquivo. Em seguida é necessário criar um formulário com um campo de envio de arquivos, de acordo com a Listagem 1.
Listagem 1. exibir.jsp: formulário de envio da imagem do filme.
<form action="${pageContext.request.contextPath}/filme/${filme.id}/imagem"
enctype="multipart/form-data" method="post">
<input type="file" name="file"/>
<input type="submit" value="enviar"/>
</form>
Neste formulário, estamos fazendo um POST do arquivo escolhido incluindo o ID do filme na URI. Observe que o formulário deve estar configurado como enctype=“multipart/form-data” para suportar o envio de arquivos anexados, que em nosso caso será uma imagem. Após a configuração da view, devemos configurar o método que receberá esta imagem, como pode ser observado na Listagem 2.
Listagem 2. FilmeController.java: método que recebe a imagem do filme em formato stream.
@Post("/filme/{filme.id}/imagem")
public void uploadImage(UploadedFile file, Filme filme) {
try {
repository.uploadImage(file, filme);
} catch (Exception e) {
result.include("error", e.getMessage());
}
result.redirectTo(this).exibir(filme);
}"
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo