Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

blacktrindade

Mvc

Recommended Posts

Bom dia pessoal, estou cursando Sistemas e aprendendo Java, tenho que desenvolver um exercício no qual o usuário faz o login, e depois de autenticado ele exibe a mensagem que o usuário foi validado ou não e depois disto preciso exibir uma tela onde o usuário vai digitar 1 para Médico e 2 para Paciente.

 

Preciso desenvolver isto no padrão MVC(Model, View e Controller) no entanto até o momento só fiz a parte do login no final eu tenho a mensagem se o usuário foi validado ou não.. agora não faço a minima idéia depois disso como vou fazer para que depois que o usuário digitar '1' ou '2' apareça uma tela do usuário?

 

 

 

Código desenvolvido até o momento

 

UsuárioController:

package com.controller;

import com.model.Usuario;

public class UsuarioController extends BaseController{
	
	private Usuario usuario;

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	
	public void validate() throws Exception
	{
		try
		{
			if (usuario.getLogin() == null ||
				usuario.getLogin().equals(""))
				throw new Exception("Campo login é obrigatorio.");
			
			if (usuario.getSenha() == null ||
				usuario.getSenha().equals(""))
					throw new Exception("Campo senha é obrigatorio.");
			
			if (usuario.getLogin().equals("inesc") == false ||
				usuario.getSenha().equals("123") == false)
					throw new Exception("Dados invalidos.");
		}		
		finally
		{
			usuario = null;
		}
	}
}

UsuárioView:

package com.view;

import java.util.Scanner;

import com.controller.UsuarioController;
import com.model.Usuario;

public class UsuarioView extends BaseView {

	private Usuario usuario;
	private UsuarioController usuarioController;
	
	public Usuario getUsuario() {
		return usuario;
	}
	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
	public UsuarioController getUsuarioController() {
		return usuarioController;
	}
	public void setUsuarioController(UsuarioController usuarioController) {
		this.usuarioController = usuarioController;
	}	
	
	public UsuarioView()
	{
		usuario = new Usuario();
		usuarioController = new UsuarioController();
	}
	
	public void ExibirConteudo()
	{
		try
		{
			Scanner scan = new Scanner(System.in);
			
			System.out.println("Digite o login");			
			usuario.setLogin(scan.nextLine());
			
			System.out.println("Digite a Senha");			
			usuario.setSenha(scan.nextLine());
			
			usuarioController.setUsuario(usuario);
			
			usuarioController.validate();
			
			System.out.println("Usuario autenticado com sucesso.");
		}
		catch(Exception ex)
		{
			System.out.println(ex.getMessage());
		}
	}
}

Usuário:

package com.model;

public class Usuario extends BaseModel{

	private String login;
	private String senha;
	
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getSenha() {
		return senha;
	}
	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	
	
}

e a Main:

package com.main;

import com.view.UsuarioView;

public class Main {
	public static void main(String[] args) {
		UsuarioView view = new UsuarioView();
		view.ExibirConteudo();
	}

}

depois da mensagem preciso que o usuário digite 1 ou 2, após isto dependendo da opção que o usuário digitar preciso tipo enviar mensagem para o usuário falando que ele está nesta área que ele pode voltar para o login.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não conseguir editar meu tópico.

 

Criei a parte da tela:

 

TelaController:

package com.controller;

import com.model.Tela;

public class TelaController extends BaseController {
	private Tela tela;


	public Tela getTela() {
		return tela;
	}

	public void setTela(Tela tela) {
		this.tela = tela;
	}
	
	public void validate() throws Exception {
		try {
			if (tela.getTela() != 1 && tela.getTela() != 2)
				throw new Exception("Campo tela INVÁLIDO.");	
		}
		finally {
			tela = null;
		}
	}

}

Tela:

package com.model;

public class Tela {
	private int tela;

	public int getTela() {
		return tela;
	}

	public void setTela(int tela) {
		this.tela = tela;
	}
	
	

}

Tela View:

package com.view;

import java.util.Scanner;

import com.controller.TelaController;
import com.model.Tela;

public class TelaView extends BaseView {
	private Tela tela;
	private TelaController telaController;
	
	public Tela getTela() {
		return tela;
	}
	public void setTela(Tela tela) {
		this.tela = tela;
	}
	public TelaController getTelaController() {
		return telaController;
	}
	public void setTelaController(TelaController telaController) {
		this.telaController = telaController;
	}
	
	public TelaView(){
		tela = new Tela();
		telaController = new TelaController();
	}
	
	public void ExibirTela(){
		try { 
			Scanner scan = new Scanner(System.in);
			
			System.out.println("Digite 1 para Paciente e 2 para Médico");			
			tela.setTela(scan.nextInt());
			
			telaController.setTela(tela);
			telaController.validate();
			
			System.out.println("Você entrou na tela do sistema");
		}
		catch(Exception ex) {
			System.out.println(ex.getMessage());
		}
	}
	
	
}

Novo Main:

package com.main;

import com.view.TelaView;
import com.view.UsuarioView;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		UsuarioView view = new UsuarioView();
		view.ExibirConteudo();

		TelaView tela = new TelaView();
		tela.ExibirTela();
	}

}

Só tem um problema mesmo que o usuário e senha seja incorreto ele continua executando o código podem me auxiliar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite,

 

Como você tratou a exceção no método ExibirConteudo(), você pode ou encerrar o programa System.exit() ou chamar recursivamente ExibirConteudo() ou fazer um while(usuarioNaoAutenticado).

 

Espero ter contribuído.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Noite,

 

O ideal era criar um while(usarioNaoAutenticado), como o Leonardo Leal citou, para verificar se o utilizador é autêntico ou não, caso não seja, peça que insira as credências correspondentes ao usuário.

 

Cumps

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.