5just自用框架---客户端的编写
架构使用
客户端:
客户端第一步:在web项目中的src里创建src_config.xml内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<load-url>d:/load</load-url> 用来配置文件存放路径的
<remote id="operation">
<url>jnp://localhost</url>
<beanPath>OperationBean/remote</beanPath>
<contextfactory>org.jnp.interfaces.NamingContextFactory
</contextfactory>
<safe>false</safe>
</remote>
<remote id="checkupdate"> 配置客户端需要调用的接口这些都做好了不需要改变
<url>jnp://localhost</url>
<beanPath>CheckUpdateBean/remote</beanPath>
<contextfactory>org.jnp.interfaces.NamingContextFactory
</contextfactory>
<safe>false</safe>
</remote>
<remote id="downloadfile">
<url>jnp://localhost</url>
<beanPath>DownloadFileBean/remote</beanPath>
<contextfactory>org.jnp.interfaces.NamingContextFactory
</contextfactory>
<safe>false</safe>
</remote>
<loads-on> 这个节点比较重要是配置所有需要代理的类
<item sleep="10000">home</item> sleep为代理类更新响应的时间,
home是服务器端loadconfig.xml中配置的节点,
这样就可以通过代理调用那包里的所有的类了
<item sleep="15000">core</item>
</loads-on>
<use-data-soruce use="true">linuxsir</use-data-soruce>
<configuration> 远程调用的属性文件配置区块
<item id="home" sleep="10000">home</item> 这里的id是需要初始化的标志
sleep是通知时间.值内的home为服务器端
</configuration>
</config>
客户端第二步:初始化Jsp的类层
例:com.just.init.Index,这个类主要负责调用代理类获取数据
package com.yourcompany.struts;
public class Index {
private Object object;
public Object getObject() {
return object;
}
public void setObject(Object object) {
this.object = object;
}
public void init(HttpServletRequest request){
String classname =request.getParameter("classname");
RemoteObject rb = new RemoteObject(classname);
request.setAttribute("id","150");
this.object = rb.constructor(new Object[]{request});
}
}
注意:1)RemoteObject rb = new RemoteObject(classname);
命名方式为服务器端 dbconfig.xml里 的
<hostname="core"><package>org.src.load.core</package></host>
这个节点里的属性名称为name的值 简写为:name+类名称全部小写
例如:org.src.load.core.home.Chui这个类需要调用它那传入的类
名称就为corechui
2)下面Jsp迭代的object就是这个类的属性值object,就是远程代理对象.RemoteObject("corechui");
客户端第三步:创建Jsp表示层
<jsp:useBean id="sf" class="com.yourcompany.struts.Index"></jsp:useBean>
<%sf.init(request);%>
<f:forEach begin="1" step="10" var="sfs" items="${sf.object.object.address}" varStatus="hss">
${sfs.name}${hss.index}
</f:forEach>