2
我有一个简单的例子来检查使用MVC模式的用户登录..创建例如用简单的Java MVC
LoginModel:
public class LoginModel {
private String username;
private String password;
public LoginModel()
{
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
}
LoginView:
public class LoginView {
LoginModel user;
//Ham khoi tao cho LoginView
public LoginView(LoginModel user)
{
this.user=user;
}
public void showMessage(String msg)
{
System.out.println(msg);
}
public void getUserInfo()
{
try
{
DataInputStream input=new DataInputStream(System.in);
System.out.println("Username:");
user.setUsername(input.readUTF());
System.out.println("Password:");
user.setPassword(input.readUTF());
input.close();
}
catch(IOException e)
{
System.out.println(e);
}
} }
LoginControl:
public class LoginControl {
LoginModel user;
LoginView view;
public LoginControl(LoginModel user,LoginView view)
{
this.user=user;
this.view=view;
while(true)
{
view.getUserInfo();
if(checkLogin())
{
view.showMessage("Success");
}
else
{
view.showMessage("Wrong username or password");
}
}
}
private boolean checkLogin()
{
if((user.getUsername().equals("sa"))&&(user.getPassword().equals("sa")))
{
return true;
}
return false;
}
}
LoginMain:
public class LoginMVC {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LoginModel user=new LoginModel();
LoginView view=new LoginView(user);
LoginControl control=new LoginControl(user, view);
}
}
但是当我运行主类,这是唯一的用户名:输入用户和停止.. 我不知道错误在哪里。 你能帮助我吗?
是否有一个原因,你正在使用'DataInputStream'而不是'Scanner'来读取用户输入? – Vulcan
谢谢..我编辑。 – user1871578
U可以使用Scanner而不是使用Depricated Api DataInputStream –