2010-01-28 73 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