如何用java编写android后台程序

Python018

如何用java编写android后台程序,第1张

使用J2EE技术或者叫Java Web技术开发一个Web服务器,服务器返回Json数据,android客户端解析json数据,使用http协议和服务器通信,android有相应模块和API。

首先楼主得懂Java后台也就是Java EE,用Servlet搭建Web服务,Serlvet映射一个URL,Android请求这个URL,Servlet处理请求,然后就是Java编程,Web分层、JDBC等技术。服务器返回标准的JSON轻量数据(就是纯文本),Android来解析。

具体技术:

(1)Java Servlet作为Web服务的处理入口;

(2)Java编程编写业务处理程序;

(3)JDBC访问数据库;

(4)Android端的HTTP模块,API;

(5)Android端解析JSON数据;

(6)Servlet或者Java端生成JSON数据;

等楼主技术强了,就可以接触各种框架、EJB技术了。Spring、Spring MVC、Struts、Hibernate,甚至NOSQL、分布式、负载、node.js、模板技术等等。

用freemarker,可以自定义模板,然后用变量替换的方式。你可以看一下这篇文章(不是我写的)http://www.havenliu.com/java/514.html。

其实word是支持html的, 你可以试试把.html的文件名改成.doc。

java后台主要处理业务逻辑层的内容,主要用到的技术有如下类。

servlet+JDBC  纯底层编写 开发周期快 可维护性差

Struts/Struts2+JDBC   基本配置 底层代码需编写

SSH :Struts spring hibernate 配置struts相比较struts2而言麻烦了点 底层代码忽略

SSH2:Struts2 spring hibernate  简洁,使开发人员更加面向于逻辑处理方向,忽略掉底层代码编写

java前端主要处理展示层的内容,处理用户的体验度等内容,主要技术有:

WEB前端从概念上划分为三个层次:结构、表现、和行为。三层相对独立,互不影响。在物理上层面上分别对应HTML、CSS、JS三种不同的的文件格式。

HTML:负责定义网页的结构,内容

CSS:负责内容的展现方式

JS:负责网页关于动态的行为反应

好的层次划分对前端的开发也很关键。显示内容问题的唯一来源应该是html文件定义的,内容展示问题的唯一来源应该是CSS文件定义的,行为问题的唯一来源应该是javascript文件定义的,各司其职相互独立。但是他们是相关的,因为行为和样式无法与结构分离,必须写在同一个文件里。这种情况下,首先还是你要把行为和样式从html标签中分开,然后在html文件中引入。

     实际的开发结构是这样的:

前端开发的核心是HTML + CSS + JavaScript。本质上它们构成一个MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据和实现某种展现逻辑(Controller)。

1)结构层

在java领域,表现层技术主要有三种:jsp、freemarker、velocity。

(1)  jsp(Java Server Pages)

     它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),它实现Html语法中的java扩展(以 <%, %>形式)。从而形成JSP文件,后缀名为(.jsp)。因为java具有跨平台特点, 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP与Servlet一样,是在服务器端执行的,最终都要变.class文件,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

优点:

可以写java代码

支持jsp标签(jsp tag)

支持表达式语言(el)

官方标准,用户群广,丰富的第三方jsp标签库

性能良好,jsp编译成class文件执行,有很好的性能表现

缺点:

编写java代码,如使用不当容易破坏mvc结构。

(2) Freemarker

它生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达式, 标签或者自定义标签等等,然后后台读取这个模板页面,解析其中的标签完成相对应的操作, 然后采用键值对的方式传递参数替换模板中的的取值表达式,做完之后 根据配置的路径生成一个新的html页面, 以达到静态化访问的目的。

模板+数据模型=输出,模板只负责数据在页面中的表现,不涉及任何的逻辑代码,而所有的逻辑都是由数据模型来处理的。用户最终看到的输出是模板和数据模型合并后创建的。

FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或者其他。

优点:

可以彻底的分离表现层和业务逻辑,使用JSP 开发过程中在页面中大量的存在业务逻辑的代码,使得页面内容凌乱,在后期大量的修改维护过程中就变得非常困难。FreeMarker根本不支持Java代码。

