包含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 + “//” + “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) {

}

}

}

包含javassh2客户端的词条

如何用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客户端的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年4月3日 13:19:22
下一篇 2024年4月3日 13:28:43

相关推荐

  • 包含linuxiisaccess的词条

    毕业论文:linux系统的web服务器架设 1、我们以RedHat Linux 0系统为例,想要linuxconf在Web浏览器环境工作,必须进行以下设置: * 在gnome-linuxconf对话框中,打开“Config/Networking/Misc/Linuxconf network access”分支,选中“Enable netwoork acces…

    2024年5月23日
    4400
  • 包含黑客技术学习网址的词条

    信息安全技术专业的相关学习网站有哪些? 1、关于学习类的网站有掌门1对多贝、网易云课堂、慕课、传课、CSDN、我要自学网等等。 2、网络安全主要集中在大型城市,如北京上海广州深圳等,那里安全公司特别多,如360,天融信,奇安信等,所以学习网络安全建议选择这些城市。 3、入侵检测系统技术(IDS);加密&VPN技术;产品安全;安全管理。基础课程的主要内…

    2024年5月23日
    5000
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    4900
  • 包含linux启动xinetd的词条

    简述linux进程的启动.终止的方式以及如何查看进程 查看启动的进程:可以使用以面命令来查看:01ps -ef |grep tomcat复制代码tomcat它是一个Java进程,所以查找Java进程也可查找出来。 ps -ef|grep java复制代码可以看到用户和进程编号,可以用kill 进程编号结束进程。 (1)手工启动 用户在输入端发出命令,直接启动…

    2024年5月23日
    4900
  • 包含linux内核二进制在内存分布的词条

    内存管理:一文读懂Linux内存组织结构及页面布局 (1)Linux虚拟内存实现机制 Linux虚拟内存的实现需要六种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制、内存共享机制。 Linux 内存管理是操作系统内核对物理内存的分配和管理。Linux 内存管理有两个基本任务:一是把可用的内存给程序使用,二是在物理内存不足时,…

    2024年5月23日
    4400
  • 包含Simcityjava的词条

    问一下各种程序的后缀 ,应用程序通常被分为两部分:图形用户接口(GUI)和引擎(Engien)。2,应用程序后缀名:(1)在DOS或Windows系统下其扩展名为*.exe或*.com;(2)在macosx下扩展名一般为*.app。 在windows操作系统下,可执行程序扩展名通常为.exe。全名executablefile,译作可执行文件,可移植可执行(P…

    2024年5月23日
    4600
  • 包含linuxnode后台运行的词条

    怎样使linux后台运行node服务指令 1、nohup node your_app.js & forever可以让我们做得更好,并且可以跨平台的在windows和Linux下都能运行。 2、安装指定版本的node.js(服务器基本软件的安装)你可以到nodejs org官网上面找到相对的tar.gz文件包,下载然后进行源码安装。 3、nodejs一…

    2024年5月23日
    3900
  • 包含hypervlinux集成服务的词条

    如何在Linux发行版中安装并启用Hyper-V集成服务 1、方法/步骤 在网上下载好linux系统的集成服务,并插入hyper-v磁盘中。用root 用户登录linux系统。linux系统自动载入cd rom 中。选择 install.sh,选择运行。运行中,重启电脑。 2、在Hyper-V控制台新建虚机,注意虚机的网卡先选择“旧版网络适配器”,主要是方便…

    2024年5月23日
    3900
  • 包含javajbtok的词条

    java的语法 1、Java的基本语法如下:大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。类名:对于所有的类来说,类名的首字母应该大写。 2、Java中区分大小写。类和接口名首字母必须大写,采用驼峰命名法,每一个名单词的首字母大写,例如:MyFirstJavaProgram;类名和源文件名必须一致。 3、关键字是电脑语言…

    2024年5月23日
    4000
  • 包含excelvbasaveas的词条

    如何用VBA新建一个新的excel表并将其保存在指定目录下 如下图所示,我想将桌面上第一章中的每个工作簿名称放置到工作表中。新建一个工作簿,将其命名为“第一章目录”,按alt+f11组合键,打开宏界面。 新建一个模块,将代码复制到到这个模块中,就会将当前工作表保存到thisworkbook目录下,并以txt格式来保存。 excel中使用vba来创建新的工作薄…

    2024年5月23日
    4900

发表回复

登录后才能评论



关注微信