2012-07-18 39 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