在這裡筆記一下大四學的GAE相關東西
Java Datastore
例如儲存一個會員資料表
在Client端設定結構
@PersistenceCapable
public class UserData implements IsSerializable{
public UserData(){}
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private String account;
@Persistent
private String name;
@Persistent
private String password;
//以下方便Client端取用
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
GreetingService.java 裡面宣告方法,這邊用新增project時就有的GreetingService.java
如果要自己創一個Service也行,記得到/war/WEB-INF/web.xml裡面宣告<servlet-name>與<servlet-mapping>
@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService {
void addAccount(String account);
}
記得新增PMF.java
package com.example.hw3.client;
import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;
public final class PMF {
private static final PersistenceManagerFactory pmfInstance =
JDOHelper.getPersistenceManagerFactory("transactions-optional");
private PMF() {}
public static PersistenceManagerFactory get() {
return pmfInstance;
}
}
最後在Server端這邊呼叫PersistenceManager 來寫入
@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
GreetingService {
@Override
public boolean addAccount(String account) {
// TODO Auto-generated method stub
PersistenceManager pm = PMF.get().getPersistenceManager();
Userdata u = new Userdata();
u.setAccount(account);
try {
pm.makePersistent(u);
}finally{
pm.close();
}
}
}
回到Client端,呼叫greetingService
greetingService.addAccount("Jack", new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(Void result) {
// TODO Auto-generated method stub
}
});
去後台看的時候就會出現UserData的資料表囉
後臺在這
完成!
Blobstore Java API
https://developers.google.com/appengine/docs/java/blobstore/
這個API提供User儲存超大的檔案,很機車的是我照著example寫根本出不來,光是加入JSP
FILE 就一直error,之後就不加了,而是用FileUpload來產生FileChooser,另外如果沒事就不要
用這個API,難用死了 -3- ,DataStore比較好用可以直接Query
這個API提供User儲存超大的檔案,很機車的是我照著example寫根本出不來,光是加入JSP
FILE 就一直error,之後就不加了,而是用FileUpload來產生FileChooser,另外如果沒事就不要
用這個API,難用死了 -3- ,DataStore比較好用可以直接Query
FileUpload 可以參考
http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/ui/FormPanel.html
另外筆記一下在這邊的 TextBox 轉到網頁上會變成 type="text" ,所以POST的時候不用擔心拿不到TextBox 的內容,TextBox 記得setName(),在server那端用request.getParameter(Name); 即可收到。
說明文件的範例 web.xml 那邊
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>Upload</servlet-class>
</servlet>
要改成
<servlet>
<servlet-name>Upload</servlet-name>
<servlet-class>自己的路徑.server.Upload</servlet-class>
</servlet>
不然照著example做絕對是錯的
另外Upload 與 Serve 是放在server端的
學校作業是做一個File System 檔案管理系統,這裡是做出來的範例
最大上傳限制目前為32MB
程式碼就不獻醜了...來信洽談
做完這個File System的感想就是 : 爽
網路上的資料超級少,尤其是java,大部分的東西都要自己嘗試看看才行,我大概前後花了24
小時在找資料與嘗試吧...。
沒有留言:
張貼留言