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

Java 基于传递给servlet的参数实现方法调用的建议,java,servlets,ejb,Java,Servlets,Ejb,我想获得一些关于实现基于传递给servlet的参数调用ejb方法的解决方案的建议 我有一个web项目和一个EJB3.0项目。EJB是从web项目中的servlet调用的 EJB是根据我传递给servlet的参数来调用的。对于我需要执行的每个操作,我都会向servlet传递一个明确的参数,比如task。例如,如果任务等于fetchEmployee,它将调用bean的特定方法,例如:-fetchEmployeeDetails()。如果任务等于deleteEmployee,它应该调用不同的bean方法

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

我有一个web项目和一个EJB3.0项目。EJB是从web项目中的servlet调用的

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

我有以下选择:

  • if/else或switch case方法。当任务的数量像任何事情一样增加时,这就变得混乱和难以管理

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

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


有人能建议一个干净/优雅的方法来实现这一点吗

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

您可以根据名称和参数签名向接口类请求方法句柄

Method method = bean.getClass().getMethod(task,paramTypes);
映射参数会变得有点混乱,除非你让你的生活变得轻松,并且总是传递一个hashmap或类似的东西。无论如何,您只能从请求中获得字符串,因此仍然必须进行清洁和翻译

然后调用该方法:

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

简言之,你正在重新实现一个基于行动的框架?为什么不使用现有的解决方案呢?你指的是类似struts框架的东西?struts、Stripes等等。