如何从java类访问servlet变量

时间:2013-12-19 09:14:56

标签: java servlets

我有一个像

这样的servlet
public class MainServlet extends HttpServlet {
public List<Card> cardList = new ArrayList<Card>();
public int numberOfCard = 0;
 .................
 .................
} 

现在我想从同一个包中的普通java类访问这个全局变量,我该怎么办?

2 个答案:

答案 0 :(得分:1)

我认为这不是一个好用的模式。

请记住,Servlet容器在调用之间只共享一个此servlet实例。这意味着在servlet中拥有一个全局变量会产生并发问题。

如果你想要做得更好,可以定义另一个处理公共存储的单例类,这样你就可以直接在其中写入和读取值。但是,您没有指定“普通java类”是在同一个线程中运行还是由另一个进程/线程启动。同样在最后一种情况下,您可能会出现并发问题,因此最好不要使用简单的列表,而应使用java.util.concurrent包中定义的启用并发的列表之一。

此致

答案 1 :(得分:0)

我们不能像普通类那样为servlet创建对象,因为servlet在服务器内部运行,因此servlet容器创建了servlet对象。 如果我们想在servlet中声明的其他类中使用变量,则需要创建servlet的对象,并且可以使用这些变量。

你不应该在servlet中使用实例变量,因为这些变量是由所有人共享的。