不显示Appengine数据存储区中的值

时间:2011-04-19 12:27:44

标签: google-app-engine

This is my first servlet...

public class ServletCheckServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");

    PrintWriter pw=resp.getWriter();
    String s1=req.getParameter("username");
    String s2=req.getParameter("password");

    DatastoreService datastore=DatastoreServiceFactory.getDatastoreService();
    Entity employee=new Entity("Employee");

    employee.setProperty("firstname", "Ram");
    employee.setProperty("lastname", "prasad");


    Date hiredate=new Date();
    employee.setProperty("Hiredate", hiredate);
    employee.setProperty("attendedHRtraining",true);
    datastore.put(employee);

    Key employeekey=KeyFactory.createKey("employees", "employee1");
}
}

我的第二个servlet在下面......

public class ValidUserServlet extends HttpServlet{
protected void doGet(HttpServletRequest req,HttpServletResponse resp){
    PrintWriter pw;
    try {
        pw = resp.getWriter();
        pw.println("Welcome to the second servlet");

        Key employeekey=KeyFactory.createKey("employees", "employee1");

    DatastoreService datastore=DatastoreServiceFactory.getDatastoreService();
        try {
            Entity employee=datastore.get(employeekey);
            String fn=(String) employee.getProperty("firstname");

            pw.println(fn);


        } catch (EntityNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


}

}

但是当我运行这个应用程序时...... servlet显示...但是Appengine数据存储区中的值没有显示...

我的程序有什么问题...如何清除这个......是否正确......

请帮助我.......

1 个答案:

答案 0 :(得分:1)

而不是使用Key employeekey=KeyFactory.createKey("employees", "employee1");

您可以使用

Entity employeeEntity = datastore.get(KeyFactory.stringToKey(employee.getId()));

由于您使用的是普通的旧servlet,因此可以从请求中获取employeeId

String employeeId = request.getParameter("employeeId");
Entity employeeEntity = datastore.get(KeyFactory.stringToKey(employeeId);

您可以参考此source code进一步澄清。