您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
23_登录案例_BeanUtils基本使用(自动将请求参数映射赋值到实体类对象)
发布时间:2022-08-14 15:48:27编辑:雪饮阅读()
其实这次相较于上次只是优化下登录时表单录入参数与数据实体类之间的自动关联设置。
比如登录时候目前就输入一个用户名和一个密码,假如还要选择用户类型要选择职业单位之类的,总之好多字段那种。
那么就需要每个字段都对应写一个语句来获取,然后获取后对应也要set该属性数据到那个数据实体类中,就很麻烦了。
则实例如:
src/User/Login.java:
package User;
import dao.UserDao;
import domain.User;
import org.apache.commons.beanutils.BeanUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
@WebServlet("/User/Login")
public class Login extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User loginUser=new User();
System.out.println("username:"+request.getParameter("username"));
System.out.println("password:"+request.getParameter("password"));
try {
//准备数据
//自动将获取的请求参数形成的map对象关联设置到待登录的User对象中
Map<String,String[]> map= request.getParameterMap();
BeanUtils.populate(loginUser,map);
//登录
UserDao ud=new UserDao();
User loginedUser= ud.login(loginUser);
if(loginedUser==null){
//注意,这里是从doPost中转发出去的,所以接收方也该是dopost
request.getRequestDispatcher("/failServlet").forward(request,response);
}
else{
request.setAttribute("user",loginedUser);
request.getRequestDispatcher("/successServlet").forward(request,response);
}
System.out.println("loginedUser:"+loginedUser);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
关键字词:登录,案例,BeanUtils,基本,使用