Spring RPC 入门学习(2)-获取Map对象
Spring RPC传递Map用例编写
1. 新建RPC接口类
package com.cvicse.ump.rpc.interfaceDefine;
import java.util.Map;
public interface MapTest {
public Map getByName(String name);
}
2.RPC接口实现类
package com.cvicse.ump.rpc.interfaceImp; import java.util.HashMap;
import java.util.Map; import com.cvicse.ump.rpc.interfaceDefine.MapTest; public class MapTestImp implements MapTest{ @Override
public Map getByName(String name) {
HashMap <String,String>retMap = new HashMap<String, String>();
retMap.put("name", name);
retMap.put("id", name+"_001");
retMap.put("age", name+"_25");
retMap.put("birthday", name+"_19880923");
retMap.put("address", name+"_山东济南"); return retMap;
} }
3. 搭建RPC和SPRING配置文件,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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>SpringRPC</display-name> <!-- Spring相关配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!-- RPC Servlet相关配置 -->
<servlet>
<servlet-name>rpcServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-service.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>rpcServlet</servlet-name>
<url-pattern>/rpcService/*</url-pattern>
</servlet-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4. RPC配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <description>Spring Service Configuration</description> <bean id="mapTest" class="com.cvicse.ump.rpc.interfaceImp.MapTestImp" />
<bean id="/MapTestImp" class="com.googlecode.jsonrpc4j.spring.JsonServiceExporter">
<property name="service" ref="mapTest" />
<property name="serviceInterface" value="com.cvicse.ump.rpc.interfaceDefine.MapTest" />
</bean> <bean
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> </beans>
5.Spring配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>Spring Context Configuration</description>
</beans>
6.引入相应的jar和js文件;
7.编写jsp文件:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring RPC TEST</title>
<script src="js/jsonrpcjs-0.1.8.min.js"></script>
<script type="text/javascript">
var rpc = new jsonrpc.JsonRpc("rpcService/MapTestImp"); function ceshi(){
var name = document.getElementById("name").value;
rpc.call('getByName',name, {
success : callback,
failure : errorcallback,
}); function callback(r){
var name=r.name;
var age = r.age;
alert(age);
}
function errorcallback(r){
alert(r);
}
} </script>
</head>
<body> <h1>Spring RPC 测试</h1>
请输入姓名:<input type="text" id="name" size="17">
<input type="button" value="Hello" id="but1" onclick="ceshi()">
</body>
</html>
如果不引入rpc的js文件,只用jquery的ajax实现,代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spring RPC TEST</title>
<script src="js/jquery-1.11.1.min.js"></script>
<script type="text/javascript"> var url = "http://localhost:8080/SpringRpc2/rpcService/MapTestImp";
$(document).ready(
function(){ $("#but2").click(//添加点击事件
function(){
var name = $("#name").val();//获取文本框输入的内容 //p必须按照以下格式,id代表一次请求;method代表要调用的函数;params代表函数的参数
var p = {
"id" : 3,
"method" : "getByName",
//"params" : [ {"id":12,"name":"aaa"} ]
"params" : [ name ]
}; $.ajax( {
type : "post",
url : url,
dataType : "json",
data : JSON.stringify(p),//转JSON
contentType : "application/json; charset=UTF-8",
success : function(msg) {
var retValue = msg.result;
alert("Data Saved: "+retValue.address );
},
error:function(error){
alert("查询失败");
}
});
} );
} ); </script>
</head>
<body> <h1>Spring RPC 测试</h1>
请输入姓名:<input type="text" id="name" size="17"> <input type="button" value="测试2" id="but2">
</body>
</html>
工程源码:https://yunpan.cn/cP5JwPxgXyRER (提取码:a253)
Spring RPC 入门学习(2)-获取Map对象的更多相关文章
- Spring RPC 入门学习(3)-获取Student对象
Spring RPC传递对象. 1. 新建RPC接口:StudentInterface.java package com.cvicse.ump.rpc.interfaceDefine; import ...
- Spring RPC 入门学习(3)-插入Student对象
Spring RPC 向后台传递对象 1. 新建RPC接口:StudentInterface.java package com.cvicse.ump.rpc.interfaceDefine; impo ...
- Spring RPC 入门学习(1)-HelloWorld入门
Spring搭建RPC环境 第一,下载所需要的jar包,下载地址:https://yunpan.cn/cPErQeANrSMyB (提取码:63e5),见下图: 第二,新建动态WebProject,把 ...
- 转:el表达式获取map对象的内容 & js中使用el表达式 & js 中使用jstl 实现 session.removeattribute
原文链接: ①EL表达式取Map,List值的总结 ②在jsp中使用el表达式通过键获得后台的一个map<Long,String>的值 ③在javascript中使用el表达式(有图有真相 ...
- 在Spring应用中创建全局获取ApplicationContext对象
在Spring应用中创建全局获取ApplicationContext对象 1.需要创建一个类,实现接口ApplicationContextAware的setApplicationContext方法. ...
- Spring Boot入门学习
1. Spring Boot概述 1.1.什么是Spring Boot SpringBoot是一个可使用Java构建微服务的微框架.是Spring框架及其社区对"约定优先于配置"理 ...
- 将Spring容器跟随系统启动并获取容器对象
将Spring容器随系统启动的方法: 在web.xml中配置监听器,监听的对象为ContextLoaderListener <listener> <listener-class> ...
- spring mvc中几种获取request对象的方式
在使用spring进行web开发的时候,优势会用到request对象,用来获取访问ip.请求头信息等 这里收集几种获取request对象的方式 方法一:在controller里面的加参数 public ...
- Java反射学习-2 - 获取Class对象的三种方式
package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import ...
随机推荐
- 安装.Net Framework 4.6.2时出现“无法建立到信任根颁发机构的证书链”解决方法
在安装Microsoft .NET Framework 4.6.2脱机包时提示 无法建立到信任根颁发机构的证书链 实际上是要安装一个根证书.解决方案如下(因无法贴链接,可百度搜索“mamicode.c ...
- ccf--20140903--字符串匹配
本题思路简单 题目和代码如下: 问题描述 试题编号: 201409-3 试题名称: 字符串匹配 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给出一个字符串和多行文字,在这些 ...
- IDEA设置注释的颜色
IDEA默认的灰色注释确实让人看不清,但如果把灰色调成黑色又和代码的颜色相同了,所以,不如给注释添加上绿色的背景,又护眼又容易分辨 新版本的IDEA打开Settings——Editot——Color ...
- Java实现数据库的读写分离
引言 1.读写分离:可以通过Spring提供的AbstractRoutingDataSource类,重写determineCurrentLookupKey方法,实现动态切换数据源的功能:读写分离可以有 ...
- java集合类List
1.List Vector:线程安全的. ArrayList:适合查找与顺序添加. LinkedList:适合随机插入与删除. 1.1ArrayList与LinkedList的add添加 1.1.1A ...
- WPFのBorder的用法
border介绍: 下面是StackPanel中,一个简单的,具有轻微圆角的边框,围绕在一组按钮外面: <Border Margin="5" Padding="5& ...
- Smith Numbers POJ - 1142 (暴力+分治)
题意:给定一个N,求一个大于N的最小的Smith Numbers,Smith Numbers是一个合数,且分解质因数之后上质因子每一位上的数字之和 等于 其本身每一位数字之和(别的博客偷的题意) 思路 ...
- 【转】字符编码笔记:ASCII、Unicode、UTF-8 和 Base64
1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态(-128~127),这被称为一 ...
- windows下elasticsearch6.X安装IK分词器
文章来源:https://www.cnblogs.com/hts-technology/category/1167823.html (一)到官网下载https://github.com/medcl/e ...
- day16 Python 函数嵌套函数和作用域
#函数的作用域只跟函数声明时定义的作用域有关,跟函数的调用位置无任何关系 name = 'alex' def foo(): name='linhaifeng' def bar(): #name='wu ...