关于包含javassh2客户端的词条话题,今日,嗨壳技术分享网小编抽出大半天的时间整理一些包含javassh2客户端的词条内容,让我们一起了解一些技术吧!
本篇文章给大家谈谈javassh2客户端,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、java 服务器与客户端的文件传输
2、如何用java相关的技术实现一个服务器到手机客户端的一个消息推送?
3、java ssh登陆交换机执行命令
4、ssh2问题。求高手!Unable to instantiate Action, UserAction, defined for ‘doRegister’ in namespace ‘/’
5、JAVA SSH框架搭建流程
6、Java中SSH框架 + JSP 的使用属于前台开发?后台开发?服务端开发?JavaWeb开发?
java 服务器与客户端的文件传输
可以直接通过流的形式上传或者下载。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
import hkrt.b2b.view.util.Log;
import java.util.Vector;
import zn.ccfccb.util.CCFCCBUtil;
/**
*/
public class CCFCCBSftp {
/**
* 连接sftp服务器
*
* @return
*/
public static ChannelSftp connect() {
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22);
Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22);
System.out.println(“Session created.”);
sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD);
Properties sshConfig = new Properties();
sshConfig.put(“StrictHostKeyChecking”, “no”);
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println(“Session connected.”);
System.out.println(“Opening Channel.”);
Channel channel = sshSession.openChannel(“sftp”);
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println(“Connected to ” + CCFCCBUtil.CCFCCBHOSTNAME + “.”);
} catch (Exception e) {
}
return sftp;
}
/**
* 连接sftp服务器
*
* @param host 主机
* @param port 端口
* @param username 用户名
* @param password 密码
* @return
*/
public static ChannelSftp connect(String host, int port, String username,
String password) {
ChannelSftp sftp = null;
try {
JSch jsch = new JSch();
jsch.getSession(CCFCCBUtil.CCFCCBHOSTNAME, CCFCCBUtil.CCFCCBHOSTNAME, 22);
Session sshSession = jsch.getSession(CCFCCBUtil.CCFCCBLOGINNAME, host, port);
System.out.println(“Session created.”);
sshSession.setPassword(CCFCCBUtil.CCFCCBLOGINPASSWORD);
Properties sshConfig = new Properties();
sshConfig.put(“StrictHostKeyChecking”, “no”);
sshSession.setConfig(sshConfig);
sshSession.connect();
System.out.println(“Session connected.”);
System.out.println(“Opening Channel.”);
Channel channel = sshSession.openChannel(“sftp”);
channel.connect();
sftp = (ChannelSftp) channel;
System.out.println(“Connected to ” + host + “.”);
} catch (Exception e) {
}
return sftp;
}
/**
* 上传文件
*
* @param directory 上传的目录
* @param uploadFile 要上传的文件
* @param sftp
*/
public void upload(String directory, String uploadFile, ChannelSftp sftp) {
try {
s;
File file = new File(uploadFile);
s(new FileInputStream(file), file.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 下载文件
*
* @param directory 下载目录
* @param downloadFile 下载的文件
* @param saveFile 存在本地的路径
* @param sftp
* @return
*/
public static String download(String directory, String downloadFile, String saveFile, ChannelSftp sftp) {
try {
s;
File file = new File(saveFile);
FileOutputStream fos = new FileOutputStream(file);
s(downloadFile, fos);
s;
fos.close();
} catch (Exception e) {
Log.info(“下载文件过程出错:” + e.getMessage());
return “false”;
}
return “true”;
}
/**
* 删除文件
*
* @param directory 要删除文件所在目录
* @param deleteFile 要删除的文件
* @param sftp
*/
public void delete(String directory, String deleteFile, ChannelSftp sftp) {
try {
s;
s;
} catch (Exception e) {
}
}
/**
* 列出目录下的文件
*
* @param directory 要列出的目录
* @param sftp
* @return
* @throws SftpException
*/
public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException {
return s;
}
public static void main(String[] args) {
CCFCCBSftp sf = new CCFCCBSftp();
String host = CCFCCBUtil.CCFCCBHOSTNAME;
int port = 22;
String username = CCFCCBUtil.CCFCCBLOGINNAME;
String password = CCFCCBUtil.CCFCCBLOGINPASSWORD;
String directory = “/ccfccb/904999900099/download/”;
//String uploadFile = “D:\tmp\upload.txt”;
String downloadFile = “CCF_904999900099_20150317_0001.zip”;
String saveFile = CCFCCBUtil.CCFCCBUploadFilePath + “https://” + “CCF_904999900099_20150317_0001.zip”;
//String deleteFile = “delete.txt”;
ChannelSftp sftp = CCFCCBS(host, port, username, password);
//sf.upload(directory, uploadFile, sftp);
CCFCCBS(directory, downloadFile, saveFile, sftp);
//sf.delete(directory, deleteFile, sftp);
try {
s;
// s(“ss”);
System.out.println(“finished”);
} catch (Exception e) {
}
}
}
如何用java相关的技术实现一个服务器到手机客户端的一个消息推送?
可以使用第三方消息推送软件。目前市面上的推送软件很多,但是是选择的时候一定要选择正规的,也可以在使用前都去了解一下消息推送软件相关的信息。
推送软件的技术是通过自动传送信息给用户,来减少用于网络上搜索的时间。它根据用户的兴趣来搜索、过滤信息,并将其定期推给用户,帮助用户高效率地发掘有价值的信息。
对于第三方消息推送软件的选择,推荐你使用深圳极光家的消息推送软件。中国领先的移动开发者服务提供商极光,极光将为兴盛优选APP提供多样化服务,助力其优化用户体验,提升用户转化,激活流量价值。
极光的一键登录功能将助力兴盛优选APP的用户实现高效、安全稳定的登录过程,优化用户体验,有效提升APP的用户转化和留存率。
java ssh登陆交换机执行命令
第一步下载java扩展包
第二步:解压文件把 jar包,拷贝到java的库目录下,我的是ubuntu14(/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext )
cp ganymed-ssh2-build210.jar /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext
第三步: 把默认账户修改成直接的账户密码
yang@yang:~/Downloads/java/ganymed-ssh2-build210/examples$ cat Basic.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;
public class Basic
{
public static void main(String[] args)
{
String hostname = “127.0.0.1”;
String username = “user”;
String password = “password”;
try
{
Connection conn = new Connection(hostname);
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false)
throw new IOException(“Authentication failed.”);
Session sess = conn.openSession();
sess.execCommand(“uname -a date uptime who”);
System.out.println(“Here is some information about the remote host:”);
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true)
{
String line = br.readLine();
if (line == null)
break;
System.out.println(line);
}
System.out.println(“ExitCode: ” + sess.getExitStatus());
sess.close();
conn.close();
}
catch (IOException e)
{
e.printStackTrace(System.err);
System.exit(2);
}
}
}
第四步: 编译 javac Basic.java java Basic
Here is some information about the remote host:
Linux yang 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
2014年 05月 03日 星期六 17:26:00 CST
17:26:00 up 6:09, 4 users, load average: 0.15, 0.21, 0.23
yang :0 2014-05-03 11:17 (:0)
yang pts/2 2014-05-03 16:34 (:0)
yang pts/26 2014-05-03 17:13 (:0)
yang pts/27 2014-05-03 17:24 (:0)
ExitCode: 0
ssh2问题。求高手!Unable to instantiate Action, UserAction, defined for ‘doRegister’ in namespace ‘/’
我现在也遇到了相同的问题,但是你的错误我看了下,至少有两个遗漏之处吧,虽然我现在还没解决自己的问题,但是先告诉你下你的错误,
web.xml配置文件
!– contextConfigLocation的作用是自动查找加载spring的applicationContext_*.xml文件 —
context-param
param-namecontextConfigLocation/param-name
param-valueclasspath:applicationContext_*.xml/param-value
/context-param
没有看到自动加载spring的xml文件。
spring配置文件中,只配置了数据源DataSource和sessionfactory ,没有看到你将action托管到spring哟,
bean name=”loginAction” class=”net.dbet.action.LoginAction”
scope=”prototype” /
我这个是自己的例子,你上面的struts.xml如果没有写这个的话,怎么能直接写
Action”action name=”doRegister” class=”UserAction” method=”doRegister”
直接写类名的话,要托管给spring之后才可以的,
其他的还有很多,我没看到你的实例化dao,service和user的spring配置啊。
楼主多查查资料吧,找个例子自己参考下,需要的话给我留言,我现在虽然自己的问题没解决,但是我有现成培训的样本!
JAVA SSH框架搭建流程
首先,明确spring,struts,hibernate在环境中各自的作用。
struts:
用来响应用户的action,对应到相应的类进行处理。需要struts对应的包。
hibernate:
用来把实体类对应到数据库。提供增删改查的基本操作实现。需要hibernate对应的包以及mysql的jdbc驱动包。
spring:
管理struts:在xml配置文件中为struts的action进行值注入。
管理hibernate:在xml配置文件中配置hibernate的配置信息(dataSource,sessionFactory),即不需要原来的hibernate的xml文件。为hibernate的dao操作注入sessionfactory属性值。
需要提供spring对应的包,除此以外,还需要提供一个整合spring与struts的包:truts2-spring-plugin-2.0.11.1.jar
下面就搭建步骤进行详细说明:
1、新建一个web project,导入包,需要的包放在文件夹sshlib中。
2、修改web.xml的配置信息,内容如下:
?xml version=”1.0″ encoding=”UTF-8″?
web-app version=”2.5″ xmlns=” “
xmlns:xsi=” “
xsi:schemaLocation=”
”
welcome-file-list
welcome-fileindex.jsp/welcome-file
/welcome-file-list
!– 下面的listener,是spring提供的,它会在创建时自动查找WEB-INF下的applicationContext.xml文件 ,从而创建spring容器–
listener
listener-class
org.springframework.web.context.ContextLoaderListener
/listener-class
/listener
!– 下面的配置作用是:在MyEclipse中,系统会自动到WEB-INF下寻找 applicationContext.xml文件,而系统
会自动将applicationContext.xml放置到WEB-INF下的classes下,所以会产生找不到applicationContext.xml的错误,需要指明applicationContext.xml
的放置位置。这就是下面的信息作用。在Eclipse中也许不需要此配置信息。–
context-param
param-namecontextConfigLocation/param-name
param-value
/WEB-INF/classes/applicationContext.xml
/param-value
/context-param
!– 下面的配置信息,用来配置说明使用struts过滤器 —
filter
filter-namestruts2/filter-name
filter-class
org.apache.struts2.dispatcher.FilterDispatcher
/filter-class
!–
下面的配置信息用来说明:程序中运行的action放置在哪个包下面,对于list.action的请求,它会自动在这个包下面寻找ListAction.class的类
如果没有这句话,那么所有的action请求只能在struts.xml中进行配置。
–
init-param
param-nameactionPackages/param-name
param-value
com.action
/param-value
/init-param
/filter
!–
下面的配置表示对于所有请求都交给struts来处理。
–
filter-mapping
filter-namestruts2/filter-name
url-pattern/*/url-pattern
/filter-mapping
/web-app
3、接下来用来配置struts.xml
?xml version=”1.0″ encoding=”UTF-8″ ?
!DOCTYPE struts PUBLIC
”-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
” “
struts
!– 指定Web应用的默认编码集。该属性对于处理中文请求参数非常有用,对于获取中文请求参数值,应该将该属性值设置为GBK或者GB2312 当设置该参数为GBK时,相当于调用HttpServletRequest的setCharacterEncoding方法 —
constant name=”struts.i18n.encoding” value=”utf-8″ /
constant name=”struts.devMode” value=”true” /
package name=”default” namespace=”/” extends=”struts-default”
interceptors
!– 定义拦截器 —
interceptor name=”crudInterceptor”
class=”com.action.CrudInterceptor” /
interceptor-stack name=”appStack”
interceptor-ref name=”crudInterceptor” /
!– 下面一行自带的拦截器必须加上,否则出错 —
interceptor-ref name=”defaultStack” /
/interceptor-stack
/interceptors
!– 使用默认拦截器配置Action都需要拦截器堆栈
即所有struts请求都自动先交给拦截器处理。关于拦截器的具体规则在拦截器对应类(com.action.CrudInterceptor)中进行了解释。
–
default-interceptor-ref name=”appStack”/default-interceptor-ref
/package
/struts
4、接下来配置applicationContext.xml:
?xml version=”1.0″ encoding=”UTF-8″?
beans xmlns=” “
xmlns:aop=” “
xmlns:xsi=” “
xsi:schemaLocation=”
”
!– 数据源 —
bean id=”dataSource”
class=”org.springframework.jdbc.datasource.DriverManagerDataSource”
property name=”driverClassName”
value=”org.gjt.mm.mysql.Driver” /
property name=”url” value=”jdbc:mysql://www.easyaq.com:3306/user” /
property name=”username” value=”root” /
property name=”password” value=”” /
/bean
!– sessionFactory配置 —
bean id=”sessionFactory”
class=”org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean”
property name=”dataSource” ref=”dataSource” /
property name=”mappingResources”
list
valuecom/ssh/User.hbm.xml/value
/list
/property
!– 定义sessionFactory的属性 —
property name=”hibernateProperties”
props
prop key=”hibernate.dialect”
org.hibernate.dialect.MySQL5InnoDBDialect
/prop
prop key=”hibernate.hbm2ddl.auto”update/prop
prop key=”hibernate.show_sql”true/prop
prop key=”hibernate.format_sql”true/prop
/props
/property
/bean
!– hibernate的类名,属性名和数据库之间的对应关系的自定义 com.ynstudio.tools.LocalNamingStrategy —
bean id=”namingStrategy”
class=”org.hibernate.cfg.ImprovedNamingStrategy”
/bean
!– 定义DAO的bean —
bean id=”userDao”
class=”com.ssh.UserDaoImpl”
property name=”sessionFactory” ref=”sessionFactory” /
/bean
!–
下面的代码用来向Action类注入属性值
–
bean id=”crudAction” class=”com.action.CrudAction”
property name=”userDao” ref=”userDao”/property
/bean
/beans
5、上述配置文件完成后,就开始业务逻辑部分。
首先完成hibernate的curd操作部分内容。
设计一个User实体类。包含数据库中User表的字段。
新建一个User.hbm.xml文件,实现实体类与数据库的关联。内容如下:
?xml version=”1.0″?
!DOCTYPE hibernate-mapping PUBLIC
”-//Hibernate/Hibernate Mapping DTD//EN”
” “
hibernate-mapping
class name=”com.ssh.User” table=”user”
id name=”id” column=”id”
generator class=”increment” /
/id
property name=”username” column=”username” /
property name=”password” column=”password” /
property name=”birthday” column=”birthday” /
property name=”email” column=”email” /
/class
/hibernate-mapping
接下来需要实现dao操作。
设计一个类继承了HibernateDaoSupport类。关于HibernateDaoSupport类,请参考相关文档。
6、完成hibernate的设计后,接下来设计struts的拦截器和struts的action。
struts的拦截器:
package com.action;
import java.lang.reflect.Method;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 这个类的是拦截器。
* 对于如下URL:
*
* actionInvocation.invoke()方法会自动调用名称了HelloAction类的list方法。
* 在action中根据该方法的返回值决定页面显示或跳转位置。
* result值除了可以再action类中定义,还可以在struts.xml中配置。
* 配置时可采用如下语句:
* action name=”hello” class=”crudAction”
* result name=”list”/list.jsp/result
* result name=”modify”/modify.jsp/result
* /action
* 此处需要格外注意的是:class属性的值,此值是applicationContext.xml中的id。
* 该bean中注入了action类中属性userDao的值。
* 所以,如果需要使用struts.xml中的action配置,需要使用该id,否则,系统不会给其注入值,最终导致空指针异常。
* @author HeXiaoXing
*
*/
public class CrudInterceptor extends AbstractInterceptor{
public String intercept(ActionInvocation actionInvocation) throws Exception {
/*
*下面代码演示了获取请求的类名与方法名的一半方式,但本例中不涉及。 全部注释掉。
*/
// Object action = actionInvocation.getAction();
// Class actionClass = action.getClass();
// String actionClassName = actionClass.getSimpleName();
// String methodName = actionInvocation.getProxy().getMethod();
return actionInvocation.invoke();
}
}
struts的action,关于此action的全部内容,请参考源程序CrudAction。
7、完成了类设计后,就是页面的设计,关于页面的设计,不再一一叙述,给粗源文件,请自行参考。
需要提出的是,在转向时,url的格式必须是method:方法名。这是约定的,不可以写成method=方法名。
Java中SSH框架 + JSP 的使用属于前台开发?后台开发?服务端开发?JavaWeb开发?
一般小公司或者对前台界面要求不是很高的公司开发的B/S应用,不分前后台工程师。所以像这样的公司招聘的人要求前后台都懂。前台主要只得是展现层,由于使用WEB方式,那么就是和html、css、js打交道,当然如何生成html、css、js这个东西也是有学问的需要后台的支持。呵呵。
一般独立出Web前段开发工程师的公司对界面要求是比较高的。我写了10年B/S程序,可以负责的说真正把html、css、js搞精通的人不多,尤其是现在对WEB富客户端的界面要求比较高,所以有的公司会高新聘请人专门去设计UI。
大型的网站或者偏于数据分析的应用程序,一般都会有独立的数据分析职位,做一些数据库优化,数据抽取、BI类工作,这个也是个方向。
总之,程序设计这玩意现在的发展方向很多,没有人能说我精通所有的方面,想好以后要干什么确立自己的发展方向。
javassh2客户端的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javassh2客户端的信息别忘了在本站进行查找喔。
关于 包含javassh2客户端的词条 的问题,嗨壳技术分享网(www.heikehao.com)小编就分享到这里吧!如果大家有疑问欢迎留言询问。
原创文章,作者:java,如若转载,请注明出处:https://www.heikehao.com/22593.html