google app engine developer - day1
DESCRIPTION
Start to use Java App Engine - Install & deploy - First code, make a simple UI - User login integrateTRANSCRIPT
GAE Developer - Day1Simon @ MiCloud2014Q1
● https://developers.google.com/eclipse/docs/getting_started?hl=zh-tw
Install GAE Eclipse Plugin
Install GAE Eclipse Plugin ● Eclipse 4.3 (Kepler)
○ https://dl.google.com/eclipse/plugin/4.3● Eclipse 3.8/4.2 (Juno)
○ https://dl.google.com/eclipse/plugin/4.2● Eclipse 3.7 (Indigo)
○ https://dl.google.com/eclipse/plugin/3.7
Install GAE Eclipse Plugin
First GAE App
● Create GAE web project● Review project & Edit Servlet● Deploy to GAE
Create GAE Web Project
Going to Project Detail
Java source code
Web source code
GAE setting
Servlet setting
Local Develop Server
Local Server Supports● Jetty Servlet container● Admin page● Datastore - HDR● MySQL connect
Local Admin Console
Deploy GAE to Cloud
Getting Start….
GAE預設值...
● Stateless - no session enabled● Without app stat page● Have JSP standard UserPrinciple object for
authentication● Cannot DB connection● JSTL support
建立簡單的UI - https://jetstrap.com
整合到專案
Enable Session...
基本設定 - Enable Session
Enable App State...
App Stats Servlet<!-- direct /appstats requests to built-in appstats tool --><servlet> <servlet-name>appstats</servlet-name> <servlet-class>com.google.appengine.tools.appstats.AppstatsServlet</servlet-class></servlet><servlet-mapping> <servlet-name>appstats</servlet-name> <url-pattern>/appstats/*</url-pattern></servlet-mapping><!-- appstats to record statistics/metrics for each request --><filter> <filter-name>appstats</filter-name> <filter-class>com.google.appengine.tools.appstats.AppstatsFilter</filter-class> </filter><filter-mapping> <filter-name>appstats</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
http://localhost:8888/appstats/stats
Use User Service….
User Service
CallbackPage
ResultPage
extends: AbstractAppEngineAuthorizationCodeServlet
extends: AbstractAppEngineAuthorizationCodeCallbackServlet
G
1
2
34
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.List" %>
<%@ page import="com.google.appengine.api.users.User" %>
<%@ page import="com.google.appengine.api.users.UserService" %>
<%@ page import="com.google.appengine.api.users.UserServiceFactory" %>
<%
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
if (user != null) {
pageContext.setAttribute("user", user);
%>
<a href="<%= userService.createLogoutURL(request.getRequestURI()) %>">sign out</a>.)</p>
<a href="<%= userService.createLoginURL(request.getRequestURI()) %>">Sign in</a>
整合User Service
Others...
● 預設Datastore: com.google.api.client.extensions.appengine.auth.oauth2.AppEngineCredentialStore
User service default store
取得App Engine Id
import com.google.apphosting.api.ApiProxy;ApiProxy.getCurrentEnvironment().getAppId();
Team Work - Invite Cooperate User
Q&AEND