这个前端控制器主要实现了登陆的功能
首先我们线创建一个Login实体类,在这里我省略了dao层,省去了于数据库交互的麻烦,直接对字段进行了赋值,如下所示:
package com.src.Bean;
public class Login {
private String userName = "admin";
private String password = "123456";
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
然后创建一个接口,名叫Action
package com.src.Interface;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public interface Action {
public String execute(HttpServletRequest request, HttpServletResponse response);
}
创建接口的实现类,也就是登陆页面的WelcomeAction类,这个实现类通过反射获取对象并进行实例化,如果要与数据库进行交互可以使用request获取参数并读取数据进行判断是否正确。
package com.src.servelt;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.src.Bean.Login;
import com.src.Interface.Action;
public class WelcomeAction implements Action {
@Override
public String execute(HttpServletRequest request, HttpServletResponse response) {
Class<?> cla;
Login login = null;
try {
cla = Class.forName("com.src.Bean.Login");
login = (Login)cla.newInstance();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
request.setAttribute("user", login.getUserName());
request.setAttribute("password",login.getPassword());
return "/welcome.jsp";
}
}