很久以前就注意到了Google app engine,但是一开始它只支持Python,我又从来没接触过Python,索然对GAE很喜欢,但是仍感觉很遗憾。由于在上学,课业负担也很大,所以就放开了它一段时间。后来无意间在在一个网站上看到GAE支持Java了,这让我感到欣喜,因为我这时已经选定Java作为我以后的方向,于是又打开GAE的网站,下了SDK及文档,写了一个HelloWorld的程序,感觉还不错!后来我想在GAE基础上搭建一个博客,顺便来练一下自己的变成能力!由于我还是个Java新手,于是试图在网上找个能运行在GAE上的Java Blog程序,以供参考。可能是GAE支持Java的时间还不长,在网上很难找到合适的。由于本人水平所限,只能硬着头皮,一行一行代码的去写了。由于当时我对Java web的掌握程度只到达达Servlet,开发的过程是很枯燥的,后来由于种种原因,不得不把它在一边。
又重新拾起它是在两个月前,由于意识到我的Java水平,以及在学校学习Java的局限,我向学校申请出来培训Java,以此希望能在毕业的时候能找个程序员的工作!我想在培训的过程中,根据培训的进程,不断完善我的Blog!
在培训进行到一个月的时候,我们接触到了Struts 1.x,老师给我们讲了Struts的核心代码,并模拟了它的工作原理!由于先前看到网上的评论,GAE对Struts支持还不是很好(这是GAE的种种限制导致的),于是我想,何不专门写一个运行在GAE的框架,来简化自己开发Blog的工作!
真正开始把自己的想法付诸实践是在一个星期前,到目前为止已实现了它的一个功能----捕获用户的请求--->为ActionForm赋值,执行Action中的execute方法。
不论在功能上还是在代码的规范上miniStruts仍然是个“未降生的婴儿”(它还没有正式的名字,暂且以此为名,待他足够完善的时候再给取个合适的名字吧),但你仍然可以像使用Struts一样使用上述的功能,我的知识还不足以让它可以和Struts相媲美,但是我有种期待,希望它能够被广大喜爱GAE的同僚所使用。我急着把它拿出来,希望对它感兴趣的朋友一起来维护他,让他能够更快的增长。
本文的的附件是它的源代码,里面有简单的注释,希望看到代码的朋友原谅我写代码的水平!
下面是它的一个示例程序,以及部署的方法。
注意:次示例运行在MyEclipse下,在MyEclipse开发GAE的配置工作请参考Goole app engine的文档!
1 部署miniStruts
1.1 将附件中的代码解压后拷贝到你工程的目录下,建议放在单独的源目录下
1.2 导入用到的包:
miniBlog 的核心用到了dom4j-1.6.1.jar , jaxen-1.1-beta-6.jar,在附件中一并提供,解压附件, 导入到您的工程下
1.3 在web.xml中配置miniStruts,使它可以工作,web.xml示例如下:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>net.xioyo.myblog.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>net.xioyo.myblog.action.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/servlet/Login</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
2 示例程序
2.1 在MyEclipse下相应的包下建立UserForm的代码文档,代码如下
package net.xioyo.myblog.form;
import net.xioyo.myblog.action.ActionForm;
public class UserForm extends ActionForm{
private String name;
private String psw;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
}
2.2 在MyEclipse下相应的包下建立Action的代码文档,代码如下
package net.xioyo.myblog.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.xioyo.myblog.form.UserForm;
import net.xioyo.myblog.perdure.User;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset='utf-8'");
User user=new User();
UserForm uf=(UserForm)form;
user.setUsername(uf.getName());
user.setPsw(uf.getPsw());
response.getWriter().print("用户名:"+user.getUsername()+"\n密码:"+user.getPsw());
return null;
}
}
2.3 在/war/WEB_INFO/下建立struts-config.xml文件,xml的格式遵从Struts 1.3的规范,示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<struts-config>
<form-beans>
<form-bean name="userForm" type="net.xioyo.myblog.form.UserForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/login" name="userForm" type="net.xioyo.myblog.action.LoginAction" ></action>
</action-mappings>
</struts-config>
2.6 建立登陆表单保存为login.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login</title>
</head>
<body>
<form action="/login.do" method="post">
<input type="text" name="name" /><br/>
<input type="password" name="psw"/>
<input type="submit" value="登陆" />
</form>
</body>
</html>
2.5运行程序:
启动Appserver之后,在浏览器中输入:http://localhost:8080/login.jsp,输入信息,点击提交,即可看到运行结果
不能下载源码的请发邮件到我的邮箱索取:zfh.521@163.com
本文原创 引用请注明原文地址
分享到:
相关推荐
标题 "Packt.Google.App.Engine.Java.and.GWT.Application.Development.Source.Code" 暗示了这是一个关于使用Java和GWT在Google App Engine上开发应用程序的源代码包。这为我们提供了几个关键知识点: 1. **Google ...
基于Google.App.Engine(GAE)的Java和GWT应用开发
3. **appengine-web.xml配置**:这个文件是GAE应用的配置文件,需要正确设置应用ID、版本号、安全限制、线程池大小等参数。 4. **JDO或JPA配置**:根据项目需求选择合适的持久化策略,并在相应的配置文件中指定...
下载地址为:http://code.google.com/intl/zh-CN/appengine/downloads.html。选择对应版本的安装包进行安装。 #### 上传程序至GAE 1. **下载并配置应用程序**:为了方便演示,可以下载一个预构建好的示例应用程序...
在谈论《云端代码Google App Engine编程指南》之前,我们需要先了解一下Google App Engine(GAE)平台的背景知识。Google App Engine(简称GAE)是由Google公司提供的一个无服务器(serverless)的云计算平台,该...
### 知识点一:Google App Engine (GAE) 概览 - **定义与功能**:Google App Engine (GAE) 是一个由谷歌提供的云平台服务,它允许开发者构建可扩展的网络应用程序。该平台提供了自动化的资源管理和高可用性,使...
from google.appengine.ext.webapp.util import run_wsgi_app class HelloWorld(webapp.RequestHandler): def get(self): self.response.out.write('Hello, world!') application = webapp.WSGIApplication([('/...
1. Eclipse开发环境的安装和配置:文中提到了需要在Eclipse中安装特定的插件,首先需要下载Eclipse IDE,推荐下载的是“eclipse Mars”版本,这表明了特定版本的Eclipse可能更适合于Google App Engine的开发环境。...
google_appengine_1.9.10 for linux 发布于2014-08-28 To install on Linux: Unzip the App Engine SDK file you downloaded (google_appengine_1.9.10.zip), for example: unzip google_appengine_1.9.10.zip ...
from google.appengine.ext.webapp.util import run_wsgi_app class MainPage(webapp.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('Hello,...
**Google App Engine (GAE) API 大全** Google App Engine 是一个托管平台,它允许开发者使用特定的API和框架来构建、部署和运行Web应用程序。这个平台支持多种编程语言,其中Java是其中之一。在本指南中,我们将...
【Google App Engine 简介】 Google App Engine 是谷歌推出的一个云计算平台,它允许开发者构建和托管网络应用程序。作为一款免费的虚拟主机服务,它不仅提供了存储空间、带宽和计算资源,还运行在谷歌庞大的全球...
该书主要介绍了如何利用Google App Engine(GAE)平台进行Web应用开发。Google App Engine是一个由谷歌提供的云服务平台,它允许开发者在谷歌的基础架构上构建和部署应用程序。 #### 什么是Google App Engine? ...
Google App Engine (GAE) 是由谷歌提供的一项云服务,允许开发者在其基础设施上部署网络应用。它旨在简化应用开发过程,使得开发者能够专注于编写高质量的代码,而无需担心底层基础设施的维护问题。 #### 二、...
clock.rar 这是我今天做的一个基于google app engine写的一个在该平台上开发app的示例,通过该示例的学习,我们可以很快上手学会怎样在GAE上开发属于你的应用程序了,希望对大家有用!
1. 创建实体类:首先,你需要创建一个Java实体类,它继承自`com.google.appengine.api.datastore.Entity`或实现`com.google.appengine.api.datastore.KeyAware`接口。这个类将代表你在Datastore中的实体。 2. 序列...
Google App Engine Docs,Google App Engine开发人员指南(Java版),简体中文离线文档,起始页为主目录下的appengine\docs\docs.html
Google App Engine(GAE)是谷歌提供的一种云计算平台,它允许开发者构建并托管Web应用程序,无需管理和维护服务器硬件。这个平台支持多种编程语言,包括Python、Java、Go和PHP,为开发者提供了强大的服务,如数据...