从servlet获取本地数据

时间:2014-09-13 15:31:22

标签: servlets hashmap singleton containers tomcat6

嗨,大家好,我正在做一个网络项目。我正在使用Apache Tomcat 6.0.41作为我的servlet容器。直截了当。我有一个单一类,其中存储了所有数据。它包含对从.dat文件中的硬盘驱动器读取的数据的哈希图的引用,然后从servlet访问,然后作为JsonArray发送到.jsp页面。当我使用该单线类在本地读取数据时,在公共静态主函数中,数据就在那里,我可以自由地操作它。另一方面,当servlet尝试通过相同的函数读取它时,数​​据根本不会被读取,并且引用指向空的哈希映射。还有一件事,我只在同事的计算机上注意到这个问题,它在我的工作正常。有什么建议 ? :)

这行代码在servlet中打印出任何内容,当我在本地调用它时,整个集合从.dat文件中读取。

    System.out.println(Baza.getInstance().getMapaKorisnika().values());

因此,在getInstance()函数中调用ucitajPodatke()。

        public static Baza getInstance()
{
    if (instance == null)
    {
        instance = new Baza();
        instance.ucitajPodatke();

    }
    return instance;
}

    public void ucitajPodatke(){

    try {
        File file;

        file = new File("korisnici.dat");
        if (file.exists()) {
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("korisnici.dat"));
            try {
                mapaKorisnika = (HashMap<String, Korisnik>) in.readObject();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            in.close();
        } }

然后有一个吸气剂:

    public HashMap<String, Korisnik> getMapaKorisnika() {
    return mapaKorisnika;
}

0 个答案:

没有答案