基于传递给servlet的参数实现方法调用的建议

时间:2010-09-21 22:47:36

标签: java servlets ejb

我想获得一些关于实现基于我传递给servlet的参数调用ejb方法的解决方案的建议。

我有一个Web项目和一个ejb 3.0项目。从Web项目中的servlet调用ejbs。

根据我传递给servlet的参数调用ejbs。对于我需要执行的每个操作,我将一个明确的参数说, task 传递给servlet。例如,如果任务等于 fetchEmployee ,它将调用bean的特定方法,例如: - fetchEmployeeDetails()。如果< em> task 等于 deleteEmployee ,它应该调用不同的bean方法。

我有以下选择:

  • if / else或switch case方法。当任务数量增加时,这变得混乱和无法管理。

  • 将任务和bean类映射到xml配置文件中,然后使用Digester

  • 读取它
  • 使用ServletFilter根据传递的参数执行某些操作。

有人可以建议一个干净/优雅的方法来实现这个吗?

1 个答案:

答案 0 :(得分:0)

您可以在ejb上使用动态方法调用。

您可以根据名称和参数签名向接口的类询问方法句柄。

Method method = bean.getClass().getMethod(task,paramTypes);

映射参数会有点麻烦,除非你让生活轻松并且总是传递一个hashmap或类似的东西。无论如何,您只能从请求中获得字符串,因此无论如何都必须进行卫生和翻译。

然后你调用方法:

Object[] args = new Object[]{paramMap};
String result = method.invoke(method, args);