使用BeanUtils进行自动映射,导入commons-beanutils-1.9.3.jar
和依赖包commons-logging-1.2.jar、commons-collections-3.2.2.jar
BeanUtils工作原理:将map中的数据,根据key与实体属性的对应关系封装,只要key的名字与实体的属性名字一样,就自动封装到实体中。
平常我们需要这样写:
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = new User();
user.setUsername(username);
user.setPassword(password);
......
但是这样写,如果有一百个参数我们就要写一百遍这样的代码。于是BeanUtils诞生了
Map<String, String[]> properties = request.getParameterMap();
// 2将散装的数据封装到JavaBean
User user = new User();
try {
BeanUtils.populate(user, properties);
} catch (IllegalAccessException | InvocationTargetException e1) {
e1.printStackTrace();
}
// 现在这个位置user对象已经封装好了
// 手动封装uid--uuid--随机不重复的字符串32位的--Java代码生成后是36位的
user.setUid(UUID.randomUUID().toString());
// 3将参数传递给业务操作方法,将JavaBean中的数据存到数据库
register(user);
import java.util.UUID;
随机不重复的字符串32位的--Java代码生成后是36位的
// 设置request的编码--只适合post提交方式
request.setCharacterEncoding("UTF-8");
// get提交方式的乱码解决
// 先使用iso8859-1编码,再使用utf-8解码
String username = request.getParameter("username");
username = new String(username.getBytes("iso8859-1"), "UTF-8");
// 这种方式也适用于post提交
// 但是这种方式一旦数据很多就不方便,所以get方式不适合表单提交,一般用 request.setCharacterEncoding("UTF-8");就可以了
response.sendRedirect(request.getContextPath()+"/login.jsp");
java request.getMethod() request.getRequestURI(); request.getContextPath();//获得应用的名称 request.getRemoteAddr();
request.getHeader(String name);
java String request.getParameter(String name); Map<String, String[]> request.getParameterMap(); String[] request.getParameterValues(String name);
request.getRequestDispather("转发的地址,在服务器内部,不用些应用的名称").forward(request,response);
request.setAttribute(String name, Object value);
request.getAttribute(name);
原文:https://www.cnblogs.com/zxfei/p/11006754.html