2010-12-23 91 views
1

我有这个“痒”我想写一个过滤器,将拦截请求并提取参数,然后将这些参数转换为属性,以便他们到达BusinessLogic(BO)层它们应该是的对象的类型(例如Long,ObjectDTO,String等),目前我处理它的方式是BO接收请求提取参数,在nulls上执行验证并将它们相应地转换为适当的类型。我的新方法更方便吗,我读过这个The Essentials of Filters,同时我也希望听到比文章中提到的过滤器更多的用途。 我想到这个原因是因为在处理doGet时,用户可以省略参数,所以我会使用过滤器来设置它们是否丢失,有什么意见?Servlet过滤器(参数到属性)

回答

2

许多web框架都是这样做的。

例如,除了许多其他功能外,Struts过滤器还确定请求调用Action。它使用反射来确定Action的属性,它们是否可写,以及它们的类型。然后,它会处理每个参数的名称,如果它匹配动作的属性,它会尝试将参数值强制为属性类型的实例。如果成功,Action属性将使用结果值进行设置。在Action配置正确后,过滤器调用它。

这个过程可能听起来很复杂,但实际上,我并没有对复杂程度做出正确的判断。我建议你在尝试编写自己的代码之前查看一下现有的web框架可以为你做些什么。即使你没有预算,并且喜欢通过痛苦的经历学习,研究其他框架将帮助你重新创造一个更好的自己的框架。

+0

谢谢你的回答。我同意你的观点,尽管我喜欢学习苦涩的方式,但当我明白了这一点时,我知道要用更“框架化”的方式来覆盖它很多代码而不是为单个servlet做这些事情,这让我想到了制作过滤器的问题。总之,我一直在寻找Spring-MVC和Hibernate,但我还没有读到关于如何在Intellij创意中设置它的许多内容。 – Triztian 2010-12-23 19:28:28