2013年3月28日木曜日

Google App Engine for Java

GAEを使いServletを動作させてみた。
Webアプリケーションが予想していたよりも、簡単にできたのはとても意外でありEclipseの偉大さも改めて感じた。

ちょこっとしか弄っていないがこれからどんどん弄ろうかなと思う。

サンプルとして

import java.io.IOException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class H0tcakeAP1Servlet extends HttpServlet {
 //GETで呼ばれたときに呼ばれる。
 public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
  resp.setContentType("text/plain");
  resp.getWriter().println("http://h0tcakeap1.appspot.com");
 }
 //データがポストされたときに呼ばれる
 public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
  resp.setContentType("text/plain");
  
  String para=req.getParameter("api");//POSTされたパラメータ(api)を取得
  resp.getWriter().println(selector(para,req));
 }
 //リクエストによってAPIを判別
 private String selector(String para,HttpServletRequest req){
  if(para==null){
   return "null";
  }
  String respons=null;
  if(para.equalsIgnoreCase("ipaddress")){
   respons=req.getRemoteAddr();//グローバルIPアドレスを取得
  }else{
   respons="null";
  }
  
  return respons;
 }
 
}


データをポストするとdoPostが呼ばれるんだと知った。
実際に公開してみたが目に見える範囲はほとんどHTMLファイル。。。。

http://h0tcakeap1.appspot.com

内容としてはグローバルIPアドレスを取得できるものを作った。

サンプルコード

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class H0tcakeAP1TEST {

 /**
  * @param args
  * @throws IOException 
  * @throws MalformedURLException 
  */
 public static void main(String[] args) throws MalformedURLException, IOException {
  URLConnection uc= new URL("http://h0tcakeap1.appspot.com/h0tcakeap1").openConnection();
  uc.setDoOutput(true);
  OutputStream os = uc.getOutputStream();
  PrintStream ps = new PrintStream(os);
  ps.print("api=ipaddress");
  ps.close();
  //受信
  InputStream is = uc.getInputStream();//POSTした結果を取得
  BufferedReader reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
  StringBuffer sb= new StringBuffer();
  String temp=null;
  while ((temp = reader.readLine()) != null) {
   sb.append(temp);
  }
  reader.close();
  
  System.out.println("IP Adress:"+sb.toString());
  
 }

}


雑記:
MacTypeというフォント関係のソフトをインストールしてみたが素敵だった。

0 件のコメント:

コメントを投稿