`

jsonrpc的使用

    博客分类:
  • ajax
 
阅读更多
注意:要事先将jsonrpc.jar和jsonrpc.js放到相关目录下

1.TestBean.java
 
package com.bean;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestBean {
	
	public String sayHello(String name){
		return name+"你好!";
	}

	public  String citcleArea(double r,String unit){
		DecimalFormat dfmormat = new DecimalFormat("####.00");
		return dfmormat.format(r*r*Math.PI)+"平方"+unit;
	}
	
	public String serviceDate(){
		Date date = new Date();
		SimpleDateFormat sfd = new SimpleDateFormat("yyyy年mm月dd hh:mm:ss");
		return sfd.format(date).toString();
	}
	
	public String[][] stringArray(int row,int col){
		
		String[][] array = new String[row][col];
		for(int i = 0 ; i <row;i++){
			for(int j  = 0 ; j < col; j ++){
				array[i][j] = "第"+(i+1)+"行,第"+(j+1)+"列";
			}
		}
		return array;
	}
}


2.index.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:useBean id="JSONRPCBridge" scope="session"
	class="com.metaparadigm.jsonrpc.JSONRPCBridge" />
<jsp:useBean id="testBean" class="com.bean.TestBean" />
<%
  JSONRPCBridge.registerObject("testBean",testBean);
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>My JSP 'index.jsp' starting page</title>
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<script type="text/javascript" src="jsonrpc.js">
</script>
		<script type="text/javascript">
jsonrpc = new JSONRpcClient("JSON-RPC");

function callServer() {
	myName = document.getElementById("myName").value;
	if (myName == "") {
		window.alert("请输入姓名!");
		return;
	}
	window.alert(jsonrpc.testBean.sayHello(myName));
}

function callc() {
	var radius = document.getElementById("radius").value;
	var unit = document.getElementById("unit").value;
	if (radius == "") {
		window.alert("请输入半径!");
		return;
	}
	if (unit == "") {
		window.alert("请输入单位!");
		return;
	}

	var result = jsonrpc.testBean.citcleArea(radius, unit);
	document.getElementById("area").value = result;
}

function getNow() {
	var result = jsonrpc.testBean.serviceDate();
	document.getElementById("now").value = result;
}

function createTable() {
	var rows = document.getElementById("rows").value;
	var columns = document.getElementById("columns").value;
	if (rows == "") {
		window.alert("请输入行数!");
		return;
	}
	if (columns == "") {
		window.alert("请输入列数!");
		return;
	}
	var result = jsonrpc.testBean.stringArray(rows, columns);
	for ( var i = 0; i < result.length; i++) {
		tableRow = document.getElementById("table1").insertRow(-1);
		for ( var j = 0; j < result[i].length; j++) {
			tableCell = tableRow.insertCell(-1);
			tableCell.innerHTML = result[i][j];
		}
	}
}
</script>
	</head>
	<h2>
		json-rpc实例
	</h2>
	<hr>
	请输入姓名:
	<input type="text" id="myName">
	<input type="button" value="问好" onclick="callServer();">
	<br>
	<br>

	请输入圆的半径:
	<input type="text" id="radius" size="6">
	单位:
	<input type="text" id="unit" size="4">
	面积为:
	<input type="text" id="area" readonly="true" size="12">
	<input type="button" value="计算" onClick="callc()">
	<br>
	<br>

	服务器当前时间:
	<input type="text" id="now" readonly="true" size="30">
	<input type="button" value="取得时间" onClick="getNow()">
	<br>
	<br>

	请输入表格的行列数:
	<input type="text" id="rows" size="4">
	行
	<input type="text" id="columns" size="4">
	列
	<input type="button" value="生成表格" onClick="createTable()">
	<br>
	<table id="table1" border="1" width="500" bgcolor="#eeeeee"></table>
	<br>

	<body>
	</body>
</html>


3.web.xml
 
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
     <servlet-name>JSONRPCServlet</servlet-name>
     <servlet-class>com.metaparadigm.jsonrpc.JSONRPCServlet</servlet-class>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>JSONRPCServlet</servlet-name>
    <url-pattern>/JSON-RPC</url-pattern>
  </servlet-mapping>
</web-app>

分享到:
评论

相关推荐

    jsonrpc-frontend:前端应用程序发送 json-rpc 请求进行测试

    压缩包内的"说明.txt"可能是项目文档的一部分,详细解释了如何使用jsonrpc-frontend库,包括安装步骤、API接口、示例代码等。而"jsonrpc-frontend-master"则可能是一个Git仓库的克隆,包含了源代码、示例、测试用例...

    jsonrpc-c-master 基于 json rpc 1.0 纯C开发的服务端代码和示例

    使用"jsonrpc-c-master"进行开发通常包括以下几个步骤: 1. **理解库API**: 阅读库的头文件和文档,了解如何初始化服务器、注册处理函数、接收和发送JSON-RPC消息。 2. **实现业务逻辑**: 编写处理特定RPC方法的函数...

    JSONRPC

    2. **方法调用**:JSONRPC使用函数调用语义,而RESTful基于HTTP方法(GET、POST等),前者更直观,后者更符合Web原则。 3. **错误处理**:JSONRPC内置错误处理机制,RESTful需要自定义错误响应。 4. **版本控制**:...

    JsonRPC, 简单的Json RPC PHP客户机/服务器只.zip

    JsonRPC, 简单的Json RPC PHP客户机/服务器只 JsonRPC PHP客户端和服务器一个简单的json rpc客户机/服务器。 特性仅限 json rpc 2.0服务器支持批处理请求和通知基于身份验证和IP的客户端限制自定义中间件完全单元...

    jsonrpc4j+springboot+maven实例

    &lt;artifactId&gt;jsonrpc4j &lt;version&gt;1.5.0 &lt;groupId&gt;javax.portlet &lt;artifactId&gt;portlet-api &lt;version&gt;2.0 Service代码: @JsonRpcService("/member") public interface MemberService { ... } 因为是基于...

    JSONRPC+JSON+Java

    JSONRPC(JSON Remote Procedure Call)是一种轻量级的远程过程调用协议,它使用JSON(JavaScript Object Notation)作为数据交换格式。JSON因为其简洁、易于理解和解析的特性,广泛应用于网络通信和数据交换。JSON...

    ajax jsonrpc包的使用

    之后,引入 `jsonrpc.js`,这样 JavaScript 就能使用 JSON-RPC 功能了。 4. **准备服务器端 JavaBean**:编写你需要暴露给客户端调用的 JavaBean 或服务类。这些类的方法将成为 JavaScript 中可以调用的远程方法。 ...

    jsonrpc4j整合Spring+Maven轻量级远程调用

    使用这个客户端,你可以像调用本地方法一样调用远程服务,JSONRPC4J会自动处理请求的构建和响应的解析。 7. **错误处理和异常转换** JSONRPC4J支持错误码和错误消息的传递,当服务端抛出异常时,客户端可以通过...

    fastapi-jsonrpc:基于fastapi的JSON-RPC服务器

    import fastapi_jsonrpc as jsonrpc from pydantic import BaseModel from fastapi import Body app = jsonrpc . API () api_v1 = jsonrpc . Entrypoint ( '/api/v1/jsonrpc' ) class MyError ( jsonrpc . Base...

    scrapy-jsonrpc, Scrapy对使用 JSON RPC控制spider的扩展.zip

    scrapy-jsonrpc, Scrapy对使用 JSON RPC控制spider的扩展 爬虫 jsonrpcScrapy jsonrpc是一个扩展,通过 json rpc控制一个正在运行的爬虫网络爬虫。 服务通过协议提供对Crawler对象的访问。安装使用 pip 安装 scrapy-...

    JsonRpc.rar_C++ jsonrpc_JSON_JsonRpc.rar_json-rpc _用jsonrpc封装

    你提供的"JsonRpc.rar"包含了C++实现的JSON-RPC封装,下面我们将深入探讨这个主题。 1. **JSON-RPC基本概念**: JSON-RPC允许客户端通过发送JSON格式的数据到服务器,请求执行特定的方法,并可能接收到响应结果。...

    jsonrpc4j-0.27(包含jar,sources,javadoc)

    总的来说,JSONRPC4J是一个强大且易于使用的工具,可以帮助Java开发者轻松地实现在不同系统间进行JSON-RPC通信。通过这个压缩包提供的jar、源码和API文档,开发者可以迅速集成和利用JSONRPC4J,提升项目的跨系统通信...

    Jsonrpc4j+Spring自动扫描配置

    当我们将Jsonrpc4j与Spring结合使用时,我们可以利用Spring的自动化配置能力来简化Jsonrpc4j的集成过程,从而更高效地构建分布式系统。 首先,让我们深入理解Jsonrpc4j的核心概念。JSON-RPC是一种轻量级的远程调用...

    jsonrpc测试工具testjsonrpc

    Test-Jsonrpc是一个专门用于测试JSON-RPC接口的工具,主要针对JavaScript开发者,它可以帮助开发者验证JSON-RPC服务的正确性,确保服务端提供的方法能够正确响应客户端的请求。 在JavaScript开发中,测试是保证代码...

    使用jsonrpc

    例如,在Java中,有诸如jsonrpc4j这样的库,它提供了一套完整的解决方案,包括序列化、网络传输和处理等。在Python中,有像SimpleJSONRPCServer和jsonrpclib这样的工具。这些库通常都提供了简单的API,使得开发者...

    go-jsonrpc-websocket.rar

    在本文中,我们将深入探讨如何使用Go语言和jsonrpc库来构建一个基于Websocket的客户端,以便与服务端进行交互并处理接收到的通知消息。首先,让我们了解这些关键概念: 1. **Go语言(Golang)**:由Google开发的...

    Laravel开发-laravel-jsonrpc

    1. **安装依赖**:首先,你需要安装 Laravel JSON-RPC 的服务提供者,如 `swooletw/laravel-jsonrpc`。通过 Composer 安装: ``` composer require swooletw/laravel-jsonrpc ``` 2. **配置服务提供者**:在 `...

    PyPI 官网下载 | wsgi-jsonrpc-0.2.9pre.tar.gz

    **PyPI 官网下载 | wsgi-jsonrpc-0.2.9pre.tar.gz** PyPI(Python Package Index)是Python社区广泛使用的软件包仓库,它提供了大量的...通过了解和熟练使用wsgi-jsonrpc,可以提升你的Python Web应用开发效率和质量。

    springboot jsonrpc server

    非常适合java springboot好用的jsonrpc服务。 客户端调用: Content-Type:application/json {"id":"1","jsonrpc":"2.0","method":"multiplier","params":[5,8]} 服务端返回:{ "jsonrpc": "2.0", "id": "1", ...

    Express中间件express-jsonrpc2.zip

    安装npm install express-jsonrpc2使用var path = require('path'),  express = require('express'),  app = express(); var JsonRPC = require('express-jsonrpc2'),  PropTypes = JsonRPC....

Global site tag (gtag.js) - Google Analytics