——略谈Java web软件如何提供二次开发接口

接手公司的一个Java web软件产品,该软件采用传统的dwr框架。dwr框架相当于一个中间层,使得javascript能够识别Java类对象,进而能够调用Java类对象的方法。该软件要为项目部同事提供二次开发包。

这种方式界面层代码和逻辑实现代码混淆在一起,导致二次开发很难使用。项目部要定制系统,必须得到整个系统的源码。

改造思路是web界面层和接口实现代码进行分层,结构图如下:

具体就是接口实现层封装为后台模块,web界面层封装为web界面模块。页面直接post请求server来显示数据,javascript调用示例代码如下:

function postQuery(){

	//str为参数列表字符串
	str = {categoryId:"2",id:"2",path:"Y:\\UPLOAD_ZIP_PATH/1.zip", type:"c++"};
	var str1 = JSON.stringify(str);
	$.post("http://localhost:8080/PIESoaServer/service/delete",str1,function(data){
		console.log(data);
	});
}

上面的代码解释如下:str ={categoryId:"2",id:"2",path:"Y:\\UPLOAD_ZIP_PATH/1.zip",type:"c++"}; 为参数值列表。categoryId为参数,"2"为对应的参数值,如果参数需要一个数值类型的,则不需要使用双引号包含,数组则采用[]包含起来,比如str ={nodes:[9,20,21],serviceId:47};

后台模块对外不提供源码,web界面模块的源码作为二次开发示例提供给二次开发者。这样方式为二次开发提供了灵活的调用方式,因为web接口无论java、C#还是C++、python等都可以调用。

java学习群669823128

谈一次java web系统的重构思路的更多相关文章

  1. Docker学习笔记三:Docker部署Java web系统

    Docker部署Java Web系统 1.在root目录下创建一个路径test/app mkdir test && cd test&& mkdir app && ...

  2. Java Web系统架构概览

    大型网站系统架构的演进都是随着业务增长不断演进,所有的出发点都是为了满足业务需求.最初访问量下,功能简单时,单体软件可以解决所有问题:后来访问量逐渐增大,功能愈加丰富,此时单体软件的架构逐渐成为开发和 ...

  3. Java Web系统经常使用的第三方接口

    1. Web Service 接口 1.1 接口方式说明和长处 在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为client去调用第三方提供的接口时,大部分时候都是使用 Web  Se ...

  4. Java Web系统常用的第三方接口

    1.    Web Service 接口 1.1 接口方式说明和优点 在笔者的开发生涯中,当作为接口提供商给第三方提供接口时,以及作为客户端去调用第三方提供的接口时,大部分时候都是使用 Web  Se ...

  5. java web系统中时间比sql server中的日期少2天的解决办法

    系统环境 jdk:1.7 数据库:sql server 2008 问题描述 升级1.7之后查询出来的日期就比数据库中的少2天,降回1.6版本的jdk就正常了. 问题原因及解决办法 国内网站有很多不靠谱 ...

  6. java web路径和spring读取配置文件

    此篇博客缘起:部署java web系统到阿里云服务器(ubuntu14.04)的时候,有以下两个问题 找不到自定义的property配置文件 上传图片的时候找不到路径 开发的时候是在windows上的 ...

  7. Web/Java Web项目如何模块化?没有正文,别点

    事情是这样的,两三年前做了几个Java Web项目,由于薪资原因,原主程都离开了. 由于公司不规范,也没有留下正规的开发文档,只有一个源程序在手里.后面的很多系统维护都很被动. 领导就觉得说,这样不好 ...

  8. java 浅谈web系统当中的cookie和session会话机制

    一 Cookie: 1. Cookie翻译为小甜饼,有一种特殊的味道.cookie主要用来在(浏览器)客户端做记号用的.Cookie不属于java,Cookie是一种通用的机制,属于HTTP协议的一部 ...

  9. 浅谈大型web系统架构

    动态应用,是相对于网站静态内容而言,是指以c/c++.php.Java.perl..net等服务器端语言开发的网络应用软件,比如论坛.网络相册.交友.BLOG等常见应用.动态应用系统通常与数据库系统. ...

随机推荐

  1. 调试 ASP.NET Core 2.0 源代码

    在Visual Studio 2017中可以通过符号以及源链接,非常方便对 ASP.NET Core 2.0中源代码进行调试.在这篇文章中,我们将重点介绍如何使用源链接对ASP.NET Core源进行 ...

  2. 好用的前端页面性能检测工具—sitespeed.io

    引言 最近在做HTTP2技术相关调研,想确认一下HTTP2在什么情境下性能会比HTTP1.x有显著提升,当我把http2的本地环境(nginx+PHP)部署完成后进行相关测试时,我遇到了以下问题: ( ...

  3. 面向对象oop

    类和对象 1.什么是类?什么是对象? 1)现实世界是由很多很多对象组成的 基于对象抽出了类 2)对象:真实存在的单个的个体 类:类型/类别,代表一类个体 3)类中可以包含: 3.1)所有对象所共有的属 ...

  4. System.Object简介

    Object中的公共方法解释: 公共方法: Equals: public class Object { public virtual Boolean Equals(Object obj) { //如果 ...

  5. OC实现同步访问属性

    有时候,我们在开发过程中需要对属性的访问进行同步操作,这种属性需要做成原子的,用atomic来修饰属性,即可实现这一点. 如果我们想自己实现,可以按照下面方式写代码: SFPerson.h #impo ...

  6. TypeScript中的怪语法

    TypeScript中的怪语法 如何处理undefined 和 null undefined的含义是:一个变量没有初始化. null的含义是:一个变量的值是空. undefined 和 null 的最 ...

  7. 当 ReactJS 遇到 TypeScript

    由于本人应用项目主要是2B的web应用程序, 所以以下暂不谈react的服务端渲染和react navie, 先说说ReactJS: React 的组件化和  数据单向绑定 的模式(flux) 使应用 ...

  8. Ubuntu安装Jupyter Notebook

    一.Jupyter介绍 Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言.Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支 ...

  9. 使用BigQuery分析GitHub上的C#代码

    一年多以前,Google 在GitHub中提供了BigQuery用于查询的GitHub上的开源代码(open source code on GitHub available for querying) ...

  10. Android的快速开发框架 afinal

    afinal 框架学习: http://www.oschina.net/p/afinal