1. 请问javaweb的SSH2框架,如何实现共通登录的前台模型选择。用js来实现吗
你的这个功能已经实现了啊,页面上不需要做其他的了
只需要在你的doLogin.action中进行判断,
如用户选择的admInf.ATYPE是0,你就版查用户表,如权果是1或2就查管理员表,没什么区别啊,不用JS了
2. java如何执行远程服务器上的.sh文件
你可以使用
JSch全称是“Java Secure Channel”
是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。同时也是支持执行命令;
以下是大概运行的代码,只是提供大致思路,可以去查官方API和demo
importcom.jcraft.jsch.ChannelExec;
importcom.jcraft.jsch.ChannelSftp;
importcom.jcraft.jsch.ChannelSftp.LsEntry;
importcom.jcraft.jsch.JSch;
importcom.jcraft.jsch.JSchException;
importcom.jcraft.jsch.Session;
importcom.jcraft.jsch.SftpATTRS;
importcom.jcraft.jsch.SftpException;
.......
try{
Sessionsession=newJSch().getSession(user,ip,port);
session.setPassword(pwd);
session.setConfig("StrictHostKeyChecking","no");
session.setConfig("userauth.gssapi-with-mic","no");
session.connect();
ChannelExecexec=(ChannelExec)session.openChannel("exec");
exec.setCommand("ifconfig");//这里是你要执行的命令,部分命令不支持,具体自己执行下
ByteArrayOutputStreambao=newByteArrayOutputStream();
exec.setOutputStream(bao);
ByteArrayOutputStreambaerr=newByteArrayOutputStream();
exec.setErrStream(baerr);
exec.connect();
while(!exec.isEOF())
;
Stringerrmsg=newString(baerr.toByteArray(),"utf-8");
if(StringUtils.notNull(errmsg)){
thrownewRuntimeException(errmsg);
}else{
System.out.println(newString(bao.toByteArray(),"utf-8"));
}
}catch(Exceptione){
e.printStackTrace();
}finally{
//关闭session等操作
}
3. 一台4c8G的Linux,用java jsch建立SSH2连接,最多支持同时与多少台服务器建立连接
这个需要看你的环境了,如果其它Linux都是在内网,网络环境可以排除,这时只关心业务,如果业务不复杂,这里毕竟是只开一个壳,业务处理都在另一端,但是如果传输到连接服务器上的数据比较大,那建议少开一些,比如并发300-400左右,要不会卡死,如果传输数据较小,那无所谓了,开个一两千都不是问题
但是如果其它服务器都在外网环境的话,那需要再加上带宽计算
4. java怎样用ssh2包来批量修改服务器密码
1.自己修改了密码而且加密了别人登录不了。2可以在数据库中加一个最近登录时间lastlogintime,退出时插入数据;每次登录时当前时间-这个时间>2分钟
5. ssh2 Java web 我是用姓名和密码登陆的,想在登陆的LoginAction同时用session获取该姓名的ID
第一步:登录,将用户对象或者id存放在session,你那个放的是loginid,那就loginid咯。
第二步:点击<a href="FindExamineeByIDAction?examineeid=${session.loginid }">,跳转到一个action,这个action不干什么,就取得loginid,然后获取loginid所属对象,然后放在值栈,假设用户对象为User,那么就ActionContext.getContext().getValueStack().push(User);然后return到修改页面
举个例子,我现在已经点击了带有loginid参数的<a>标签,然后到一个UserAction中的GoToUpdatePage()方法中去,方法里面的代码为
User user = this.userService.getEntryById(loginid);//此处表示根据loginid获取对象,loginid怎么从前台传过来的你应该知道吧,如果不知道那建议你重新看一下struts2的教程。
ActionContext.getContext().getValueStack().push(user);
return updateUI;//updateUI的结果集值是跳转到修改页面的jsp。
在修改页面的jsp中,你应该知道怎么取值把,直接去$(name),$(age),等等,都是Use的属性,直接写就行了。