Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 599|回复: 0

Android 游戏服务器端 - Android学习

[复制链接]

该用户从未签到

发表于 2011-10-26 17:01:50 | 显示全部楼层 |阅读模式
  在做游戏开发的时候,很多游戏都会提供一个全球分数排名的的功能,这就需要使用服务器了,当然,你可以选择搭建自己的服务器,但从成本,稳定性和开发周期上看,我认为Google AppEngine是个很不错的选择.

java代码:
import java.util.Date;

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 Employee {

//标记主键,作以后查询之用

@PrimaryKey

@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)

private String firstName;





@Persistent

private String lastName;





@Persistent

private Date birthDate;





public Employee(String firstName, String lastName, Date birthDate) {

this.firstName = firstName;

this.lastName = lastName;

this.birthDate = birthDate;

}





public String getFirstName() {

return firstName;

}

}
复制代码
       步骤2.存取Bean(可以写在Servlet的doGet()或者doPost()里面):

java代码:
import java.io.IOException;

import java.util.Date;

import javax.jdo.PersistenceManager;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;





@SuppressWarnings("serial")

public class HelloServlet extends HttpServlet {

public void doGet(HttpServletRequest req,

HttpServletResponse resp)throws IOException {





resp.setContentType("text/plain");





Employee e = new Employee("Alfred", "Smith", new Date());

//获取用以存取对象的PersistenceManager

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

try {

//存储对象

resp.getWriter().println("saving object!");

pm.makePersistent(e);

}catch(Exception ex){

resp.getWriter().println("cannot persistent!");

ex.printStackTrace();

}

finally {

pm.close();

}





try{

//再次获取用以存取对象的PersistenceManager

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

//由主键检索对象,Alfred之前被定义为主键的

Employee newE = pm.getObjectById(Employee.class, "Alfred");

//读取新对象的信息检测对象检索是否成功

resp.getWriter().println("Employee:"+newE.getFirstName());

}catch(Exception ex){

ex.printStackTrace();

resp.getWriter().println("cannot get data!");

pm.close();

}

}





@Override

protected void doPost(HttpServletRequest req,

HttpServletResponse resp)throws ServletException, IOException {

this.doGet(req, resp);

}

}
复制代码
       其中PMF类的代码如下,没看错应该是个单例模式:

java代码:
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;

}

}
复制代码
        使用Google 账户认证服务:

java代码:
import java.io.IOException;





import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;





import com.google.appengine.api.users.UserService;

import com.google.appengine.api.users.UserServiceFactory;





public class GoogleAccount extends HttpServlet{





@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//创建用户服务

UserService userService = UserServiceFactory.getUserService();





String thisURL = req.getRequestURI();

//通过请求对象的 getUserPrincipal() 方法测试用户是否使用 Google 帐户登录

if (req.getUserPrincipal() != null) {

//如果有登录,则创建Login地址

resp.getWriter().println("<p>Hello, " +

req.getUserPrincipal().getName() +

"! You can <a href=\"" +

userService.createLogoutURL(thisURL) +

"\">sign out</a>.</p>");

} else {

//如果没有登录,则创建Login地址

resp.getWriter().println("<p&gtlease <a href=\"" +

userService.createLoginURL(thisURL) +

"\">sign in</a>.</p>");

}

}





@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

doGet(req, resp);

}

}
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 19:44 , Processed in 0.364014 second(s), 50 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表