Category Archives: web

PictureCutter

/**
 * Created by IntelliJ IDEA.
  * Date: 11-10-26
 * Time: 下午2:46
 * To change this template use File | Settings | File Templates.
 */
 
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.color.ColorSpace;
import java.awt.image.*;
import java.io.File;
import java.io.IOException;
 
public class PictureCutter {
 
    /**
     * 缩放图像
     *
     * @param srcImageFile 源图像文件地址
     * @param result       缩放后的图像地址
     * @param scale   [...]

Jquery表单验证插件–Validform:一行代码搞定整站的

http://home.blueidea.com/apps.php?do=bxna&ac=view&feedid=12443
 

你没看错,就一行代码搞定整站的表单验证!

1

$(“.demoform”).Validform();

为什么能如此方便?插件的核心思想就是把所有的验证条件及验证提示信息绑定到每个表单元素,让验证代码在执行时只是核对表单下各元素的值是否跟绑定的验证条件相符,这样你可以随便添加或者去掉任一表单元素而不必修改验证代码,从而使仅用一行代码去搞定整站的表单验证的梦想成为现实!
在线Demo | 马上下载体验
效果图:
功能介绍:1、支持一个页面多表单的检测。例如你给页面上的各form绑定同样的class名称“demoform”,只需在页面上写上一句 $(“.demoform”).Validform(),各表单便会独立检测;2、两种信息提示效果,一个是元素右侧出现提示信息,一个是弹出信息框。另外还附加了$.Showmsg()、$.Hidemsg()全局弹出/关闭信息框方法以便整站有一个统一的信息提示效果;3、指定表单下任一元素在单击时触发表单提交事件;4、支持ajax提交表单数据,也支持ajax实时反馈验证结果(如常见的用户注册表单下的用户名检测);5、支持开启网速慢时的二次提交防御(有时连续的点击提交表单按钮会产生多次的表单提交结果);6、可检测多个文本框内容是否一致(例如常见的两次密码输入确认);7、囊括11种常见的格式验证形式。
使用方法:

1
2
3
4
5
6
7
8
9

$(“.demoform”).Validform({//指定具体参数,实现更多功能;
btnSubmit:”.btn_sub”,
tiptype:2,
postonce:true,
ajaxurl:”ajax_post.php”,
callback:function(data){
//这里执行回调操作;
}
});

参数说明: 【所有参数均为可选项】○ 必须是表单对象执行Validform方法,示例中“.demoform”就是绑定在form元素上的class名称;○ btnSubmit:指定表单下的哪一个按钮触发表单提交事件,如果表单下有submit按钮可以省略。示例中“.btn_sub”是该表单下要绑定点击提交表单事件的按钮,程序会在btnSubmit所在表单下查找该对象;○ tiptype:指定提示效果,可选值 1 | 2, 默认为1。 1=>弹出提示框,2=>表单元素右侧提示;○ postonce:指定是否开启网速慢时的二次提交防御,true开启,不指定则默认关闭;○ ajaxurl:指定处理ajax表单数据的后台文件,注意处理完数据输出相应反馈信息,这个页面输出的内容就是表单提交后前台页面所看到的反馈信息。○ callback:在使用ajax提交表单数据时,数据提交后的回调函数。返回数据data是json格式,{“info”:”demo info”,”status”:”y”},info: 输出提示信息,status: 返回提交数据的状态,是否提交成功,如可以用”y”表示提交成功,”n”表示提交失败,在ajax_post.php文件返回数据里自定字符,主要用在callback函数里根据该值执行相应的回调操作。你也可以在ajax_post.php文件返回更多信息在这里获取,进行相应操作;
怎样给表单元素绑定验证类型?示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

<!–ajax实时验证用户名–>
<input type=”text” value=”" name=”name” datatype=”s5-16″ ajaxurl=”valid.php” nullmsg=”请输入用户名!” errormsg=”昵称至少5个字符,最多16个字符!” />
 
<!–密码–>
<input type=”password” value=”" name=”userpassword” [...]

jmeter笔记7_Jmeter分布式控制

利用JMeter进行负载测试的时候,使用单台机器模拟测试超过1000个行程的并发就有些力不从心,在执行的过程中,JMeter自身会自动关闭,要解决这个问题,可以使用分布式测试,运行多台机器运行所谓的Agent来分担JMeter自身的压力,并借此来获取更大的并发用户数,但是需要进行相关的一些修改,具体如下:
1、在所有期望运行JMeter作为Load Generator的机器上安装JMeter,并确定其中一台机器作为Controller,其他的机器作为Agent。然后运行所有Agent机器上的JMeter-server.bat文件——假定我们使用两台机器192.168.0.1和192.168.0.2作为Agent;
2、在Controller机器的JMeter安装目录下找到bin目录,再找到JMeter.properties这个文件,使用记事本或者其他文字编辑工具打开它;
3、在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的127.0..0.1表示运行JMeter Agent的机器,这里需要修改为“remote_hosts=192.168.0.1:1099,192.168.0.2:1099”——其中的1099为JMeter的Controller和Agent之间进行通讯的默认RMI端口号;
4、保存文件,并重新启动Controller机器上的JMeter.bat,并进入Run -> Remote Start菜单项,在这里可以看到远程启动菜单下面有192.168.0.1,192.168.0.1两个IP地址
5、如果要让某个电脑执行,可以点击改电脑的IP地址就可以,如果两个都要执行,可以点击Run菜单下的“远程运行全部”菜单
6、有时候用作代理的机器太少,仍不能满足需要,则需要将作为Controller的电脑也当作Agent,则同样需要修改JMeter.properties文件,将Controller的IP地址写入。同时,这个时候,需要打先打开Controller电脑中JMeter下bin目录下的jmeter-server.bat,然后再打开JMeter.bat,此时,进入Run -> Remote Start菜单,可以看到Controller也作为远程机器进行运行。
以上转自:http://tech.sina.com.cn/s/2008-12-30/1342940811.shtml
 
需注意:
 
1、启动jmeter-server服务时,提示:
Could not find ApacheJmeter_core.jar …
… Trying JMETER_HOME=..
Found ApacheJMeter_core.jar
 
这个是开始没有找到ApacheJmeter_core.jar,后来去JMETER_HOME目录下去查找,最后找到了,如果不希望看到Could not find的字样,可以配置一下jmeter_home的路径(即bin目录的上一级目录),这样启动jmeter-server服务时,就只会看到Found ApacheJMeter_core.jar,当远程访问时,会看到控制台上打印出一行:Starting the test on host [ip]:1099 @….(大概是这样的,@后面是执行开始的时间),远程执行结束,会打印一行:Finished the test on host [ip]:1099 @…,表示远程执行结束。
 
2、留意一下1099端口,目前暂未确定这个端口是不是可以改的(按理说这个是可以从配置文件中修改的,目前还没有找到如何修改Agent上面的配置,Controller上面的还好修改)
3、Jmeter分布式控制过程中,各个Agent启动的线程数等于线程组中的配置,不是均分线程组中的配置。

Jmeter笔记2_JDBC Request

参考:http://hi.baidu.com/why_question_how/blog/item/a10dab1a2268590a35fa4118.html
【step_1】:“测试计划”–(右键)à添加à线程组;
【step_2】:选择step_1中添加的线程组—(右键)à添加à配置元件àJDBC Connection Configuration,添加好的JDBC Connection Configuration界面截图如下:

位置1:JDBC Connection Configuration的名称及注释
位置2:Variable Name Bound Pool,数据库连接池的名字,这个很重要,必填,JDBC Request中会用到。
位置3:数据库连接池配置
Max Number of Connections:最大连接数
Pool Timeout:数据库连接池的超时最大的时间
Idle Cleanup Interval(ms):间隔多长时间,清除Idle(空闲的连接)
Auto Commit:自动提交设置,设置为True表上自动提交,False不自动提交,编辑这项未用过。
位置4:
Keep-Alive:池是否活动存在
Max Connection age(ms):连接池最大的活动的时间
Validation Query:动态查询
位置5:
DataBase URL:数据库连接url
JDBC Driver class:JDBC驱动
username:数据库登陆的用户名
password:数据库登陆的密码
【step_3】:选择step_1中添加的线程组—(右键)à添加àsampleràJDBC Reuqest,添加好的JDBC Request界面如下:

位置1:
JDBC Request名称及注释说明
位置2:
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致。
位置3:
     Query Type:(这个没弄太明白,Type中的select、update、prepared statement等等,但没有insert的,当需要insert时,我选择Callable Statement,可行。)
位置4:
    填写SQL语句,注意:sql结尾不能加“;”
位置5:
    参数绑定,在位置4中,出现需要变化的值时,可以用“?”替代,然后在Parameter values填写参数值,在Parameter types填写参数类型。注:有多个?时,在Parameter values,Parameter types中用“,”依次隔开。(具体说明见后面 关于Jmeter参数化的部分)
【step_4】:根据需要添加相应的监听器,即可。