2010-01-28 68 views
0

使用同樣的HTTPService如何獲取更新的數據我有兩個httpservice.one這從servlet訪問數據和一個存儲數據到另一個servlet柔性形式。 首先,當IM從正在工作的servlet訪問數據和存儲部分也working..so當我再次撥打訪問servlet IM沒有得到更新display..the訪問servlet是沒有得到再次調用.. 這是我的訪問servlet代碼在柔性

public void doPost(HttpServletRequest request,HttpServletResponse response) 
       throws ServletException,IOException 
{ 
PrintWriter out=response.getWriter(); 

     try 
       { 
        response.setContentType("text/html"); 
        String gradeName=request.getParameter("tx1"); 
        System.out.println(gradeName);  
        gradeName=gradeName.toUpperCase(); 
        Session session = HibernateUtil.getSessionFactory().openSession(); 

        Transaction tx = session.beginTransaction(); 
        Grade g=new Grade(gradeName); 
         session.save(g); 
         tx.commit(); 

         session.close(); 
         //HibernateUtil.shutdown(); 
         out.println("Added Successfully"); 

       } 
       catch(ConstraintViolationException e) 
       { 
        out.println("Grade is already Present"); 
       } 
       catch(Exception e) 
       { 
        e.printStackTrace(); 
       } 

} 

}

這是我顯示的servlet

保護無效的doGet(HttpServletRequest的請求,響應HttpServletResponse的)拋出的ServletException,IOException異常{

Session session = HibernateUtil.getSessionFactory().openSession(); 
    Transaction tx=session.beginTransaction(); 
    Query q=session.createQuery("from Grade"); 
    List l=q.list(); 

    Grade t; 
    PrintWriter out=response.getWriter(); 
    response.setContentType("text/xml"); 
    String str="<?xml version=\"1.0\" encoding=\"utf-8\"?><top>"; 

    for(int i=0;i<l.size();i++) 
    { 
     t=(Grade)l.get(i); 
     str+="<inside><id>"+t.getGradeId()+"</id>"; 
     str+="<name>"+t.getGradeName()+"</name></inside>"; 
    } 
    str+="</top>"; 
    out.println(str); 
    System.out.println("yattaa->"+str); 
    tx.commit(); 
    session.close(); 
    HibernateUtil.shutdown(); 
+0

請不要使用標籤來縮進代碼。使用4或2個空格。這可以在任何像樣的編輯器/ IDE中配置。 – BalusC 2010-01-28 13:38:55

回答

0

我不知道如何解釋「存儲數據到另一個servlet」。這聽起來像是你在談論將數據分配爲servlet實例的實例變量。您絕不應該以任何方式將任何請求或會話範圍的數據存儲在servlet中。您應該分別使用這HttpServletRequest#setAttribute()HttpSession#setAttribute()。這是一個和同一個servlet實例在整個應用程序生命週期過程中使用的事實beause,它已經之中所有請求和會話共享。這樣Visitor X會看到訪客Y的數據,而你真的不想擁有這些數據。

在這種特殊情況下,你想分享的同一會話內的多個請求之間的數據(我假設Flex是足夠聰明的使用相同的會話JSP/HTML頁面使用父)。然後,只需將它存儲在會話方式如下:

request.getSession().setAttribute("data", data); 

您可以訪問它在任何後續請求在同一會話方式如下:

Data data = (Data) request.getSession().getAttribute(); 
+0

嘿上面的代碼是添加代碼。其中,IM在數據庫中存儲的值...香港專業教育學院 救一個servlet代碼從數據庫中提取值和柔性GUI顯示it.this也在努力的...但下一次,當我再添加1個值進入數據庫,然後顯示使用相同的servlet..this的servlet沒有被invoked..i想爲什麼不調用再次 – Gaurav 2010-01-28 13:52:40

+0

顯然請求的URL是完全錯誤的原因。 – BalusC 2010-01-28 14:22:40