我正在开发JSF (v1.2)应用程序。在我的应用程序中,我需要一个通用的servlet,它可以服务于任何资源(PDF、图片、Excel等)。我的想法是要求调用者发送所需的信息,这样我就可以使用一些配置找到正确的委托类。
这个委托类将负责服务正确的资源。
例如,这是请求url
http://example.com/servlet?delegatorid=abcd我的Servlet代码是这样的。
protected void doGet(HttpServletRequest request, HttpServletResponse response){
String delegatorID=request.getParameter("delegatorid");
//Get the configuration from Configuration table
configuration=getConfiguration(delegatorID);
//invoke the method of the delegator class based on this configuration
Object result=invokeMethod(configuration);
//write the response to the stream
}我的问题是,在JSF项目中,最好的方法是什么?
你能让我听听你对此的想法吗?
发布于 2012-12-24 11:27:30
FacesContext (和ExternalContext)只是HttpServletRequest、HttpServletResponse、HttpSession、ServletContext、etcetara上的一个立面,以及一些在普通的servlet中根本不需要的JSF细节。ExternalContext#getSessionMap()不过是HttpSession#get/setAttribute()的抽象映射。
在普通的普通servlet中,会话仅由request.getSession()提供,而应用程序则由getServletContext()以通常的方式使用。另见这个相关问题:在任何与Servlet相关的类中按名称获取JSF托管bean。
您还可以将需要由JSF和Servlet共享的代码重构为一个不依赖于javax.faces.*或javax.servlet.*类(最多只有javax.servlet.*)的实用方法,最后让每个调用方传递必要的信息。
https://stackoverflow.com/questions/14017441
复制相似问题