ワンピース64巻を買った。

なんだろう。眠かったせいか。
読むのが面倒になってきたな。

3ヶ月前の話を覚え切れてないのと話が複雑になってきて、なんとなくしかわからねw

もう一回読み直すべきかな。

最近はまってるGoogle App Engine

slim3ってものがあるらしい。
Google App Engine フレームワークらしい。

オレもスリムになりたい。って訳で試してみた。

最初に検証結果を書いとく。

■検証結果
使うべき
⇒フレームワークあるとやっぱりちゃんとしたものが作れますよ。ほんと。
 なしでちゃんとしたのができる人でも、効率向上になるんじゃないかと思う。

■検証
Google App Engineは前のブログでちろっとかいたように導入済み
Eclipseにインストールするだけ。めっちゃかんたん。

Slim3 Eclipse Plugin
以下を参照していれる。

参照:
http://sites.google.com/site/slim3appengine/documents/eclipse-plugin

動作を試す
あとは実行テストテスト

Getting Started>Creating a blank project


参照:
http://sites.google.com/site/slim3appengine/getting-started/creating-a-blank-project

最後まで進むとツイッター的なアプリが完成。

MVCフレームワークってこんな感じで作るのね。勉強になった。


GAEとJavaについて調べながらやった。

ログイン処理は3hほどで完成。できたけど、調べながらだから書き方があっているのか不安。
そもそもまともにJava書くのほぼ初めてだ。
明日本買ってこよう。


■ログイン
ログイン画面:login.jsp⇒ログイン判定:Login.java
ユーザクラス:Users.java

login.jsp
==========================================
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.io.IOException" %>
<%@ page import="java.util.List" %>
<%@ page import="javax.jdo.PersistenceManager" %>
<%@ page import="javax.servlet.http.HttpServlet" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpServletResponse" %>


<html>
<head><title>ログイン</title></head>
<body>

<%

%>
<form action="/login" method="POST">
<div>
ログイン ID:
<INPUT type="text" size="30" name="login_id">
</div>
<div>
ログイン パスワード:
<INPUT type="password" size="30" name="password">
</div>
<div><input type="submit" value="ログイン" /></div>
</form>
</body>
</html>
==========================================


Login.java
==========================================
import java.io.IOException;
import java.util.List;

import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@SuppressWarnings("serial")
public class Login extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {

// POSTパラメータ取得
String login_id = req.getParameter("login_id");
String password = req.getParameter("password");

// PMF
PersistenceManager pm = PMF.get().getPersistenceManager();

try {
// 入力されたログインIDとパスワードのユーザがDBに存在するか
Query query = pm.newQuery(Users.class);
query.setFilter("login_id == paramId && password == paramPass");
query.declareParameters("String paramId, String paramPass");

List<Users> users = (List<Users>) query.execute(login_id, password);

resp.setContentType("text/html;charset=UTF-8");
if (!users.isEmpty()) {
// ログインOK
resp.getWriter().println("ログインOK!!");
}else{
// ログインNG
resp.getWriter().println("ログインNG!!");
}
} finally {
pm.close();
}
}
}
========================================

Users.java
========================================
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Users {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;

@Persistent
private String login_id;

@Persistent
private String password;


public Users(String login_id, String password) {
this.login_id = login_id;
this.password = password;
}

// ログインID
public String getLoginId() {
return login_id;
}

public void setLoginId(String login_id) {
this.login_id = login_id;
}

// パスワード
public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

}
================================


参照:
http://code.google.com/intl/ja/appengine/docs/java/datastore/
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/usingdatastore.html
http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html
http://d.hatena.ne.jp/a-know/20090809/1249815363


ソースをネットで晒すの初めてなきがしてきた。
ハズカシイ(/ω\)



明日はお仕事でEXPO。

見て回るだけだけど、折角行くんだから今後につなげよう。
未来は今から。


p.s.木枯らし1号。昔から1号とか呼んでたっけ。
最近できたのか、オレが物事知らないのか。

調べたら後者だった。木枯らし2号、3号はあっても発表しないとのこと。初雪みたいなもんか。
もっともっと物事を知ろう。

そして紅葉見に行きたい。


まとまりがない。まとめる気もないからどうでもいいか。
おーわり。