精华内容
下载资源
问答
  • python代码简单模拟Java中的MVC设计

    千次阅读 2014-04-09 14:32:33
    python代码简单模拟Java中的MVC设计

    python代码简单模拟Java中的MVC设计

    包括两个文件:

    一、 mymvc.py

    import tornado.ioloop
    import tornado.web
    
    #访问地址 http://127.0.0.1:9870/main?ywdm=06&num1=10&num2=200
    
    class TestClassA:
        def sub(self,a,b):
            return a-b
        def add(self,a,b):
            return a+b
        def chen(self,a,b):
            return a*b
        
    class TestClassB:
        def sub(self,a,b):
            return a-b
        def add(self,a,b):
            return a+b
        def chen(self,a,b):
            return a*b
    
    
    sys_config={}
    sys_config["01"]=['mymvc','TestClassA','add']
    sys_config["02"]=['mymvc','TestClassA','sub']
    sys_config["03"]=['mymvc','TestClassA','chen']
    sys_config["04"]=['mymvc','TestClassB','add']
    sys_config["05"]=['mymvc','TestClassB','sub']
    sys_config["06"]=['mymvc','TestClassB','chen']
    
    
    class MainHandler(tornado.web.RequestHandler):
        def get(self):
            
            
            ywdm=self.get_argument('ywdm')
            num1=int(self.get_argument('num1').encode('utf-8'))
            num2=int(self.get_argument('num2').encode('utf-8'))
            
            message="hello !"
            
            print type(num2)
            if ywdm in sys_config:
                my_module_name=sys_config[ywdm][0]
                my_class_name=sys_config[ywdm][1]
                my_method_name=sys_config[ywdm][2]
                
                my_module = __import__(my_module_name)
                my_class = getattr(my_module,my_class_name) 
                my_obj = my_class() 
                my_method = getattr(my_obj,my_method_name)
                ret=my_method(num1,num2)
                print "ret:",ret
                #message = "ret data:::"+ret
                message="ywdm:"+ywdm+"-data:"+str(ret)
                
            items = ["Item 1", "Item 2", "Item 3"]
            self.render("test.html", title="My title", items=items,config_items=sys_config)
            
                
            
            #self.write(message)
            #self.finish()
    
    
    
    
            
    application = tornado.web.Application([(r"/main", MainHandler),])
    
    if __name__ == "__main__":
        application.listen(9870)
        tornado.ioloop.IOLoop.instance().start()
    


     

     

     

    二、页面模板html: test.html

    <html>
       <head>
          <title>{{ title }}</title>
       </head>
       <body>
         <ul>
           {% for item in items %}
             <li>{{ escape(item) }}</li>
           {% end %}
         </ul>
    
         <ul>
           {% for item in config_items %}
             <li>{{ escape(config_items[item][0]) }}
    		 -{{ escape(config_items[item][1]) }}
    
    		 -{{ escape(config_items[item][2]) }}
    		 </li>
           {% end %}
         </ul>
    
    
       </body>
     </html>
    


     

    执行: mymvc.py

    然后浏览器输入:http://127.0.0.1:9870/main?ywdm=06&num1=10&num2=200

    返回如下:

     

    • Item 1
    • Item 2
    • Item 3
    • mymvc -TestClassA -sub
    • mymvc -TestClassA -chen
    • mymvc -TestClassA -add
    • mymvc -TestClassB -chen
    • mymvc -TestClassB -add
    • mymvc -TestClassB -sub

     

     

     

     

     

     

    展开全文
  • jquery模拟java集合中的map

    千次阅读 2015-03-26 16:42:31
    模拟java集合中的Map对象,方便用于存储key-value数据,使用方法如下: $(function() { $.Map.put('A', 'CC'); $.Map.put('B', 1); $.Map.put('C', true); alert("get方法:" + $.Map

    jquery.map

    模拟java集合中的Map对象,方便用于存储key-value数据,使用方法如下:

    <script src="jquery.map-0.0.1.min.js"></script>
    
    <script type="text/javascript">
        $(function() {
            $.Map.put('A', 'CC');
            $.Map.put('B', 1);
            $.Map.put('C', true);
    
            alert("get方法:" + $.Map.get('B'));
            alert("containsKey方法:" + $.Map.containsKey('C'));
            alert("containsValue方法:" + $.Map.containsValue(2));
            alert("remove方法:" + $.Map.remove('C'));
            alert("size方法:" + $.Map.size());
    
            alert("keys方法:" + $.Map.keys());
            alert("values方法:" + $.Map.values());
            alert("清空前调用isEmpty方法:" + $.Map.isEmpty());
            alert("clear方法:" + $.Map.clear());
            alert("清空后调用isEmpty方法:" + $.Map.isEmpty());
        });
    </script>
    

    方法说明

    • $.Map.put 向Map中设置值
    • $.Map.get 根据key从Map中获取值
    • $.Map.size 获取Map中元素个数
    • $.Map.remove 根据key删除Map中元素
    • $.Map.isEmpty 判断map是否为空,如果为空则返回true,否则返回false
    • $.Map.containsKey 判断map中是否存在指定的key,如果存在返回true,否则返回false
    • $.Map.containsValue 判断map中是否存在指定的value,如果存在返回true,否则返回false
    • $.Map.clear 清空map中所有元素
    • $.Map.keys 遍历map中所有key,返回所有key组成的数组
    • $.Map.values 遍历map中所有value,返回所有value组成的数组


    以下是源码:

    /**
     * 模拟java集合中Map的对象,方便用于存储key-value数据,使用方法如:
     * 
     * $(function() {
     * 	$.Map.put('key', 'value');
     * 	alert($.Map.get('key'));
     * });
     */
    jQuery.Map = {
    	// 数据存储对象
    	datamap : {},
    
    	// 根据key从Map中获取值
    	get : function(key) {
    		return this.datamap[key];
    	},
    
    	// 向Map中设置值
    	put : function(key, value) {
    		this.datamap[key] = value;
    	},
    
    	// 获取Map中元素个数
    	size : function() {
    		return this.keys().length;
    	},
    	
    	//根据key删除Map中元素
    	remove : function(key) {
    		delete this.datamap[key];
    	},
    
    	//判断map是否为空,如果为空则返回true,否则返回false
    	isEmpty : function() {
    		return this.size() == 0;
    	},
    
    	//判断map中是否存在指定的key,如果存在返回true,否则返回false
    	containsKey : function(key) {
    		return key in this.datamap;
    	},
    
    	//判断map中是否存在指定的value,如果存在返回true,否则返回false
    	containsValue : function(value) {
    		return this.values().indexOf(value) > -1;
    	},
    
    	//清空map中所有元素
    	clear : function() {
    		for (key in this.datamap) {
    			delete this.datamap[key];
    		}
    	},
    
    	//遍历map中所有key,返回所有key组成的数组
    	keys : function() {
    		keys = [];
    		for (key in this.datamap) {
    			keys.push(key);
    		}
    		return keys;
    	},
    
    	//遍历map中所有value,返回所有value组成的数组
    	values : function() {
    		values = [];
    		for (key in this.datamap) {
    			values.push(this.datamap[key]);
    		}
    		return values;
    	}
    };

    展开全文
  • Fiddler是一个http协议调试代理工具,它能够记录并检查... Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式用于模拟java,get/post请求,并且自动可以把返回数据转换...

    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式

    用于模拟java,get/post请求,并且自动可以把返回数据转换为json数据格式。

    它可以post提交,用于解决java  post 提交测试的问题:


    post提交,需要在数据类型下面加一个:

    Content-Type: application/x-www-form-urlencoded

    参数类型: a=1&b=2&c=3  没有引号

    二. 域名映射 :

    点击菜单 -> Tools -> HOSTS ->    

    然后填写服务器地址与映射:10.25.80.116   www.qwer.com.cn  最后保存; 

    记住如果菜单下面变成黄色,就代表映射失效,重新点击fiddler就好了

    ------------------------------------------------------------------------------

    提示:现在新出来一个工具叫 "postman" 大家可以尝试下。

    展开全文
  • 模拟Java堆溢出过程

    2019-06-22 12:59:46
    我们知道对象以及数组存在Java堆中,实际上数组也是对象,所以我们统称,实例对象存在Java堆上; 但是内存一定是有限的,只要不断的new对象,并且保障GC Roots到对象之间有可达路径来避免来GC清除这些对象,那么...

            我们知道对象以及数组存在Java堆中,实际上数组也是对象,所以我们统称,实例对象存在Java堆上

            但是内存一定是有限的,只要不断的new对象,并且保障GC Roots到对象之间有可达路径来避免来GC清除这些对象,那么一定会发生堆内存溢出;

            接下来我们就来模拟一下:

            1、我们创建一个内部类,在主方法中循环new这个类的对象

           2、当然,如果类中什么都不写的话,堆内存溢出还是需要一定时间的,所以啊,我们在类中构建一个数组,数组空间大小为1M,除此之外,我们可以更改一下JVM堆的最大值和最小值为20M,这样很快就可以看到堆溢出结果;

           -->查看堆最大值,最小值信息,java  -X

          -->设置最大值,最小值,打开Run/Debug Configuration,修改堆最大值-Xmx,最小值-Xms;

          -XX:运行后会Dump出来一个文件,通过MAT内存分析工具,可以分析问题的产生到底是出现了内存泄漏还是内存溢出

       代码如下:

    public class TestOOM {
        public static class OOMobject{
            private byte[] bytes=new byte[1024*1024];
        }
        public static void main(String[] args) {
            List<OOMobject> list=new ArrayList<>();
            while (true){
                list.add(new OOMobject());
            }
        }
    }

    运行之后,打开任务管理器/性能,观察内存状态:

    这个会比较快,可以在不在类中加数组的情况下运行,观察,就可以发现,很快就会达到峰值;

    观察结果:报错堆溢出,OOM,还有个文件

    第二行提示有个文件,存储在相对应的目录下,通过文件可分析错误信息:

    展开全文
  • 模拟Java栈溢出过程

    千次阅读 2019-06-22 15:15:01
    Java栈,是指Java虚拟机栈,本地方法栈; Java虚拟机栈是Java方法执行的内存模型,每个方法执行的同时都会创建一个栈帧用于存储局部变量,操作数栈,动态链接(在一个方法中调用另一个方法),方法出口等信息。每...
  • C++模拟java中的thread类

    千次阅读 2012-06-05 10:29:43
    用C++模拟JAVA中的Thread类,线程函数基于POSIX标准.这个还相当简单,以后准备逐渐完善,开成一个posix标准的C++线程池。废话少说,直接贴代码: #include #include #include using
  • /***************模拟java里的map集合***************/ function Map(){ var obj = {};//空对象,存放键值对 //put方法,存值
  • js模拟java同步锁

    千次阅读 2018-03-15 11:12:00
    有这方面知识的朋友,看到题目会认为,你这样做没有意义的,...所以这里只是模拟。    说明一下应用场景,在线考试系统有自动交卷和手工交卷,结构大致如下       function handInAuto(){  doHandIn();
  • 模拟Java Https双向验证

    千次阅读 2014-08-25 11:42:12
    import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.security.KeyManagementException; ...
  • 使用C模拟Java中的ArrayList

    万次阅读 2014-10-10 23:22:37
    虽然这些Java类都是使用Java语言实现的,但是别忘了,其实Java也是在C/C++的基础上发展起来的,只是当初规避了C的指针的复杂和一些C++的比较繁杂的特性(虽然现在Java越来越复杂了$_$……)。 ArrayList和数组最大...
  • 【文章标题】简单模拟Java中创建多线程的两种方法【文章作者】曾健生【作者邮箱】zengjiansheng1@126.com【作者QQ】190678908【作者博客】http://blog.csdn.net/newjueqi【编程环境】JDK 1.6.0_01【作者声明】欢迎...
  • 面向接口编程的例子,生活中的实例来说明接口的概念,对理解java接口有很大帮助!
  • Tomcat容器以及一些Web框架都使用了责任链设计模式来对请求和响应进行逐步的处理或者过滤,本文使用Java语言来模拟过滤器的实现。其序列图如下: 如果简单的使用责任链模式,用一个List来实现层层过滤,则...
  • java.lang.String中有一个很方便的方法format,可以方便的将不同的类型的参数格式化输出成字符串,在C++下面并没有这么方便的函数来支持这个需求。 于是我用C++11的变长参数模板实现了String.format的简单模拟,完成...
  • (2)JDK 1.6开始使用并发包java.concurrent高效解决线程安全问题 采用并发队列 ConcurrentLinkedQueue 作为票容器实现并发抢票 1 ...
  • 用Javascript中模拟Java中的Map

    千次阅读 2011-03-18 21:02:00
    用js模拟实现Map,代码如下:   var Map = function(){ var Entry = function(key, value){ this.key = key; this.value = value; }; this.entries = new Array(); this.put = ...
  • js调用父类方法,模拟java中的super()

    千次阅读 2014-09-29 16:01:23
    如题,使用apply,或者call来模拟 var baseClass = cc.LayerColor.extend({ ctor:function(){ this._super(); }, destory:function(){ console.log("hello,world."); } }) var subClass = baseClass....
  • 父子进程的通信(非线程模拟 java

    千次阅读 2010-10-28 20:01:00
     Process process = Runtime.getRuntime().exec("java -cp d:/java/child.jar; com.xie.netcourse3.Child");   //发送消息     BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(process....
  • 使用Java模拟登录

    万次阅读 2019-03-23 15:50:41
    使用Java模拟登录,成功登录
  • java模拟记事本

    2020-04-17 11:25:37
    一:程序框架图 ...import java.awt.im.spi.InputMethod; import java.io.FileNotFoundException; import java.io.FilePermission; import java.io.FileReader; import java.io.FileWriter; import j...
  • Java模拟记事本

    千次阅读 2019-11-23 21:40:51
    来源:Java基础案例教程 1、任务描述 模拟记事本,通过在控制台输入指令,实现在本地新建文件、打开文件和修改文件 功能: 1:新建文件 2:打开文件 3:修改文件 4:保存文件 5:退出 2、运行结果 实现代码 (1)...
  • java模拟点击

    千次阅读 2017-01-28 23:54:21
    在steam上玩一个叫hero clicker的游戏,讲白了就是...java.awt.Robot类是核心。该类可以模拟鼠标点击,滚动,移动;模拟键盘输入,截取屏幕图像等等。Robot robot=new Robot(); robot.mouseMove(1000,400); robot.dela
  • 模拟Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象并且保证GC ROOTS到对象之间有可达路径避免被回收机制清除,就可以模拟出Java堆溢出。 package hxl.insist.jvm; import java.util.ArrayList; ...
  • java模拟登陆

    2013-03-21 22:17:38
     方法是使用java模拟登陆,登陆后记录下cookie信息,在下次发起请求时时将cookie发送过去用以表明身份,这样就能够访问带有权限的URL了。  下面首先介绍使用java模拟登陆。 // 连接地址(通过阅读html源代码...
  • java模拟键盘操作,java自动化操作

    万次阅读 2021-01-28 14:10:18
    博客来源: 一个字,懒!这正是我前进的源泉…现在连操作电脑都想自动化了…… 已经打好的包————>... 已经打好的包————>...已经打好的包————>...话不多说上源码,注释很全,...import java.awt.even...
  • java模拟时钟

    千次阅读 2014-06-15 16:22:32
    import java.awt.*; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.util.Calendar; import java.util.Da
  • java 模拟窗口排队

    千次阅读 2017-06-17 15:39:52
    Java利用LinkedList模拟窗口排队效果
  • java模拟浏览器请求

    2014-05-15 14:24:58
    java模拟浏览器请求

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,571
精华内容 18,228
关键字:

模拟java

java 订阅