如何在 flex 中使用相同的 Httpservice 获取更新的数据
Posted
技术标签:
【中文标题】如何在 flex 中使用相同的 Httpservice 获取更新的数据【英文标题】:how to get Updated data using same Httpservice in flex 【发布时间】:2011-01-10 09:28:51 【问题描述】:我有一个弹性表单,它有两个 httpservice.one 用于访问来自 servlet 的数据,一个用于将数据存储到另一个 servlet。 首先,当我从正在工作的 servlet 访问数据并且存储部分也在工作时..所以当我再次调用访问 servlet 时,我没有得到更新的显示..访问 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
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 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();
【问题讨论】:
请不要使用制表符来缩进代码。使用 4 或 2 个空格。这可以在任何体面的编辑器/IDE 中进行配置。 【参考方案1】:我不确定我必须如何解释“将数据存储到另一个 servlet”。听起来您正在谈论将数据分配为 servlet 实例的实例变量。您永远不应该以这种方式将任何请求或会话范围的数据存储在 servlet 中。您应该为此分别使用HttpServletRequest#setAttribute()
和HttpSession#setAttribute()
。这是因为在整个应用程序生命周期中使用了同一个 servlet 实例,它在 所有 请求和会话之间共享。这样访问者 X 会看到访问者 Y 的数据,而你真的不想看到。
在这种特殊情况下,您希望在同一会话内的多个请求之间共享数据(我假设 Flex 足够聪明,可以使用与父 JSP/HTML 页面相同的会话正在使用)。然后只需通过以下方式将其存储在会话中:
request.getSession().setAttribute("data", data);
您可以通过以下方式在同一会话中的任何后续请求中访问它:
Data data = (Data) request.getSession().getAttribute();
【讨论】:
嘿上面的代码是添加代码。我在数据库中存储值的位置...我又得到了一个 servlet 代码,它从数据库中获取值,flex GUI 显示它。这也是工作的...但是下次当我向数据库中添加 1 个值时然后使用相同的 servlet 显示..这个 servlet 没有被调用..我想知道它没有再次调用的原因以上是关于如何在 flex 中使用相同的 Httpservice 获取更新的数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 flexbox 使 flex 容器的子 div 具有相同的间距? [复制]
如何使用flexbox进行两列布局,并在列中的项目之间使用相同的间距? [重复]
使用 .d-flex 和 .flex-fill 使卡片具有相同的高度[重复]