cmpp3.0网关模拟器 sgip1.2网关模拟器
cmpp3.0 、sgip1.2 网关模拟器,非常好用的模拟器,可以测试你的短信收发程序是否封装正确。
jad1.5.8 反编译工具
jad1.5.8 官方下载
使用参考文章
http://blog.csdn.net/small____fish/article/details/7687261
SVN1.4.6、Apache2.2.8安装配置说明
这个文档是我见过比较全面的文档,尤其是在搞apache的https的时候,要用vs或者vc安装openssL,搞得纠结啊,现在下载这个文档,上面有apache服务的安装说明,也有svn服务器和客户端的安装集成。很实用。
windows 系统操作openssL
无需重新编译,直接生成数字证书 ,用CA为服务端和客户端证书签名。
使用工具的时候可以参考此文档
http://blog.csdn.net/small____fish/article/details/8234128
java 注册NT服务
java 注册NT服务 Windows启动服务 在windows服务中可以开机启动,也可以手动启动,亦可以重新启动,说白了就是一个新注册的windows 服务,比较实用的东西。
exe4j jar打成exe可执行文件
exe4j是一个在windows操作下得一款将java项目的jar包打成exe可执行文件的工具,很强大哦,欢迎加入技术交流群:133436255 让我们一起成长。
log4j java项目案例
《log4j-1.2.12.jar commons-logging.jar java项目 定时调度 自定义日志》
log4j算是比较好用的日志操作插件了吧,一般与commons-logging一起使用,一直没时间去搞,现在空出了点儿时间,写了一个定时调度程序,将日志输出到指定的文件,简单了解就可以了,此项目属于java项目,eclipse和myeclipse都可以导入运行。感兴趣的可以下载看看,如果有帮助请加群:知识交流群 133436255 你的问题就是我的问题 大家的问题。
rmi分布式开发文档以及源码
何为分布式应用开发模式
在数据库应用程序的开发过程中,网络已走到社会的各个角落。从金融行业的银行联网、交通行业的售票系统、公安系统的全国户籍管理等等,这些企业或行业单位之间地理分布性或业务分布性,使得一个企业或行业拥有多个网络服务器,如何在这种分布式的网络环境下实现高效的数据库应用程序的开发是一个重要的问题。 分布式应用开发简单的说,是指将用户界面、控制台服务、数据库管理三个层次部署在不同的位置上。其中用户界面是客户端实现的功能,控制台服务是一个专门的服务器,数据管理是在一个专门的数据库服务器上实现的。 提示:这里的Web服务器,都是指软件(如IIS等Web服务器软件),它和Web服务器应用以及其它程序等,共同存在于服务器计算机上。 控制台CGI应用:是一个独立的控制台EXE。它在一个标准输入设备上接收客户端的请求信息,在标准输出设备上将结果返回给服务器。
还不错哦.
黑客与画家
黑客与画家,这是一部比较不错的书,有时间可以阅读以下,轻松一下。
ORACLE_PLSQL语法与维护文档汇总
oracle_PLSQL_语法详细手册&11g;.doc
ORACLE_维护手册.doc
oracle+110个常用函数.doc
oracle分析函数.doc
Oracle数据库日常维护手册.docx
PLSQL开发笔记和小结.doc
这些文档还不错,自己也想里面添加了一些语法。
Oracle最完美的安装和PLSQL Developer使用技巧
Oracle最完美的安装和PLSQL Developer使用技巧,里面有详细的操作,图文讲解哦..
java序列化(Serializable)的作用和反序列化
java序列化(Serializable)的作用和反序列化.doc
有详细的讲解哦。
在什么地方用的到都有说明的.
freemarker 工程案例
案例中包括所有的jar:freemarker-2.3.8.jar ,commons-logging-1.0.4.jar ,struts2-core-2.0.11.2.jar,ognl-2.6.11.jar
,xwork-2.0.5.jar。
*这是结合structs2.0的freemarker,其中需要如下注意
在PostOperationAction.java 中
String sRootDir = "需要是服务器路径";
这是你模板的绝对地址,你可能需要修改下。
该版本解决了乱码的问题。
当你页面生成成功的时候,就可以直接动态生成htm页面了。
modelAndLink 责任链模式 备忘录模式 单(双)链表 链表 显示“请稍后……"原理
责任链模式 备忘录模式 单(双)链表 显示 "正在加载,请稍后……" 原理
1、责任链模式:
* 责任连模式的结构 责任连模式的类图非常简单,它由一个抽象地处理类和它的一组实现类组成:
* 抽象处理类:抽象处理类中主要包含一个指向下一处理类的成员变量nextHandler和一个处理请求的方法handRequest
* ,handRequest方法的主要主要思想是,如果满足处理的条件,则有本处理类来进行处理,否则由nextHandler来处理。
* 具体处理类:具体处理类主要是对具体的处理逻辑和处理的适用条件进行实现。
2、备忘录模式:
*备忘录模式的优点有:
*当发起人角色中的状态改变时,有可能这是个错误的改变,我们使用备忘录模式就可以把这个错误的改变还原。
*备份的状态是保存在发起人角色之外的,这样,发起人角色就不需要对各个备份的状态进行管理。
*
*备忘录模式的缺点:
*在实际应用中,备忘录模式都是多状态和多备份的,发起人角色的状态需要存储到备忘录对象中,对资源的消耗是比较严重的。
*
*适用场景
*如果有需要提供回滚操作的需求,使用备忘录模式非常适合,比如jdbc的事务操作,文本编辑器的Ctrl+Z恢复等。
3、单(双)链表:这个是数据结构方面的知识,代码有详细的说明。
4、显示 "正在加载,请稍后……" 原理
SVN服务器与客户端的安装以及在Myeclipse中的配置
SVN服务器与客户端的安装、svnMyeclipse中的的集成
要做项目经理,代码管理工具必须懂的啊。而svn将是未来的明星。
是菜鸟的更加应该看一下。
JFreeChart 最完美的图表操作和json解析
只需要部署到eclipse或者myeclipse上面运行一下就可以看见相应的图表,各个类都有详细的说明,操作简单容易上手。
ChartUtil平面图表操作工具类,
折线图/柱状图/饼状图
CreateChart三维图表操作工具类
折线图/柱状图/饼状图
项目中还额外设计到了json的解析,这样你就可以用ajax传json对象来进行数据交互了。
/**
* @author zxy(1216499379@qq.com本人QQ)
*两者的使用几乎是相同的,但org.json比json-lib要轻量得多,前者没有任何依赖,
*而后者要依赖ezmorph和commons的lang、logging、beanutils、collections等组件。
项目中包含了所有设计到第三方组件的所有的jar文件。
*/
WEBServiceAndJAXB
web service 是java开源的一个远程调用技术,本项目使用了CXF来实现WEB Service的一个案例,同时项目里面有对JAXB的运用,JAXB技术主要运用在java类与xml之间的转换,
Marshaller marshaller = context.createMarshaller();//把java object 转换成xml
Unmarshaller unmarshaller = context.createUnmarshaller();//把 xml转换成java object
这个对于了解web service的工作原理很重要。
Spring MVC Demo
SpringMVC是一个项目团队非常喜欢的框架。
本工程主要是一个练手,里面对web.xml和applicationContext-base.xml有一个详细的说明。
<servlet>
<servlet-name>Dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--servlet的参数配置,查找controller位置的xml文件配置,此参数指定了spring配置文件的位置 ,如果你不指定的话,默认会查找
*/WEB-INF/<servlet name>-servlet.xml,其中<servlet name>由servlet的名字替换-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml </param-value>
<!--查找这里可以配置多个,用逗号分割或者用通配符*也就是第二行
<param-value>/WEB-INF/mvc.xml,/WEB-INF/mvc1.xml</param-value>
<param-value>/WEB-INF/mvc*.xml </param-value>-->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 配置所有以.do结尾的请求交给DispatcherServlet进行处理,也可以设置其他值,如.action等 -->
<servlet-mapping>
<servlet-name>Dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
用于学习了解SpringMVC还是有一定的帮助的。
ant build.xml构建使用案例
ant是apache组织的一个开源项目,自己可以在http://ant.apache.org进行下载,也可以下载本资源,下载之后
1、解压缩
2、配置环境变量,将解压缩的路径(你的硬盘:\放的文件夹下\apache-ant-1.8.4\bin),配置在环境变量的path路径下,输入ant看效果。
3、部署本项目,运行构建看效果。
说明:这个是一个项目开发的辅助工具,比较简单且好用。
基于ssh的多表联合动态菜单
这是我在做教务管理系统的时候做的一个多表联合的动态菜单,只要部署一下就可以看到结果,部署之前的注意事项。
1、电脑必须有mysql数据库,数据库的登录名和密码都为root(当然你也可以更改我的配置文件)
2、在mysql中创建一个school数据库,导入我提供的三个表的sql脚本,切记创建时数据库的编码为gbk。
3、本项目是基于tomcat服务器做的,本人觉得如果想很快的看到运行效果,就用tomcat吧。
4、没有看见结果希望你能够联系我,QQ:1216499379.
*以前下载过我的图片编辑器的朋友们,你们要联系我啊,那时候没有现在写代码那么专业,望谅解。
Spring+ibatIS案例项目
Spring+IbatIS项目,在案例项目中不只是对CURD的操作,主要是在配置文件中介绍了怎么配置链接迟,这个项目使用的是C3P0连接池,相应的还有.txt文件分析。部署到eclipse或者是myeclipse中修改jdbc.properties文件就可以使用了,我本人使用的是mysql,资源文件配置好之后就可以直接运行了,要仔细一点哦,如果不能成功操作的可以留言给我,或者加QQ645144985留言给我。
SVN基于eclipse和myeclipse的使用说明
Myeclipse_8.6_SVN插件的安装.doc、Myeclipse8.6配置svn与优化.doc、SVN.txt、svn搭建(linux_windows)完整教程.doc、SVN搭建和使用手册.pdf、SVN客户端使用.pdf、SVN客户端使用简要教程.doc、TortoiseSVN使用教程[多图超详细].doc。这些文档如果你是站在程序员的位置看只要选其中的TortoiseSVN看一下就可以了,如果你是站在项目经理的位置看,建议没事都看看吧,有帮助的。
ibatis案例项目
ibatis案例项目,基于MysqL的案例项目,整个项目部署到myeclipse或者eclipse中,修改里面的jdbc.properties的username、password对应mysql的用户名和密码后直接使用,com.oy.domain包是基于mysql的案例。你只要在这个包中操作就可以了。每个业务都用相应的单元测试,ibatis很容易上手哦,学过jdbc的,保守一点儿,一个小时搞定吧。
java excel导入导出操作
只需要部署到myeclipse或者eclipse开发工具上面就可以直接运行得到结果。运行后会产生一个保存数据库的Pojo。
ssh集成项目
ssh集成项目,包括所需要的所以jar文件
Base64、MD5加解密
Base64、MD5加解密,解压部署到myeclipse上面,运行就可以看见效果。
ajaxfileupload.js/ui.core.js/
ajaxfileupload.js/ ui.core.js/ ui.draggable.js/ jquery.imagecropper.js/ ui.draggable.js 实现图片异步上传的和图片的剪切功能,整个小项目,解压即可部署使用。
Oracle,SQl,MySql实现分页查询
通过SQL 查询分析器,显示比较:我的结论是:
分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高,需要拼接SQL语句
分页方案一:(利用Not In和SELECT TOP分页) 效率次之,需要拼接SQL语句
分页方案三:(利用SQL的游标存储过程分页) 效率最差,但是最为通用
SELECT u.username FROM `user` u join contact_info c on (u.id=c.user_id) and c.address='123';
JQuery 及插件实现图片剪切分割上传服务器
最近做一个项目的图像上传功能,这个功能就是类似与大型网站的图像上传功能。上传切割主要是相对于起点的四个偏移量,left、top、width、height值,然后在后台进行切割显示给会员。
login 验证 ,创建弹出div信息
login 验证 ,创建弹出div信息
.jsp和servlet验证码
package Cls;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class MyVerifyCode extends HttpServlet {
private static MyVerifyCode instance;
private final String ATTRIBUTE_NAME = "verifycode";
// ��֤���ַ�������
private final int CODE_LENGTH =4;
// ��֤��߶�����
private static final int Height =30;
// ������֤���Ƿ���Ҫ��תЧ��
private boolean ROTATE_FLAG = true;
//���������Ƿ���Ҫ���
private boolean FONT_FLAG=false;
//�����������Ĭ������
private String font="";
//��������Ĵ�С,Ĭ��Ϊ15
private int fontsize=15;
private final String RAND_RANGE = "abcdefhgkmnpqrstuvwxyz"
+ "ABCDEFGHGKLMNPQRSTUVWXYZ" + "2345678";
// private Random rand=new Random();
public static Random rand = new Random();
private final char[] CHARS = RAND_RANGE.toCharArray();
// ���캯��
public MyVerifyCode() {
}
public static MyVerifyCode getInstance() {
if (instance == null)
instance = new MyVerifyCode();
return instance;
}
// �������ַ�
private String getRandString() {
StringBuffer vcode = new StringBuffer();
for (int i = 0; i < CODE_LENGTH; i++)
vcode.append(CHARS[rand.nextInt(CHARS.length)]);
return vcode.toString();
}
// ���������
public static float getRandomJiao() {
float jiao = 0.0f;
if (rand.nextFloat()<=0.5) {
jiao = rand.nextFloat()-0.3f;
} else {
jiao = -rand.nextFloat()+0.3f;
}
return jiao;
}
// ��������ɫ
private Color getRandColor(int ll, int ul) {
if (ll > 255)
ll = 255;
if (ll < 1)
ll = 1;
if (ul > 255)
ul = 255;
if (ul < 1)
ul = 1;
if (ul == ll)
ul = ll + 1;
int r = rand.nextInt(ul - ll) + ll;
int g = rand.nextInt(ul - ll) + ll;
int b = rand.nextInt(ul - ll) + ll;
Color color = new Color(r, g, b);
return color;
}
private BufferedImage getImage(HttpServletRequest request) {
//根据设置的高度计算事宜的fontsize
int FontSize=Height*75/96;
//根据设置的字体及字的个数计算出适宜的宽度
int width = CODE_LENGTH * FontSize*4/5 + 10;
//根据字体大小设置X轴的位移量
int X_=FontSize/2;
BufferedImage image = new BufferedImage(width,Height,
BufferedImage.TYPE_INT_RGB);
// ��ȡͼ��������
Graphics graphics = image.getGraphics();
Graphics2D g2 = (Graphics2D) graphics;
g2.setColor(getRandColor(100, 255));
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, width, Height);
g2.translate(0, Height*2/3);
double oldrot = 0;
String vcode=this.getRandString();
// 把验证码存入session
request.getSession(true).setAttribute("codes", vcode);
for (int i = 0; i < CODE_LENGTH; i++) {
g2.setFont(new Font("Times New Roman", Font.HANGING_BASELINE, FontSize));
double rot = getRandomJiao();
// 旋转画笔
if (ROTATE_FLAG) {
g2.rotate(-oldrot);
g2.translate(X_+rand.nextInt(8), 0);
oldrot = rot;
g2.rotate(rot);
}
String temp = vcode.substring(i, i + 1);
g2.setColor(getRandColor(1, 100));
g2.drawString(temp, 0, 0);
}
// ͼ����Ч
g2.dispose();
return image;
}
public void printImage(HttpServletRequest request,
HttpServletResponse response) {
// ��ContentType��Ϊ"image/jpeg"���������ʶ��ͼ���ʽ��
response.setContentType("image/jpeg");
// ����ҳ�治����
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 2000);
// ��������֤��
String verifyCode = this.getRandString();
// �����֤���ͼ�����
BufferedImage bi = this.getImage(request);
try {
// ���Servlet�����
ServletOutputStream outStream = response.getOutputStream();
// ������������ͼ����ݱ���ΪJPEG������ı�����
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outStream);
// ��ͼ����ݽ��б���
encoder.encode(bi);
// ǿ�н���������������뵽ҳ��
outStream.flush();
// �ر������
outStream.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) {
printImage(request, response);
}
}
jdbc-odbc的基本操作
/**
* @param dbPath
* 数据库存储路径
* @param tel
* 所查询的手机号码
* @return
* 号码所属地
*/
public String getLocationByTel(String dbPath,String tel){
String result = null;
Connection cn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
//连接的是jdbc-odbc桥
String dbUrl = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbPath;
cn = DriverManager.getConnection(dbUrl);
pstmt = cn.prepareStatement("select PCity from shouji where ?=PhoneNo");
pstmt.setString(1, tel.substring(0, 7));
rs = pstmt.executeQuery();
if (rs.next()) {
result=new String(rs.getBytes("PCity"),"gbk");//访问数据库中文乱码问题
//result = rs.getString(1);
} else {
result = tel + "属于未知地区";
}
} catch (Exception e) {
// throw new MyException(e);
e.printStackTrace();
} finally {
// 下面省略关闭的详细代码,只简单示意一下
try {
if (rs != null) {
rs.close();
}
if (pstmt != null) {
pstmt.close();
}
if (cn != null) {
cn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
ajax或者jquery操作xml相关源文件
/*通过异步传输XMLHTTP发送参数到ajaxServlet,返回符合条件的XML文档*/
var xhr;
function createXHR() {
if (typeof XMLHttpRequest != "undefined") {//检查原生XHR对象是否存在,如果存在则返回她的实例
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined") {//如果原生的XHR不存在则检查ActiveX对象
var versions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0",
"MLXML2.XMLHttp" ];
for ( var i = 0, len = versions.length; i < len; i++) {
try {
var xhr = new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
return xhr;
} catch (ex) {
//跳过
}
}
return new ActiveXObject(arguments.callee.activeXString);
} else {//如果两种对象都不存在则报错误
throw new Error("没有有效的XHR对象");
}
}
function getResult() {
var url = "Test?action=send";
xhr = createXHR();
xhr.open("GET", url, false);
xhr
xhr.send(null);
}
/*分析返回的XML文档*/
function complete() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var type = xhr.responseXML.getElementsByTagName("person");
/*result=type[0].childNodes[0].data;
alert(result);*/
try {
var info = xhr.responseXML.getElementsByTagName("type");
alert(info[0].childNodes[0].nodeName);//获取节点名
alert(info[0].childNodes[0].attributes.getNamedItem("name").value);//获取属性值
alert(info[0].childNodes[0].childNodes[0].nodeName);
// alert(info[0].childNodes[1].childNodes[0].getAttribute(""));
alert(info[0].childNodes[0].childNodes[0].childNodes[0].nodeValue);//获取节点值
//alert(info.getAttribute('type'));
} catch (exception) {
alert("The node is not exist");
}
var str = new Array();
//alert(type.length);
for ( var i = 0; i < (type.length+1); i++) {
str[i] = type[0].childNodes[i].firstChild.data;//获取节点值
document.all['td'][removed] += str[i] + "";
}
}
}
}
javaMail开发的小项目
整个项目,包含jar文件,以及代码开发的所有说明,很详细的哦。