可以提高开发效率,JSP在第一次执行的时候需要转换成Servlet类,开发阶段进行功能调适时,需要频繁的修改JSP,每次修改都要编译和转换 。FreeMarker模板技术不存在编译和转换的问题,开发过程中,后端不必在等待界面设计开发人员完成页面原形后,再来开发程序。

对jsp标签支持良好

内置大量常用功能,比如html过滤,日期金额格式化等等

使用表达式语言 (EL)

缺点:

不是官方标准

用户群体和第三方标签库没比jsp丰富

使用FreeMarker后,作为界面开发人员,只专心创建HTML文件、图像以及Web页面的其他可视化方面,不用理会数据;而程序开发人员则专注于系统实现,负责为页面准备要显示的数据。

还有一些像velocity这样较早出现的用于代替jsp的模板语言 ... ...

2) 表现层CSS

结构搭建之后,就是为他们添加样式表属性。它实现的是页面内容和现实样式分离,所有的CSS都是非必需的,就算无法应用CSS或CSS冲突,网页也能够正常访问。

为了管理的方便,可以将不同样式进行拆分,比如可以拆分为全局样式,结构布局样式,色彩样式,文字样式和重置样式。css在开发时代码采用了规范的形式,比如有注释,缩进等,这样,这些文件的大小比较大,为了减少网络流量,提高网页的下载速度,一般发布时需要对javascript和css进行压缩处理,我们将样式文件进行合并压缩,目的是减少与服务器交互的时间和次数。如http://www.jb51.net/tools/cssyasuo.shtml可以在线进行压缩。

样式混合使用选择:

有关整个网站统一的样式代码,放置在独立的样式文件中.css

某些样式不同的页面,除了链接外部样式文件,还需要自定义的样式

某张网页中,部分内容如果需要一种不同,采用内行样式

3) 行为层 javaScript

常见的也是最有名的javascript 框架,其实准确来说应该是库:

(http://www.ibm.com/developerworks/cn/web/1404_wangfx_jsframeworks/)

jQuery

jQuery 是目前用的最多的前端 JAVASCRIPT 类库,它是比较轻量级的类库,对  DOM 的操作也比较方便到位,支持的效果和控件也很多。同时,基于 jQuery 有很多扩展项目,包括 jQuery UI(jQuery 支持的一些控件和效果框架)、jQuery Mobile(移动端的 jQuery 框架)、QUnit(JavaScript 的测试框架)。这些补充使得 jQuery 框架更加完整,而且这些扩展与目前的框架基本都是兼容的,可以交叉使用,使得前端开发更加丰富。

Ext

相比 jQuery,Ext JS 更重量级,有几个兆的文件,使得 Ext 在开发中成为的弊端和累赘。但是,另一方面,在 Ext JS 庞大的文件背后是 Ext JS 强大的功能。Ext JS 的控件和功能可以说强大和华丽到的程度。图表、菜单、特效,Ext JS 的控件库非常丰富,同时它的交互也非常强大,独立靠 Ext JS 几乎就可以取代控制层完成于客户的交互。强大的功能,丰富的控件库,华丽的效果也使得 Ext JS 成为内网开发利器。

YUI

YUI 也有自己的 JavaScript 类库,DOM 操作和效果处理也还比较方便,功能和控件也很齐全,但是相比 jQuery 和 Ext JS 显得比较中庸一些。随着 Yahoo的没落,YUI 也渐渐的被淡化。

   

目前前端框架主要采用 JavaScript+CSS 模式。基于上面的几种javascript库,我们可以基于JQuery框架搭建起一个java web前端系统的框架。如丛林的前端就是COS-UI+jQuery搭建起来的,再利用插件ztree实现品类树在前端的展示。

jquery对javascript的封装

JQuery能大大简化Javascript程序的编写,主要表现:

定位元素

改变元素的内容

显示隐藏元素

修改元素样式

Ajax

获得焦点

为表单赋值

获得表单的值

设置元素不可用

3)  浏览器的渲染

具体内容可看:http://blog.csdn.net/weiguang_123/article/details/41852181