Hibernate 如何在flex中使用相同的Httpservice获取更新数据
我有一个flex表单,它有两个httpservice。一个从servlet访问数据,另一个将数据存储到另一个servlet中。 首先,当我从正在工作的servlet访问数据时,存储部分也在工作。因此,当我再次调用access servlet时,我没有得到更新的显示。access servlet没有再次被调用。。 这是我的accessservlet代码Hibernate 如何在flex中使用相同的Httpservice获取更新数据,hibernate,servlets,flex3,Hibernate,Servlets,Flex3,我有一个flex表单,它有两个httpservice。一个从servlet访问数据,另一个将数据存储到另一个servlet中。 首先,当我从正在工作的servlet访问数据时,存储部分也在工作。因此,当我再次调用access servlet时,我没有得到更新的显示。access servlet没有再次被调用。。 这是我的accessservlet代码 public void doPost(HttpServletRequest request,HttpServletResponse respo
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
受保护的void 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();
会话会话=HibernateUtil.getSessionFactory().openSession();
事务tx=会话.beginTransaction();
Query q=session.createQuery(“从等级”);
List l=q.List();
t级;
PrintWriter out=response.getWriter();
setContentType(“text/xml”);
字符串str=“”;
对于(int i=0;i我不确定如何解释“哪个将数据存储到另一个servlet中”。听起来像是要将数据分配为servlet实例的实例变量。您不应该以这种方式在servlet中存储任何请求或会话范围的数据。您应该使用
HttpServletRequest#setAttribute()
和HttpSession#setAttribute()
分别用于此目的。这是因为在整个应用程序生命周期中使用了一个相同的servlet实例,它在所有请求和会话中共享。这样一来,访问者X将看到访问者Y的数据,而您真的不希望这样
在这种特殊情况下,您希望在同一会话中的多个请求之间共享数据(我假设Flex足够聪明,可以使用与父JSP/HTML页面使用的相同会话)。然后按照以下方式将其存储在会话中:
request.getSession().setAttribute("data", data);
Data data = (Data) request.getSession().getAttribute();
您可以通过以下方式在同一会话中的任何后续请求中访问它:
request.getSession().setAttribute("data", data);
Data data = (Data) request.getSession().getAttribute();
请不要使用制表符缩进代码。使用4或2个空格。这可以在任何合适的编辑器/IDE中配置。嘿,上面的代码是添加代码。我在数据库中存储值的地方…我又得到了一个servlet代码,它从数据库中获取值,flex GUI显示它。这也是有效的代码…但下次我再添加1个值时,我会返回数据库,然后使用相同的servlet显示..未调用此servlet..我想知道它为何不再调用