首先对不起我的英语我使用谷歌翻译。
我是使用 Google App Engine 的新手,并且我放置了一个用户,但首先我需要检查一个用户是否已经存在,并且我在电子邮件中注明“是唯一键”并让我知道我是否以正确的方式进行操作。
伪代码是这样的:
新用户类
if not exist mail
put user to database
return true
else
return false
Servlet 插入用户:
if not NewUser.put
redirect login.jsp
else
redirect user.jsp
这是代码:
新用户类:
public static boolean insert(String name, String mail, String password) {
DatastoreService datastore = DatastoreServiceFactory
.getDatastoreService();
Key k = KeyFactory.createKey(User.class.getSimpleName(), mail);
if (!userExist(k)) {
Entity user = new Entity(k);
user.setProperty("name", name);
user.setProperty("password", Encrypt.MD5(password));
datastore.put(user);
return true;
} else {
return false;
}
}
private static boolean userExist(Key key) {
DatastoreService datastore = DatastoreServiceFactory
.getDatastoreService();
Query q = new Query(key).setKeysOnly();
List<Entity> ent = datastore.prepare(q).asList(
FetchOptions.Builder.withDefaults());
return (ent.isEmpty() || ent == null) ? false : true;
}
和 Servlet:
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.sendRedirect(NewUser.insert(req.getParameter("name"),
req.getParameter("mail"), req.getParameter("password")) ? "jsps/user.jsp"
: "jsps/login.jsp");
}
我可以让它在没有查询的情况下检查电子邮件吗?
此代码有效,但我正在寻找有关如何使其更好的建议。
提前致谢。