码迷,mamicode.com
首页 > 移动开发 > 详细

<Chapter 2>2-2-2.开发Java应用(Developing a Java App)

时间:2015-09-12 18:58:05      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:

App Engine的Java网络应用使用了Java Servlet标准接口来和应用服务器交互。一个应用由一个或多个servlet类组成,每个都扩展了(extend)servlet基类。使用一个叫做部署描述(deployment descriptor)的标准配置文件,也就是web.xml,Servlets被映射到URLs。当App Engine接受到一个Java应用请求时,它会根据URL和部署描述来决定使用哪个servlet类,实例化这个类,然后调用servlet对象中的恰当的方法。

Java应用所有的文件,包括编译的Java类,配置文件,静态文件,用一个叫做Web Application Archive或”WAR“的标准目录结构来管理。在WAR目录中的所有东西都被部署到App Engine上。通常在你的开发工作流程中使用一个自动化构建过程或可识别WAR的开发工具根据一组源代码文件来构建WAR的内容。

如果你使用带有Google插件的Eclipse IDE,你可以使用Web Application向导来创建一个新项目。单击Google下拉按钮,然后选择New Web Application Project。(可选择的是,从File菜单选择New,然后是Web Application Project)在这个打开的窗体中,输入一个项目名(比如Clock)和一个包名(比如clock)。

不勾选“Use Google Web Toolkit"复选框,并确保“Use Google App Engine”复选框被勾选。(如果你让GWT复选框被选中,这个新项目将会用GWT启动文件创建。这是很酷的,但是它超出了本章的范围)图2-8显示了创建Clock应用的完成后的对话框。单击Finish来创建这个项目。

如果你不使用Google Plugin for Eclipse,你需要另外创建这个目录和文件。如果你已经对Java网络开发很熟悉,你可以使用你已有的工具和处理(tools and processes)来生成最终的WAR。这个小节的剩余部分,我们假定你使用由Eclipse插件创建的目录结构。

图2-9显示了这个项目文件的结构,在Eclipse包浏览窗口中被描述了。

这个项目的根路径(Clock)包含两个主要的子目录:src和war。src/目录包含项目所有的类文件,并使用了Java包结构。在clock包路径中,Eclipse在文件clock/ClockServlet.java中创建了一个叫做ClockServlet的Servlet类的源代码。

war/目录包含应用的完整的最终内容(the complete final contents)。Eclipse从src/自动编译源代码并将编译了的类文件放到war/WEB-INF/classes/目录,在Eclipse的包浏览窗口中默认是隐藏的。Eclipse也自动拷贝src/META-INF/的内容到war/WEB-INF/classes/META-INF中。其他的所有内容,比如CSS或JavaScript文件,必须在war/目录的预定位置中被创建。

让我们用一个简单的显示当前时间的Servlet开始我们的时钟应用。打开并编辑src/clock/ClockServlet.java文件(有必要的话,创建它),给它类似于例2-9的内容。

例2-9.一个简单的Java servlet

package clock

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDataFormat;
import java.util.Date;
import java.util.SimpleTimeZone;
import javax.servlet.http.*;

@SuppressWarning("serial")
public class ClockServlet extends HttpServlet{
    public void doGet(HttpServletRequest req,HttpServletReponse resp)
                     throw IOException{
              SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSS");
              fmt.setTimeZone(new SimpleTimeZone(0,"");

              resp.setContentType("text/html");
              PrintWriter out = resp.getWriter();
              out.println("<p>The time is: " + fmt.format(new Date()) + "</p>");
    }
}

 

<Chapter 2>2-2-2.开发Java应用(Developing a Java App)

标签:

原文地址:http://www.cnblogs.com/niaomingjian/p/4803295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!