如何在java中使用类

如何在java中使用类,java,class,gwt,gwt2,Java,Class,Gwt,Gwt2,我不熟悉GWT和java 这里有一个例子来理解我的问题 代码 在服务器端 .server public class ServiceIMPL extends RemoteServiceServlet implements ServiceInterface{ public String getConnection(String[] authentication) { connectionParameter = new ConnectionParameter(authent

我不熟悉GWT和java 这里有一个例子来理解我的问题

代码

在服务器端

 .server
public class ServiceIMPL extends RemoteServiceServlet implements ServiceInterface{
     public String getConnection(String[] authentication) {
        connectionParameter = new ConnectionParameter(authentication,repositoryName);
        session=connectionParameter.getSession();
     }
 }
此会话用于添加或删除存储库中的文件夹

addFolder、getFolder、getDocment方法与执行此操作所需的会话在同一个类中编写。一切正常

现在我必须在存储库中添加文档。为此,我在服务器中设计了一个servlet

 public class FileUpload extends HttpServlet implements Servlet {

// servlet is also working fine i have the content of file in buffer.
//but to add file in a repository I need Session which is in ServiceIMPL Class
//if I create a object of ServiceIMPL class then the authentication will be null
//Without Username and Pass word session cannot be created.
}

请帮我怎么做。

您使用什么类型的会话?如果它是一个
HttpSession
,您只需从
FileUpload
servlet中
HttpServletRequest请求的
参数执行
request.getSession()
公开会议

    public Session session;
并在课堂上上传文件

  private Session session = ServiceImpl.session;
我保证这会奏效。但这不是一种好的编码方式。
等待专家的答复

到目前为止,您做了哪些尝试,遇到了哪些问题?到目前为止,您做了哪些研究?@pap我想要的是ServiceIMPL中的会话。如果我在FileUpload类中创建ServiceIMPL对象。然后身份验证数组将为空,因为它是一个新对象。如果您是新手,请检查gwt dispatch和guice Documentation这是如何工作的,ServiceImpl对象来自哪里?或者ServiceImpl中的会话是静态的?@HilbrandBouwkamp:我猜如果类的变量是公共的,那么你可以在项目中的任何地方使用它。因此,任何其他类中的ClassName.variablename将给出相同的值,因为它已初始化该类。@NewCodeLearner如果它是公共的,您仍然需要该类的实例来访问它
ServiceImpl
必须是变量,除非会话是
静态
字段:
公共静态会话?无论如何,我认为这个答案是不正确的,但我只想看看有多不正确。。因此,在回答问题之前,我想知道这个答案实际上是如何工作的。@HilbrandBouwkamp显然会话应该是静态的。@GameBuilder我已经害怕了。。。。这意味着这个答案是你永远不应该做的!!!因为Web服务器管理实例,所以它们在不同的会话中被重用。这意味着一旦有2个用户访问该站点,静态变量将由上次使用该变量的用户设置。一般来说,禁止在servlet中的(静态)变量中存储用户特定的状态,因为您无法控制这些servlet。要获得会话,请使用Web服务器提供的会话,如我在回答中所述:
  private Session session = ServiceImpl.session;