jsonrpc的使用

注意:要事先将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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值