📄 corbaclient.java
字号:
import ex5.*;
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
import org.omg.PortableServer.*;
import java.io.*;
import java.util.StringTokenizer;
import java.util.*;
public class CORBAClient{
static Service serviceimpl;
String a = "Registration input 1 "+"\r\n"+"login input 2" +"\r\n"+
"quit input quit" + "\r\n";
String b = "Adding Items input 1"
+"\r\n"+ "Querying Items input 2" + "\r\n"+
"Deleting Items input 3" + "\r\n"+
"Clearing Items input 4" + "\r\n"+
"Logout input logout";
String username = null;
String password = null;
String label = null;
String start = null;
String end = null;
BufferedReader cmd =
new BufferedReader(new InputStreamReader(System.in));
String cmdMessage;
/**
* 用户login之后,进行选择的方法
*/
public void Inselect(){
try{
do{
System.out.println(b);
cmdMessage=cmd.readLine();
if(cmdMessage.equals("1")){//插入list
System.out.println("input your label");
label = cmd.readLine();
System.out.println("input your start time 格式:yyyy-MM-dd");
start=cmd.readLine();
System.out.println("input your end time 格式:yyyy-MM-dd");
end = cmd.readLine();
if(compareDate(start,end)){
cmdMessage = serviceimpl.addItems(username, password, label,start, end);
System.out.println(cmdMessage);
System.out.println("加入成功");
}else
System.out.println("加入失败");
}else if(cmdMessage.equals("2")){//列出对应时间的list
System.out.println("input your start time to look for 格式:yyyy-MM-dd");
start=cmd.readLine();
System.out.println("input your end time to look for 格式:yyyy-MM-dd");
end = cmd.readLine();
if(compareDate(start,end)){
cmdMessage = serviceimpl.queryItems(username, password,start, end);
if(cmdMessage.equals(""))
System.out.println("没有相应的items哦!");
System.out.println(cmdMessage);
}else System.out.println("请检查日期");
}else if(cmdMessage.equals("3")){//删除 对应的一个list
System.out.println("input your id");
cmdMessage = cmd.readLine();
cmdMessage = serviceimpl.deleteItems(username, password, Integer.parseInt(cmdMessage));
System.out.println(cmdMessage);
System.out.println("删除成功");
}else if(cmdMessage.equals("4")){//清除所有的list
System.out.println("Press Y to clear all Items");
cmdMessage = cmd.readLine();
if(cmdMessage.equals("Y"))
{
cmdMessage = serviceimpl.clearItems(username, password);
System.out.println(cmdMessage);
System.out.println("清除成功");
}
}
}while( cmdMessage.equals("logout")==false);//logout
}catch(Exception e){
e.printStackTrace(System.out);
}
}
/**
* 注册和登陆和退出的选择
* @param serviceimpl
*/
public void choices(Service serviceimpl)
{
try{
do{
System.out.println(a);
cmdMessage=cmd.readLine();
if(cmdMessage.equals("1")){//注册新用户
System.out.println("input your name: ");
username = cmd.readLine();
System.out.println("input your password: ");
password = cmd.readLine();
if(serviceimpl.register(username, password))
System.out.println("注册成功");
else System.out.println("注册失败,用户名可能已经存在");
}else if(cmdMessage.equals("2")){//登陆
System.out.println("input your name: ");
username = cmd.readLine();
System.out.println("input your password: ");
password = cmd.readLine();
if(serviceimpl.login(username, password))
{
System.out.println("登陆成功");
Inselect();
}
else System.out.println("登陆失败,请检查用户名和密码");
}
}while(cmdMessage.equals("quit")==false);//退出
}catch(Exception e){
e.printStackTrace(System.out);
}
}
//连接服务器
public void ex(){
try{
BufferedReader readIn = new BufferedReader(new InputStreamReader(System.in));
//初始化ORB
ORB orb = ORB.init(new String[]{ "-ORBInitialPort","1005",
"-ORBInitialHost","localhost"}, null);
//获得代表命名服务器的 Context
org.omg.CORBA.Object objRef =
orb.resolve_initial_references("NameService");
//匹配CORBA对象
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
//获得名为"Service"的Service对象的远程引用
String name = "Service";
serviceimpl = ServiceHelper.narrow(ncRef.resolve_str(name));
//调用Service对象的远程方法
System.out.println("Obtained a handle on server object: "+
"serviceimpl");
//进入选择的进程
choices(serviceimpl);
//退出则关闭
serviceimpl.shutdown();
}catch (Exception e){
e.printStackTrace(System.out);
}
}
//检查日期的一个方法,保证起始日期早于结束日期
public boolean compareDate(String start,String end){
try{
if(changeDate(start).before(changeDate(end)))
return true;
else
return false;
}catch(Exception e1){
e1.printStackTrace(System.out);
return false;
}
}
//把string类型的日期转化为Date类型的数据
public Date changeDate(String d){
try{
Date date = new Date();
d = d.replaceAll("-", " ");
StringTokenizer token_s = new StringTokenizer(d);
int a = Integer.parseInt(token_s.nextToken());
date.setYear(a-1900);
date.setMonth(Integer.parseInt(token_s.nextToken()));
date.setDate(Integer.parseInt(token_s.nextToken()));
return date;
}catch(Exception e1){
e1.printStackTrace(System.out);
return null;
}
}
//主程序入口
public static void main(String[] args)
{
try{
new CORBAClient().ex();
}
catch(Exception e){
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -