<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    fun

     

    google app engine for java 學習之一

    注冊:http://appengine.google.com/promo/java_runtime

     kickstart: http://code.google.com/appengine/docs/java/gettingstarted/installing.html

    簡單小結一下:

    1. appengine for java開發包相當友好

    2. appengine for java對ide也相當友好

    3. appengine for java的webapp就是一個war

    4. appengine for java開發包使用了geronimo

    5. appengine for java使用了jdo作為數據接口

    6. appengine for java支持gwt

    8. appengine for java可以寫jsp和servlet

    9. appengine for java開發包使用了jetty和javadb?

    ...

    上代碼:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>   
    <%@ page import="java.util.List" %>   
    <%@ page import="javax.jdo.PersistenceManager" %>   
    <%@ page import="com.google.appengine.api.users.User" %>   
    <%@ page import="com.google.appengine.api.users.UserService" %>   
    <%@ page import="com.google.appengine.api.users.UserServiceFactory" %>   
    <%@ page import="guestbook.Greeting" %>   
    <%@ page import="guestbook.PMF" %>   
    <!--copyrigth http://www.bt285.cn  http://www.5a520.cn-
    <html>   
      
    <head>   
        
    <link type="text/css" rel="stylesheet" href="/stylesheets/main.css" />   
      
    </head>   
      
      
    <body>   
      
    <%   
        UserService userService 
    = UserServiceFactory.getUserService();   
        User user 
    = userService.getCurrentUser();   
        
    if (user != null{   
    %>   
    <p>Hello, <%= user.getNickname() %>! (You can   
    <a href="<%= userService.createLogoutURL(request.getRequestURI()) %>">sign out</a>.)</p>   
    <%   
        }
     else {   
    %>   
    <p>Hello!   
    <a href="<%= userService.createLoginURL(request.getRequestURI()) %>">Sign in</a>   
    to include your name with greetings you post.
    </p>   
    <%   
        }
       
    %>   
      
    <%   
        PersistenceManager pm 
    = PMF.get().getPersistenceManager();   
        String query 
    = "select from " + Greeting.class.getName() + " order by date desc range 0,5";   
        List
    <Greeting> greetings = (List<Greeting>) pm.newQuery(query).execute();   
        
    if (greetings.isEmpty()) {   
    %>   
    <p>The guestbook has no messages.</p>   
    <%   
        }
     else {   
            
    for (Greeting g : greetings) {   
                
    if (g.getAuthor() == null{   
    %>   
    <p>An anonymous person wrote:</p>   
    <%   
                }
     else {   
    %>   
    <p><b><%= g.getAuthor().getNickname() %></b> wrote:</p>   
    <%   
                }
       
    %>   
    <blockquote><%= g.getContent() %></blockquote>   
    <%   
            }
       
        }
       
        pm.close();   
    %>   
      
        
    <form action="/sign" method="post">   
          
    <div><textarea name="content" rows="3" cols="60"></textarea></div>   
          
    <div><input type="submit" value="Post Greeting" /></div>   
        
    </form>   
      
      
    </body>   
    </html>  

     

    這是guestbook的jsp文件,麻雀雖小五臟俱全,尤其注意讀數據那塊!

    數據庫可以在\WEB-INF\appengine-generated\local_db.bin中找到。

    再來看看web.xml文件:

    <?xml version="1.0" encoding="utf-8"?>  
    <!DOCTYPE web-app PUBLIC   
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   
     "http://java.sun.com/dtd/web-app_2_3.dtd"
    >  
      
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">  
        
    <servlet>  
            
    <servlet-name>guestbook</servlet-name>  
            
    <servlet-class>guestbook.GuestbookServlet</servlet-class>  
        
    </servlet>  
        
    <servlet-mapping>  
            
    <servlet-name>guestbook</servlet-name>  
            
    <url-pattern>/guestbook</url-pattern>  
        
    </servlet-mapping>  
      
        
    <servlet>  
            
    <servlet-name>sign</servlet-name>  
            
    <servlet-class>guestbook.SignGuestbookServlet</servlet-class>  
        
    </servlet>  
        
    <servlet-mapping>  
            
    <servlet-name>sign</servlet-name>  
            
    <url-pattern>/sign</url-pattern>  
        
    </servlet-mapping>  
      
        
    <welcome-file-list>  
            
    <welcome-file>guestbook.jsp</welcome-file>  
            
    <welcome-file>index.html</welcome-file>  
        
    </welcome-file-list>  
    </web-app>  

    除此之外,appengine還有一個配置appengine-web.xml

  • <?xml version="1.0" encoding="utf-8"?>  
  • <appengine-web-app xmlns="http://appengine.google.com/ns/1.0">  
  •     <application></application>  
  •     <version>1</version>  
  •    <desc>http://www.5a520.cn 小說520網</desc>
  •     <system-properties>  
  •         <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>  
  •     </system-properties>  
  • </appengine-web-app>  
  • posted on 2009-04-20 13:36 fun 閱讀(1586) 評論(0)  編輯  收藏

    導航

    統計

    常用鏈接

    留言簿(11)

    隨筆檔案

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲一区二区三区免费视频| 亚洲日韩精品无码一区二区三区| 在线免费观看亚洲| 99re视频精品全部免费| 久久久亚洲精品视频| 99在线观看精品免费99| 亚洲综合色一区二区三区小说| 四虎国产成人永久精品免费| 内射少妇36P亚洲区| 免费看片在线观看| 亚洲日韩精品无码专区加勒比☆ | 亚洲精品无码专区| 日韩a在线观看免费观看| MM1313亚洲国产精品| 亚洲av区一区二区三| 国产精品免费大片一区二区| 久久亚洲综合色一区二区三区| 97久久免费视频| 亚洲熟女www一区二区三区| 日产乱码一卡二卡三免费| 日韩a毛片免费观看| 久久亚洲国产精品| 台湾一级毛片永久免费 | av午夜福利一片免费看久久| 亚洲精品无码久久一线| 1000部拍拍拍18勿入免费视频下载| 亚洲国产精品午夜电影| 日美韩电影免费看| 青青青国产手机频在线免费观看| 777亚洲精品乱码久久久久久| 成人毛片免费观看视频在线 | 免费无码AV一区二区| 亚洲AV无码一区东京热| 日本一区二区三区免费高清| 美女免费视频一区二区| 亚洲视频在线免费观看| 国产精品无码免费播放| 中国精品一级毛片免费播放| 亚洲人成7777影视在线观看| 亚洲AV伊人久久青青草原 | 久久九九兔免费精品6|