本文共 2297 字,大约阅读时间需要 7 分钟。
JavaBean是一个用于封装数据的Java类,其特点包括:
get
和set
方法JavaBean的主要作用是数据的封装与传递,常用于跨类数据交互。
JavaBean的属性名由get
和set
方法决定。例如:
public class Person { private Integer id; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } // 其他属性的getter和setter方法}
属性名通过get
和set
方法的名字推断而来。
传统方法中,getParameter("key")
会导致代码重复。使用JavaBean结合getParameterMap()
可以统一接收参数。
创建一个工具类BeanUtil
:
public class BeanUtil { public staticT toBean(Map map, Class clazz) { try { T obj = clazz.newInstance(); PropertyDescriptor[] pds = Introspector.getBeanInfo(clazz).getPropertyDescriptors(); for (PropertyDescriptor pd : pds) { String pName = pd.getName(); if (map.containsKey(pName)) { Object value = map.get(pName); if (pd.getPropertyType() == Integer.class) { pd.getWriteMethod().invoke(obj, Integer.valueOf((String) value)); } else if (pd.getPropertyType() == String.class) { pd.getWriteMethod().invoke(obj, (String) value); } else { // 其他类型处理 } } } return obj; } catch (Exception e) { e.printStackTrace(); return null; } }}
public class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) { Person person = BeanUtil.toBean(request.getParameterMap(), Person.class); request.setAttribute("person", person); RequestDispatcher dispatcher = request.getRequestDispatcher("otherSvl"); dispatcher.forward(request, response); }}
请求转发通过RequestDispatcher
实现,步骤如下:
RequestDispatcher dispatcher = request.getRequestDispatcher("otherSvl");
dispatcher.forward(request, response);
域对象由容器创建,具有特定的作用域:
域对象通过setAttribute()
和getAttribute()
进行数据交互。
通过以上方法,可以高效地实现JavaWeb应用的参数接收与请求转发,充分利用JavaBean的优势。
转载地址:http://dhawz.baihongyu.com/