
JavaWeb---实现JavaBean来接收参数、请求转发、域对象
获取转发对象:
发布日期:2021-05-08 12:14:49
浏览次数:9
分类:精选文章
本文共 2297 字,大约阅读时间需要 7 分钟。
JavaWeb - 实现JavaBean接收参数、请求转发与域对象
1. JavaBean的基础知识
JavaBean是一个用于封装数据的Java类,其特点包括:
- 类具有无参构造
- 提供私有成员变量
- 提供共有的
get
和set
方法
JavaBean的主要作用是数据的封装与传递,常用于跨类数据交互。
2. 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
方法的名字推断而来。
3. JavaBean与getParameterMap的结合
传统方法中,getParameter("key")
会导致代码重复。使用JavaBean结合getParameterMap()
可以统一接收参数。
3.1 JavaBean的实现
创建一个工具类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; } }}
3.2 Servlet中的应用
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); }}
4. 请求转发的实现
请求转发通过RequestDispatcher
实现,步骤如下:
RequestDispatcher dispatcher = request.getRequestDispatcher("otherSvl");
- 转发请求:
- 请求对象:处理一个请求,生命周期短
- 会话对象:跟踪用户的会话
- 应用上下文对象:保存应用的状态
- 在转发前,避免使用响应对象输出内容
- 确保目标Servlet能够处理转发过来的请求
dispatcher.forward(request, response);
5. 域对象的概念
域对象由容器创建,具有特定的作用域:
域对象通过setAttribute()
和getAttribute()
进行数据交互。
6. 请求转发注意事项
通过以上方法,可以高效地实现JavaWeb应用的参数接收与请求转发,充分利用JavaBean的优势。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月01日 22时52分02秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
供应ASTM D3475认证丨ASTM D3475防儿童包装测试费用
2019-03-05
2种解法 - 获取一条直线上最多的点数
2019-03-05
项目中常用的审计类型概述
2019-03-05
新生儿不建议吃鱼肝油,这些你知道吗
2019-03-05
新生儿哭是因为什么
2019-03-05
基础知识
2019-03-05
nodeName与tagName的区别
2019-03-05
(九)实现页面底部购物车的样式
2019-03-05
在vue中给对象扩展属性的方法
2019-03-05
Neo4j : 通过节点的 id属性 对节点进行查,改,删操作
2019-03-05
whatis 显示nothing
2019-03-05
Linux标准错误和标准输出重定向到同一个文件
2019-03-05
HTTP Status 404 – Not Found
2019-03-05
【2021年新书推荐】ASP.NET Core 5 and Angular
2019-03-05
python-day3 for语句完整使用
2019-03-05
es中值为null和值为“”的查询
2019-03-05
spark的组件组成部分介绍
2019-03-05
sso 单点登录的原理以及实现
2019-03-05