首先,我是 Web 服务的新手。我在大学有一个教学任务,关于开发 Web 应用程序和 Web 服务,例如管理分布式药店。我已经使用 struts2 框架开发了一个有效的 Web 应用程序,但现在我想将它扩展到一个 Web 服务。我发现我可以实现一个类(例如命名为 WSManager),它是各种 Web 应用控制器的包装器。它必须调用这些控制器的静态方法。Web 应用程序旨在为每个用例提供一个控制器。
例如控制器是这样的:
public class AdminLocaleController extends AbstractController {
private static final long serialVersionUID = -6266455088438602574L;
private static Logger logger = Logger.getLogger(AdminLocaleController.class);
private List<Prodotto> prodotti;
@Override
public String execute() {
prodotti = initializeAdminLocaleView();
return "success";
}
public List<Prodotto> getProdotti() {
return prodotti;
}
public void setProdotti(List<Prodotto> prodotti) {
this.prodotti = prodotti;
}
public static List<Prodotto> initializeAdminLocaleView() {
logger.info("Recupero lista di prodotti da ordinare");
DBController dbController = new DBControllerImpl();
return dbController.getProdottiDaOrdinare();
}
}
并且 WSManager 类调用 initializeAdminLocaleView(),就像这样:
/* AdminLocaleController */
public List<Prodotto> initializeAdminLocaleView(){
return AdminLocaleController.initializeAdminLocaleView();
}
我将在 Eclipse 中创建一个提供该服务类的 Web 服务。
如果我做错了什么,我会问你将 Web 应用程序扩展到 Web 服务的正确方法。
否则,我的问题是我是否必须(以及如何)管理视图(jsp)和控制器之间的参数和属性。
最后,我有一些控制器(每个都实现 SessionAware),它们处理数据并将返回的对象存储在 Session 中(例如,在请求会话中保存 User bean 的 LoginController)。更深一点,我的问题是在 Web 服务的情况下我应该如何管理 Web 应用程序的会话存储属性。如果我在 WSManager 中有将用户 bean 作为参数传递的方法调用,我如何从会话中获取它。或者简单地说,我是否有必要从 Web 服务的角度从会话中获取某些东西?
我确定我写了一个令人困惑的问题,但我此时的心态也是令人困惑的。