第一个Google App Engine的Java程序
什么是Google App Engine?
通过使用Google App Engine,您可以在Google基础架构的基础上运行自己编写的网络应用程序,省去了租用服务器和申请域名的工作。GAE(Google App Engine)目前支持Java和Python语言。
搭建开发环境
开发普通的Java WebApplication一般使用Myeclipse,在此基础上开发GAE的程序只需要在Myeclipse上安装Google提供的插件即可。
下载App Engine Java SDK
直接解压到硬盘目录即可
安装Myeclipse插件(myeclipse版本10.0)
选择Help菜单,点击Myeclipse Configuration Center。
选择Software,点击add site,在Name中输入googleappengine3.7,在URL中输入http://dl.google.com/eclipse/plugin/3.7,点击确定。
在右侧面板中选中要添加的插件,点击右上方的绿色加号按钮
配置sdk
点击面板右上方的Applychanges,等待安装完毕重启Myeclipse。
点击windows->Preferences->Google->AppEngine,点击Add,在弹出面板中点击Browse,选择AppEngine Java SDK的解压目录,填写Display name,点击OK。
新建项目
打开Myeclipse,点击,选择New Web Application Project,弹出新建项目面板,填写projectname,package,取消选择Use Google WebToolkit。
新建的项目完整目录结构如下图所示
运行空项目
右键点击Guestbook项目,选择Run as –>Web Application,
打开浏览器,输入http://localhost:8888
点击下面的链接就可以打开我们创建的一个空项目。
使用UsersService
Google App Engine提供很多服务,其中Users Service可以允许您的应用程序添加使用Google账号登录的功能。
打开src/xidian.guestbook/GuestbookServlet.java,,编写以下代码
package xidian.guestbook;
import java.io.IOException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.google.appengine.api.users.User; import com.google.appengine.api.users.UserService; import com.google.appengine.api.users.UserServiceFactory;
@SuppressWarnings("serial") public class GuestbookServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { UserService userService = UserServiceFactory.getUserService(); User user = userService.getCurrentUser(); if (user != null) { resp.setContentType("text/plain"); resp.getWriter().println("Hello, " + user.getNickname()); } else { resp.sendRedirect(userService.createLoginURL(req.getRequestURI())); } } } |
再次运行,查看效果。
使用JSP
在war目录下新建jsp文件guestbook.jsp
替换为以下内容:
<%@ page contentType="text/html;charset=UTF-8" language="java"%> <%@ 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) { %>
Hello,<%=user.getNickname()%>! (You can Sign out.)
<% } else { %>
href="<%=userService.createLoginURL(request.getRequestURI())%>">Sign in to include your name with greetings you post.
<% } %>
|
为了使guestbook.jsp成为整个应用的首页,我们需要在war/WEB-INF/web.xml中
修改
修改后为
|
在guestbook.jsp中添加留言簿表单
在
标签之前,添加代码
|