2012-07-18 38 views
0

获取数据我有一个类,从servlet中获取数据,像这样:从servlet类

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html");{ 
     ServletOutputStream out = response.getOutputStream(); 
     try { 
      out.println("<html><head><title>" + "</title></head>"); 
      out.println("<body><h1>" + "</h1>"); 
      name = request.getParameter("username"); 
      message = "hi there"; 
      //String comment = request.getParameter("comment"); 
      out.println("Name:" + name + "<BR>"); 
      //out.println("Comment: " + comment + "<BR>"); 
     } 
     catch(Throwable t) { 
      out.println("<P><pre>"); 
      t.printStackTrace(new PrintStream(out)); 
      out.println ("</pre><P>"); 
     } 
     out.println ("</body></html>"); 
    } 
} 

这工作得很好,但我想使用的名称参数在不同的类中的服务器上了。我可以使用类似:

getServletContext().setAttribute("package", "name"); 

而从这样的类调用属性?还是有另一种方法可以将值保存在servlet上下文中或servlet中,以便我可以再次调用它?我真正想要做的是在加载servlet之后,保持最后一个值处理某处,并在需要时在另一个类中使用它。

所有帮助表示感谢! :)

回答

1

getServletContext()是在servelts之间共享数据的方法之一。所以,是的,你的方法应该没问题。

如果数据是特定于用户而不是getServletContext(),最好使用HttpSession

+0

但是,如何在另一个类中调用getServletContext()?我如何将它传递给这个类的servlet上下文?谢谢 – user1501171 2012-07-18 11:54:53

+0

ServletContext在应用程序中是全局的,如果其他类是“Servlet”,则可以再次执行getServletContext并执行getAttribute。如果其他类不是Servlet,那么您需要在类之前的servlet中获取上下文,并在那里获取getAttribute并将其传递给其他类。 – kosa 2012-07-18 11:56:05

+0

我想调用其他类的数据实际上并不是一个servlet,对不起!请您详细说明第二部分,我不完全明白,有没有我能看到的例子? – user1501171 2012-07-18 12:35:23