flash编程中root是什么意思起什么作用,setproperty(root.图片.图,-rotation,20)是什么意思?
2023-07-15 12:28:29- 瑞瑞爱吃桃
-
_root 指绝对路径,从主场景算起 _this 是相对路径,从本场景算起,如你的主场景有一MC,MC下有MC1,MC1下面有MC2,如果在mc1的时间轴上找MC2 ,_root.MC.MC1.MC2 或者 this.MC2。_root.语法在AS3.0里已经取消。
setproperty(root.图片.图,-rotation,20)
设置属性(主场景里一个实例名为图片的容器下的实例名为图的容器,角度设置为,20度)
- LocCloud
-
root指的主时间轴.
那句的意思是:设置属性:主时间轴上的那个图片旋转20度
Java中通过元素对象的什么方法可以设置元素的自定义属性?
在Java中,您可以通过 "setProperty" 方法向元素对象设置自定义属性。这个方法允许您向任意的元素对象中添加自定义属性,该属性可以是任意类型的数据,包括字符串、整数、浮点数或对象等等。以下是一个示例代码,演示如何通过 "setProperty" 方法设置元素的自定义属性:```java// 创建文本节点Text text = document.createTextNode("这是一段文本节点");// 设置自定义属性text.setProperty("customAttribute", "这是一个自定义属性");```在上面的代码中,我们首先创建了一个文本节点,然后通过 "setProperty" 方法为它设置了一个名为 "customAttribute" 的自定义属性,属性的值为 "这是一个自定义属性"。请注意,"setProperty" 方法对于所有 DOM 元素对象都是通用的,您可以将其应用于元素、属性或文本节点等任意类型的 DOM 对象。需要注意的一点是,自定义属性在 DOM 标准规范中是不被允许的,这就意味着如果您在将来需要将您的代码迁移到其他的浏览器或环境,您的自定义属性可能会在某些平台上不受支持。因此,我们建议只在必要时使用自定义属性。2023-07-15 07:25:311
setproperty是什么意思
你好。set property翻译成中文是:设置属性。——————希望帮到你,满意请采纳。2023-07-15 07:25:381
flash中的setProperty有哪几种属性
setProperty(target:Object, property:Object, expression:Object) : Void当影片剪辑播放时,更改影片剪辑的属性值。可用性:ActionScript 1.0、Flash Player 4参数 target:Object ― 要设置其属性的影片剪辑的实例名称的路径。property:Object ― 要设置的属性。expression:Object ― 或者是属性的新的字面值,或者是计算结果为属性新值的等式。示例 以下 ActionScript 创建一个新的影片剪辑并向其中加载一个图像。通过使用 setProperty() 对剪辑设置 _x 和 _y 坐标。当单击名为 right_btn 的按钮时,名为 params_mc 的影片剪辑的 _x 坐标会递增 20 个像素。this.createEmptyMovieClip("params_mc", 999); params_mc.loadMovie("1.jpg"); setProperty(this.params_mc, _y, 20); setProperty(this.params_mc, _x, 20); this.right_btn.onRelease = function() { setProperty(params_mc, _x, getProperty(params_mc, _x)+20); };2023-07-15 07:25:461
宏操作setproperty实现的功能
首先在模块里定义一个函数,执行set property的操作然后新建一个宏使用runcode方法调用这个函数。2023-07-15 07:25:532
在使用JavaBean时,setProperty标记的作用是
从功能上说,这两者的作用是一样的。但是propertyset有两点不同:第一,它说明了这个属性是一个与对象有关的属性;第二,在类的外面给属性赋值的时候必须使用set关键字。文件说明太抽象了,举个例子:"propertysetclassfileprivatem_fsopublicpropertysetfso(para_fso)m_fso=pata_fsoendpropertyendclassdimfsosetfso=createobject("scripting.filesystemobject")setobjfile=newfile"必须加上set,否则报错setobjfile.fso=fso"propertyletclassfileprivatem_fsopublicpropertyletfso(para_fso)m_fso=pata_fsoendpropertyendclassdimfsosetfso=createobject("scripting.filesystemobject")setobjfile=newfile"不能加上set,否则报错objfile.fso=fso应该说明白了吧,继续pythoning。2023-07-15 07:26:011
system.setproperty;怎么修改
* 设置指定键对值的系统属性* setProperty (String prop, String value);** 参数:* prop - 系统属性的名称。* value - 系统属性的值。** 返回:* 系统属性以前的值,如果没有以前的值,则返回 null。** 抛出:* SecurityException - 如果安全管理器存在并且其 checkPermission 方法不允许设置指定属性。* NullPointerException - 如果 key 或 value 为 null。* IllegalArgumentException - 如果 key 为空。* 注:这里的system,系统指的是 JRE (runtime)system,不是指 OS。**///实例System.setProperty("Property1", "abc");System.setProperty("Property2","def");//这样就把第一个参数设置成为系统的全局变量!可以在项目的任何一个地方 通过System.getProperty("变量");来获得,//System.setProperty 相当于一个静态变量 ,存在内存里面!2023-07-15 07:26:081
selenium java为什么注释掉System.setProperty一行会报错,说找不到元素
哪一行报错了?这个不能判断啊2023-07-15 07:26:253
在C++编程中遇到这个函数SetProperty,但不会用,谁能给我讲讲SetProperty函数的具体用法,要详细点的额
大噶撒打工撒打工撒该大厦2023-07-15 07:26:332
求CWnd::Setproperty()用法,说明
CWnd::SetPropertyvoid SetProperty( DISPID dwDispID, VARTYPE vtProp, ... );ParametersdwDispIDIdentifies the property to be set. This value is usually supplied by Component Gallery.vtPropSpecifies the type of the property to be set. For possible values, see the Remarks section for COleDispatchDriver::InvokeHelper....A single parameter of the type specified by vtProp.RemarksCall this member function to set the OLE control property specified by dwDispID.Note This function should be called only on a CWnd object that represents an OLE control.For more information about using this member function with OLE Control Containers, see the article ActiveX Control Containers: Programming ActiveX Controls in an ActiveX Control Container in Visual C++ Programmer"s Guide.2023-07-15 07:27:002
access怎样在宏里设置setproperty
首先在模块里定义一个函数,执行set property的操作,然后新建一个宏,使用runcode方法调用这个函数。2023-07-15 07:27:091
flash中setProperty("图",_x,(320-_x)*2),各函数代表什么意思啊?
这么老的AS版本了啊,你应该学习AS3.0了。setProperty("图",_x,(320-_x)*2)的意思就是:给名称为“图”的实例的X坐标赋值,新的X坐标值为(320-原X坐标值)再乘以2。另一种写法: 图._x = (320-图._x)*22023-07-15 07:27:171
system.getproperties.setproperty 有哪些参数
System可以有对标准输入,标准输出,错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。System.getProperties()可以确定当前的系统属性,返回值是一个Properties;System.load(String filename)等同于:System.getProperties().load(String filename)它们的作用是可以从作为动态库德本地文件系统中指定的文件名加载代码文件。System.setProperties(Properties propes):将系统属性设置为Properties参数;System.setProperties(String key,String value)等同于System.getProperties().setProperties(String key,String value):设置指定键指示的系统属性对于在程序中如果我们想得到一个资源文件中对应的键值对的内容,可以有两2023-07-15 07:27:251
javamail怎么设置代理发送邮件
public static void main(String[] args) throws Exception {MailTest test = new MailTest();//通过代理发送邮件test.sendMailByProxy();}private void sendMailByProxy()throws Exception{Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());// final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";//设置代理服务器Properties props = System.getProperties();props.setProperty("proxySet", "true");props.setProperty("socksProxyHost", "192.168.1.1");props.setProperty("socksProxyPort", "1080");props.setProperty("mail.smtp.host", "smtp.163.com");//props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);props.setProperty("mail.smtp.socketFactory.fallback", "false");props.setProperty("mail.smtp.port", "25");props.setProperty("mail.smtp.socketFactory.port", "25");props.put("mail.smtp.auth", "true");props.put("mail.debug", "true");props.put("mail.store.protocol", "pop3");props.put("mail.transport.protocol", "smtp");final String username = "用户名";final String password = "密码";//使用验证Session session = Session.getDefaultInstance(props,new Authenticator() {protected javax.mail.PasswordAuthentication getPasswordAuthentication() {return new javax.mail.PasswordAuthentication(username,password);}});MimeMessage message = new MimeMessage(session);Address address = new InternetAddress("xulei_19850322@163.com");Address toAaddress = new InternetAddress("xulei_19850322@yahoo.com.cn");message.setFrom(address);message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);message.setSubject("测试");message.setText("test");message.setSentDate(new Date());Transport.send(message);System.out.println("邮件发送!");}2023-07-15 07:27:321
HTTPS通信,System.setProperty线程安全么
这个是系统变量 , 全局的 , 一般这里没有什么线程安全不安全一说 , 因为基本上不会用这个来保存获取变量值 , 通常只是用System.getProperty() 来获取参数变量 , 非要归类的话 , 肯定是线程非安全的2023-07-15 07:27:401
JSP有哪些动作标识
JSP技术在多个方面加速了动态Web页面的开发: 一.将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 二.强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。中国公务网 2004-5-31 16:16:12 三.采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。 JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。 由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。 四.技术分析 Microsoft 公司的 ASP 技术也是动态网页开发技术。JSP和ASP从形式上非常相似,ASP程序员一眼就能认出<;% %>;以及<;%= %>;。但是深入探究下去会发现它们很多的差别,其中最主要的有以下三点: 1、 JSP的效率和安全性更高 ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的漏洞曾使得许多网站源程序大曝光,包括笔者以前用ASP开发的网站,ASP程序全部被人下载了去。JSP在执行以前先被编译成字节码 (byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中。 2、 JSP的组件 (Component) 方式更方便 ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方便。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JSWDK和Tomcat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。另外JavaBean是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email自动回复等等。 3、 JSP的适应平台更广 ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。2023-07-15 07:27:492
在Java的Properties类的setProperty()方法中输入汉语后为什么在文件中显示的却不是汉语
这是计算机编译的十六进制的中文,你用的是字节流,出来的是十六进制的编码,用字符流就出中文2023-07-15 07:27:582
java:关于PropertyUtils.setProperty方法
子类重载,父类的方法,权限只能放大.应该是.这样的2023-07-15 07:28:062
jsp里的setproperty怎么设置值为表达式?
你先确定<%= expression %>中是否有值。这种方式是可以的。2023-07-15 07:28:241
jsp的常用指令,jsp的指令有什么作用
Jsp包含三个编译指令和七个动作指令。三个编译指令为:page、include、taglib。七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。一、编译指令1、 page指令a. 通常位于jsp页面的顶端,同一个页面可以有多个page指令。语法格式如下: 〈% @page[language="Java"][extends="package.class"][import= "package. class I package. *},…"][session="true I false"][buffer="none I 8kb I size kb" 1[autoFlush="true I false"][isThreadSafe="true I false"][info="text"][errorPage="relativeURL"][contentType="mimeType[ ;charset=characterSet]" I"text/html;charset= "808859-1"][isErrorPage=" true I false"]%〉1)language属性,一般情况就是java,代表jsp页面使用的脚本语言。2)Extends属性,确定 JSP 程序编译时所产生的 Java 类,需要继承的父类,或者需要实现的接口的全限定类名。1.import属性,用来导入包,下面几个包是默认自动导入的,不需要显式导入。默认导入的包有: java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.*2.Session属性,设定这个 JSP 页面是否需要 HTIP session 。3.buffer属性,指定输出缓冲区的大小。输出缓冲区的 JSP 内部对象: out 用于缓存 JSP页面对客户浏览器的输出,默认值为 8kb,可以设置为 none ,也可以设置为其他值,单位为kb4.autoFlush属性,当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true 时为正常输出;如果设置为 false ,会在 buffer 溢出时产生一个异常。5.Info属性,设置该 JSP 程序的信息,也可以看做其说明,可以通过 Servlet. getServletInfo()方法获取该值。如果在 JSP 页面中,可直接调用 getServletInfoO方法获取该值,因为 JSP 页面的实质就是 Servlet 。errorPage属性,指定错误处理页面。如果本程序产生了异常或者错误,而该 JSP 页面没有对应的处理代码,则会自动调用该指令所指定的 JSP 页面。使用 JSP 页面时,可以不处理异常,即使是 checked 异常。(重定向到对应的错误处理页面,但是URL还是原来的URl,并不发生变化)如果这个页面不存在这个属性,那么一旦代码出现问题,就会在开发环境和IE浏览器上提示错误。可见这条属性控制异常处理的效果在表现形式上要好的多。6.IsErrorPage属性,设置本 JSP 页面是否为错误处理程序。如果该页面本身己是错误处理页面,则无须使用 errorPage 属性。7.ContentType属性,用于设定生成网页的文件格式和编码方式,即 MIME 类型和页面字符集类型,默认的 MIME 类型是 text/html; 默认的字符集为 ISO-8859-1 。2、 include指令 使用 include 指令,可以将一个外部文件嵌入到当前 JSP 文件中,同时解析这个页面中的 JSP 语句(如果有的话)。这是个静态的 include 语旬,不会检查所包含 JSP 页面的变化。 include 既可以包含静态的文本,也可以包含动态的 JSP 页面。静态的编译指令include ,是将被包含的页面加入进来,生成一个完整的页面。include 编译指令的语法:〈% @include file="relativeURLSpec" %〉 如果被嵌入的文件经常需要改变,建议使用<jsp:include>操作指令,因为它是动态的 include 语句。 包含include指令的jsp页面在部署后,经过访问编译生成java文件,在tomcat的 workCatalinalocalhostprojectorgapachejsp目录下会生成对应的java文件,这些文件与jsp的名字相同,他包含了编译后的代码,甚至include包含的另外一个jsp的代码也被相应的加入了进来。二、 动作指令1、 forward指令:forward 指令用于将页面响应控制转发给另外的页面。既可以转发给静态的 HTML页面,也可以转发到动态的 JSP 页面,或者转发到容器中的 Servlet。JSP 的 forward 指令的格式如下:对于 JSP 1. 0 ,使用如下语法: <jsp:forward page=”{relativeURL |<%=expression%>}” />可使用如下语法:<jsp:forward page=”{relativeURL |<%=expression%>}”>{<jsp:param…/>}</jsp:forward>第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest 类的 getParameter方法获取。2、 include指令,它是一个动态的指令,可以用于导入某个页面。它的导入会每次检查被导入页面的改变。下面是include指令的使用格式:<jsp:include page=”{relativeURL |<%=expression%>}” flush=”true” />或者:<jsp:include page=”{relativeURL |<%=expression%>}” flush=”true”><jsp:param name=”paramName” value=”paramValue”/></jsp:include>flush 属性用于指定输出缓存是否转移到被导入文件中。如果指定为剧。则包含在被导入文件中;如果指定为false,则包含在原文件中。对于JSP 1.1以下的旧版本,只能设置为false。<include>和<jsp:include>分别为静态导入和动态导入。他们的的区别:静态导入是将被导入页面的代码完全插入,两个页面生成一个整体的 Servlet; 而动态导入则在 Servlet 中使用动态导入,从而将页面引入。3、 useBean、setProperty和getProperty指令这三个指令都是与JavaBean相关的指令,其中useBean用于在jsp页面初始化一个java实例,setProperty用于修改JavaBean实例的属性,getProperty用于获取JavaBean实例的属性。useBean的语法格式:<jsp:useBean id=”” class=”” scope=”page | request |session | application” >Id是JavaBean的实例名,class属性确定JavaBean的实现类。Scope属性确定生存范围【页面、请求、会话、应用】setProperty的语法格式:<jsp:setProperty name=”” property=”” value=”” />Name属性确定需要设定4、 plugin指令plugin 指令主要用于下载服务器端的 JavaBean 或 Applet 到客户端执行。由于程序在客户端执行,因此客户端必须安装虚拟机。plugin 的语法格式如下:<jsp:plugin type=”bean | applet"code="classFileName"codebase="classFileDiretoryName"[name=" instanceName"][archive="URLtoArchive"][align= "bottom I top I middle I left I right"][heigh="displayPixels"][width="displayPixels"][hspace="leftRightPixels"][vspace="topBottomPiexels"][jreversion=JREVersionNumber|1.2"][nspluginurl="URLToPlugin"][iepluginurl="URLToPlugin"]>[<jsp:parames>[jsp:param name="parameterName" value="parameterValue" />]</jsp:params>][<jsp:fallback>text message for user that can no see the plugin</jsp:fallback> ]</jsp:plugin>这些属性的说明如下:Type: 指定被执行的java程序的类型,是一个bean还是一个appletCode: 指定被执行的文件名,该属性值必须以“.class”扩展名结尾Codebase: 指定被执行的文件目录。Name: 给该程序起一个名字用来标识该程序。Archive: 指向一些要预先载入的将要使用到的类的路径。Hspace,Vspace: 显示左右上下的留白。jreversion: 能正确运行改程序必须的JRE版本。Nsplugin,ieplugin: Netscape Navigator, Internet Exploer 下载运行所需JRE 的地址。<jsp:fallback>指令:当不能正确显示该applet时,代替显示的提示信息。5、 param指令param指令用于设置参数值,这个指令本身不能单独使用,因为单独使用没有意义。它可以和以下几个指令合起来使用jsp:includejsp:forwardjsp:plugin2023-07-15 07:28:311
测试时报错:调用的方法setproperty可能未定义,访问的属性_rotation可能未定义
测试时报错:调用的方法setproperty可能未定义,访问的属性_rotation可能未定义叼拼能躬肆三域榨唤因另类祝福加温婚礼听惯了千篇一律的“心心相印”、“永结同心”、“相亲相爱”之类的已经经典到缺乏创意的词语,多少有点厌倦了。秉着“语不惊人死不休”的信念,人们损失了大量脑细胞创造着......2023-07-15 07:28:391
怎样让日期范围走索引?
Oracle中我们经常使用Date字段类型记录日期和时间,有的时候还在这个字段上建立索引。然后通过Java程序访问数据库的时候,我们很自然的类似这样使用:select * from table where endDate>? and endDate<?,然后通过PreparedStatement预编译,再通过setTimestamp传入由java.util.Date转成java.sql.Timestamp的参数(因为java.sql.Date只有日期,java.sql.Time只有时间,所以我们只能用java.sql.Timestamp类型)。我们会认为这样应该走索引区间扫描,效率应该是非常高的。 而事实上,Oracle会把sql解释成如下这样来执行:select * from table where TO_TIMESTAMP(endDate)>? and TO_TIMESTAMP(endDate)<?; 为什么?因为传入的参数是timestamp类型,Oracle从9.2版本以后支持这种类型,所以Oracle做了这样的转换,结果就是这个SQL执行变成了全表扫描。我们做的试验,加了一个index hint,强制走时间索引字段,结果效率也不高,sql执行变成了全索引扫描,和全表扫描没多大区别。结果效率还是低。 不光直接使用JDBC会是这样,Spring,iBatis在处理传入参数是java.util.Date类型的时候,都会使用setTimestamp设定参数,所以都需要注意。 解决办法(四种解决办法,推荐方案一):1.sql修改成这样:select * from table where endDate>to_date(?,"yyyymmddhh24miss") and endDate<to_date(?,"yyyymmddhh24miss");然后将传入参数格式化成对应格式的字符串在传入,这样由Oracle将字符串转成Date类型,就很顺利的走索引区间扫描,效率最高。 2.在建立数据库连接的时候增加一个属性oracle.jdbc.V8Compatible=true,代码如下:Properties prop=new Properties();prop.setProperty(“user”,”****”);prop.setProperty(“password”,”****”);prop.setProperty(“oracle.jdbc.V8Compatible”,”true”);Connection connection = DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:test”, prop);连接池也根据各自的配置方式增加这个属性即可。目前看来这个属性参数是处理时间映射关系的,但是还不确定它是否会带来其他的问题,所以要慎重使用。 3.修改数据库列类型为timestamp类型。 4.依据网上资料,Oracle 11g修改了驱动 api,使用方式可能也会有改变。因为无法试验,所以也不确定具体细节。2023-07-15 07:28:471
我要建设一个网站,像奥比岛、摩尔庄园的大型小游戏怎样建设
方法一:通过单击按钮实现物体的单位运动这种方法一般在需要按键的游戏中使用。你也可以给某个实体加上这段代码,然后通过单击这个实体达到某种游戏效果。1、打开Flash,按快捷键"Ctrl+M"打开[MovieProperties]面板。根据你的要求设置场景大小和背景颜色。2、按快捷键北京网站设计"Ctrl+F8"新建一个名为Graphic的Graphic符号(MovieClip符号也行)。3、按快捷键"Ctrl+R"导入一张动物图片(我导入图片中动物的脸是面向右的,这样是为了移动效果更真实)。你也可以在move影片的场景里随便画个方块或圆圈。不过这样做效果就不太明显了。4、按快捷键"Ctrl+F8"北京网页设计新建一个名为move的MovieClip符号,把Graphic符号拖拽到move影片的第1帧中。双击第1帧,输入函数Stop()。右键单击第1帧,选择CopyFrames命令。然后右键单击第2帧,选择PasteFrames命令。5、选择move影片第2帧中的图片,执行[Modify]→[Transform]→[FlipHorizontal]命令把图片水平翻转。注意:影片在第1帧和第2帧中的位置应该是一样的(用快捷键"Ctrl+Alt+I"打开Instance面板设置图片的X轴Y轴坐标)。6、回到主场景,按快捷键"Ctrl+L"打开Library后按住鼠标左键把影片move拖拽到场景中。按快捷键"Ctrl+I"打开Instance面板,给move影片起名为mc。7、单击[Windows]菜单→[CommonLibraries]→[Bottons]打开按钮符号库。选择"(circle)VCRButtonSet"中的"gelLeft"和"gelRight"按钮,然后把它们拖拽到场景中适当的位置。8、右键单击"gelLeft"按钮,输入如下代码:网站建设on(release){网站制作tellTarget("_root.mc"){//告知电影以被调用,跳转到第2帧网页设计gotoAndStop(2);//跳转到第二帧后,影片就换了个方向网站建设}网站制作movex=getProperty("/mc",_x);//将影片在场景中的X坐标值附给movex网站制作vmovex=movex-10;//以10个像素为单位变动坐标值,实现物体的移动。北京网页设计setProperty("/mc",_x,movex);//重新定义影片的_x坐标属性网站设计}9、右键单击"gelRight"按钮,输入如下代码://单击此按钮,跳转到第1帧。实现图片地翻转网站制作on(release){//以下代码含义参考上面网站建设tellTarget("/mc"){北京网站设计gotoAndStop(1);网站制作}北京网站制作movex=getProperty("/mc",_x);网页设计movex=movex+10;北京网页设计setProperty("/mc",_x,movex);网站设计}网页设计以上两段代码是用来控制物体左右运动的。至于控制物体垂直方向运动的代码可以结合"方法二"自己编写。最终效果如图1。另外,你可以通过"onClipEvent(mouseDown){}"语句实现单击鼠标左键实现物体的单向运动。"{}"中添加的代码参考"方法一",很简单的,篇幅关系我这里就不多说了。但是"方法一"的设计还有一些不完美。这些我们将在"方法二"中解决。方法二:通过敲击方向键实现物体的单位运动这种方法在游戏中是经常被使用到的,尤其是RPG游戏,学会它是设计RPG和其它很多游戏(如俄罗斯方块)的基础。实例中用的是小键盘的方向键,你有可以把它改成其它键,做出各种你想要的效果。1-5步同"方法一"。6、右键单击move影片第1帧中的Graphic图片(是右键单击图片,不是帧),选择Actions命令。输入如下的代码:北京网站设计onClipEvent(keyDown){//当键被按下后执行下面的语句网站建设if(Key.getCode()==Key.LEFT){北京网站建设//如果击键为←键就告之影片跳到第2帧执行。实现图片地翻转企通互联tellTarget("/mc"){北京网站设计gotoAndStop(2);网站建设}北京网站设计}北京网站制作if(Key.getCode()==Key.RIGHT){//如果击键为→键就执行下面的语句北京网站制作width=getProperty("/mc",_width);//把影片宽度附值给变量width北京网站建设movex=getProperty("/mc",_x);北京网站制作movex=movex+width/10;//以影片宽度的十分之一作为图片移动的单位值网页设计setProperty("/mc",_x,movex);网站制作}北京网页设计if(Key.getCode()==Key.UP){//以下代码含义参考上面网站建设企通互联height=getProperty("/mc",_height);北京网页设计movex=getProperty("/mc",_y);企通互联movex=movex-height/40;北京网页设计setProperty("/mc",_y,movex);网页设计}北京网站设计if(Key.getCode()==Key.DOWN){企通互联height=getProperty("/mc",_height);企通互联movex=getProperty("/mc",_y);网站设计movex=movex+height/40;北京网页设计setProperty("/mc",_y,movex);网站设计}北京网站建设}网站建设7、右键单击第2帧中的move影片,选择Actions网站制作命令。输入如下代码:企通互联onClipEvent(keyDown){//以下代码含义参考上面企通互联if(Key.getCode()==Key.LEFT){北京网站设计width=getProperty("/mc",_width);网站建设movex=getProperty("/mc",_x);网站制作movex=movex-width/10;北京网页设计setProperty("/mc",_x,movex);网站建设}北京网站设计if(Key.getCode()==Key.RIGHT){网站建设//如果击键为→键就告之影片跳到第1帧执行。实现图片地翻转网站制作tellTarget("/mc"){企通互联网站设计gotoAndStop(1);网站建设}网站设计}网页设计//还有两段控制图片上下运动的代码同上网站设计}北京网页设计8、回到主场景,按快捷键"Ctrl+L"打开Library后按住鼠标左键把影片move拖拽到场景中。按快捷键"Ctrl+I"打开Instance面板,给影片move起名为mc。这样,影片就可以做上下左右的运动了。不相信你可以按小键盘上的方向键试试看。最终效果如图2。不过大家又发现一个问题,就是实体一直往一个方向移动的话,然后就会跑的无影无踪。那怎么办呢?别急,让我们再给实体加上下面一段代码,让实体出不了边界:右键单击move影片第1帧中的Graphic图片,然后在"movex=movex+width/10;"代码下添加如下代码:if(movex>=300-width){//假设影片的场景宽度为300;网站制作movex=300-width;//这样设置是因为场景是以左上角的点为(0,0)点的北京网页设计}北京网站建设右键单击move影片第2帧中的Graphic图片,然后在"movex=movex-width/10;"添加如下代码:北京网站制作if(movex<=0){北京网站制作movex=0;北京网站设计}网页设计在垂直方向运动的代码你可以自己写了吧,我这里就不说什么了。影片中,你也可以把图片换成动画。如果你想自己做人物动画(如果你自己不会画的话,就把GIF动画拆下来用。明白嘛!),你可以制作8张图片,两个一组,前后左右方位的共四组,然后在影片中再增加几帧就OK了(大家可以自己探索一下)。这样就不会象导入Gif动画后影片一直动个不停了。方法三、通过鼠标拖拽和点击实现物体的任意运动拖拽方法的实现是很简单的,但它在游戏中的运用却是很广泛的。如拼图,推箱子,打老鼠,棋类等游戏都要用到这种方法。新增一个名为"mc"的影片。然后右键单击鼠标输入下面的代码即可:网站建设onClipEvent(mouseDown){//当鼠标按下时执行下面代码网页设计startDrag(mc);//让影片吸附在鼠标并跟随鼠标一起运动北京网页设计}网页设计北京网站建设onClipEvent(mouseUp){//当松开鼠标时执行下面代码北京网站制作stopDrag();//影片脱离鼠标北京网站建设企通互联}这段代码的功能是点击一下鼠标,影片就出现在什么地方。新增一个名为"mc"的影片。然后右键单击鼠标输入下面的代码即可:onClipEvent(mouseDown){企通互联x=_root._xmouse;//把鼠标当前在场景中的X坐标值附值给变量x北京网站设计y=_root._ymouse;//把鼠标当前在场景中的Y坐标值附值给变量y北京网站设计setProperty("/mc",_x,x);北京网站制作setProperty("/mc",_y,y);北京网页设计}好了,说得差不多了。只要大家掌握了以上几种实体的运动方法,再结合一些其它的Flash制作和编程手段,就一定能开发出属于自己的Flash游戏。在这里,我祝大家在Flash的"康庄大道"上一帆风顺。1:分工一般是,项目负责人、主程、美工、策划、销售、营销经理2:工具程序部分:简单点说,有记事本就可以了。高级点的武器,visualstudio或者eclipse。dwsqlserverormysql,一些负载测试工具。美工:ps、3dmax、maya策划:程序写脚本编译器、数值平衡(纸和笔有时就OK了2023-07-15 07:28:541
AS3 1086: 语法错误: 在 leftbrace 之前应该有分号。 1084: 语法错误: rightbrace 应在 leftbrace 之前。
你这12行是有问题呀,你这tellTarget()是个函数?如果是函数,那就单独的写在外面,而且要加关键在function 啊,我没看懂你想表达什么意思2023-07-15 07:29:013
flash时钟制作问题求助
你并没有加nClipEvent (enterFrame) 函数。。`2023-07-15 07:29:094
jsp有哪些动作?作用分别是什么?
jsp动作标记有哪些在JSP中的动作指令包括:Include、Forward、UseBean、GetProperty、SetProperty、Plugin。Include指令jsp:include标签表示包含一个静态的或者动态的文件。jsp:forward动作元素jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。jsp动作JSP动作利用XML语法格式的标记来控制Servlet引擎的行为。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。JSP动作包括:jsp:include:在页面被请求的时候引入一个文件。JSP的操作指令包括哪些?各自能完成什么作用?request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header,和session数据的有用的方法。Jsp包含三个编译指令和七个动作指令。三个编译指令为:page、include、taglib。七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。语法格式如下:jsp:getPropertyname=myNameproperty=someProperty.../jsp:forward动作元素jsp:forward动作把请求转到另外的页面。jsp三大指令标记七大动作九大对象是什么1、jsp九大内置对象是:request对象,response对象,session对象,application对象,out对象,pageContext对象,config对象,page对象,exception对象。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception对象几乎定义了所有异常情况。2、jsp内置对象是Web容器创建的一组对象,可以不加声明和创建就可以在JSP页面脚本(Java程序片和Java表达式)中直接使用的成员变量一共有九大内置对象。3、七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。编译指令page指令a.通常位于jsp页面的顶端,同一个页面可以有多个page指令。JSP有哪些动作标识1、在JSP中的动作指令包括:Include、Forward、UseBean、GetProperty、SetProperty、Plugin。Include指令jsp:include标签表示包含一个静态的或者动态的文件。2、jsp:forward动作元素jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。3、jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。11jsp:include动作该动作把指定文件插入正在生成的页面。4、七个动作指令为:jsp:forward、jsp:param、jsp:include、jsp:plugin、jsp:useBean、jsp:setProperty、jsp:getProperty。编译指令page指令a.通常位于jsp页面的顶端,同一个页面可以有多个page指令。5、标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。2023-07-15 07:29:181
哪位大虾用JAVA玩过IMAP协议
我连接163 邮箱测试。 以下是我的连接 IMAP SSL 993 的代码 如果我port设置为 143 就可以正常连接// 动态的添加security provider Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); // 下面的代码就是替换不同协议的socket factory final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; Properties props = System.getProperties(); props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY); //如果我们希望JavaMail只处理SSL的连接, 对于非SSL的连接不做处理, 那么我们最好设置fallback为false props.setProperty("mail.imap.socketFactory.fallback", "false"); props.setProperty("mail.imap.port", port); props.setProperty("mail.imap.socketFactory.port", port); mailsession = Session.getDefaultInstance(props, null); store = mailsession.getStore("imap"); try { log.info("IMAP:SSL"+port+"开始连接"); store.connect(host, port,username,password); } catch (Exception e) { log.info("IMAP:SSL"+port+"连接失败"); }2023-07-15 07:29:251
system.setproperty 和classloader相关吗
class.forName()加载驱动连接数据库只是一种方式,而你的是另外一种方式; jdbc是java类连接数据库的驱动,就像你电脑的独立显卡,没有驱动是工作不了的、2023-07-15 07:29:441
如何存储java.util.Date到mysql中
,即java.util.Date的getTime() 方法,得到毫秒值,然后用java.sql.Timestamp 的构造方法,构造一个java.sql.Timestamp对象 java.sql.Timestamp newdate=new java.sql.Timestamp(olddate.getTime()); ps.setTimestamp(i++, newdate);2023-07-15 07:30:021
kafka问题求助
Kafka是由LinkedIn设计的一个高吞吐量、分布式、基于发布订阅模式的消息系统,使用Scala编写,它以可水平扩展、可靠性、异步通信和高吞吐率等特性而被广泛使用。目前越来越多的开源分布式处理系统都支持与Kafka集成,其中Spark Streaming作为后端流引擎配合Kafka作为前端消息系统正成为当前流处理系统的主流架构之一。然而,当下越来越多的安全漏洞、数据泄露等问题的爆发,安全正成为系统选型不得不考虑的问题,Kafka由于其安全机制的匮乏,也导致其在数据敏感行业的部署存在严重的安全隐患。本文将围绕Kafka,先介绍其整体架构和关键概念,再深入分析其架构之中存在的安全问题,最后分享下Transwarp在Kafka安全性上所做的工作及其使用方法。Kafka架构与安全首先,我们来了解下有关Kafka的几个基本概念:Topic:Kafka把接收的消息按种类划分,每个种类都称之为Topic,由唯一的Topic Name标识。Producer:向Topic发布消息的进程称为Producer。Consumer:从Topic订阅消息的进程称为Consumer。Broker:Kafka集群包含一个或多个服务器,这种服务器被称为Broker。Kafka的整体架构如下图所示,典型的Kafka集群包含一组发布消息的Producer,一组管理Topic的Broker,和一组订阅消息的Consumer。Topic可以有多个分区,每个分区只存储于一个Broker。Producer可以按照一定的策略将消息划分给指定的分区,如简单的轮询各个分区或者按照特定字段的Hash值指定分区。Broker需要通过ZooKeeper记录集群的所有Broker、选举分区的Leader,记录Consumer的消费消息的偏移量,以及在Consumer Group发生变化时进行relalance. Broker接收和发送消息是被动的:由Producer主动发送消息,Consumer主动拉取消息。然而,分析Kafka框架,我们会发现以下严重的安全问题:1.网络中的任何一台主机,都可以通过启动Broker进程而加入Kafka集群,能够接收Producer的消息,能够篡改消息并发送给Consumer。2.网络中的任何一台主机,都可以启动恶意的Producer/Consumer连接到Broker,发送非法消息或拉取隐私消息数据。3.Broker不支持连接到启用Kerberos认证的ZooKeeper集群,没有对存放在ZooKeeper上的数据设置权限。任意用户都能够直接访问ZooKeeper集群,对这些数据进行修改或删除。4.Kafka中的Topic不支持设置访问控制列表,任意连接到Kafka集群的Consumer(或Producer)都能对任意Topic读取(或发送)消息。随着Kafka应用场景越来越广泛,特别是一些数据隐私程度较高的领域(如道路交通的视频监控),上述安全问题的存在犹如一颗定时炸弹,一旦内网被黑客入侵或者内部出现恶意用户,所有的隐私数据(如车辆出行记录)都能够轻易地被窃取,而无需攻破Broker所在的服务器。Kafka安全设计基于上述分析,Transwarp从以下两个方面增强Kafka的安全性:身份认证(Authentication):设计并实现了基于Kerberos和基于IP的两种身份认证机制。前者为强身份认证,相比于后者具有更好的安全性,后者适用于IP地址可信的网络环境,相比于前者部署更为简便。权限控制(Authorization):设计并实现了Topic级别的权限模型。Topic的权限分为READ(从Topic拉取数据)、WRITE(向Topic中生产数据)、CREATE(创建Topic)和DELETE(删除Topic)。基于Kerberos的身份机制如下图所示:Broker启动时,需要使用配置文件中的身份和密钥文件向KDC(Kerberos服务器)认证,认证通过则加入Kafka集群,否则报错退出。Producer(或Consumer)启动后需要经过如下步骤与Broker建立安全的Socket连接:1.Producer向KDC认证身份,通过则得到TGT(票证请求票证),否则报错退出2.Producer使用TGT向KDC请求Kafka服务,KDC验证TGT并向Producer返回SessionKey(会话密钥)和ServiceTicket(服务票证)3.Producer使用SessionKey和ServiceTicket与Broker建立连接,Broker使用自身的密钥解密ServiceTicket,获得与Producer通信的SessionKey,然后使用SessionKey验证Producer的身份,通过则建立连接,否则拒绝连接。ZooKeeper需要启用Kerberos认证模式,保证Broker或Consumer与其的连接是安全的。Topic的访问控制列表(ACL)存储于ZooKeeper中,存储节点的路径为/acl/<topic>/<user>,节点数据为R(ead)、W(rite)、C(reate)、D(elete)权限的集合,如/acl/transaction/jack节点的数据为RW,则表示用户jack能够对transaction这个topic进行读和写。另外,kafka为特权用户,只有kafka用户能够赋予/取消权限。因此,ACL相关的ZooKeeper节点权限为kafka具有所有权限,其他用户不具有任何权限。构建安全的Kafka服务首先,我们为Broker启用Kerberos认证模式,配置文件为/etc/kafka/conf/server.properties,安全相关的参数如下所示:其中,authentication参数表示认证模式,可选配置项为simple, kerberos和ipaddress,默认为simple。当认证模式为kerberos时,需要额外配置账户属性principal和对应的密钥文件路径keytab.认证模式为ipaddress时,Producer和Consumer创建时不需要做任何改变。而认证模式为kerberos时,需要预先创建好相应的principal和keytab,并使用API进行登录,样例代码如下所示:public class SecureProducer extends Thread {private final kafka.javaapi.producer.Producer<Integer, String> producer;private final String topic;private final Properties props = new Properties();public SecureProducer(String topic) { AuthenticationManager.setAuthMethod(“kerberos”); AuthenticationManager.login(“producer1″, “/etc/producer1.keytab”);props.put(“serializer.class”, “kafka.serializer.StringEncoder”);props.put(“metadata.broker.list”,“172.16.1.190:9092,172.16.1.192:9092,172.16.1.193:9092″);// Use random partitioner. Don"t need the key type. Just set it to Integer. // The message is of type String. producer = new kafka.javaapi.producer.Producer<Integer, String>(new ProducerConfig(props));this.topic = topic;}. . .Topic权限管理Topic的权限管理主要是通过AuthorizationManager这个类来完成的,其类结构如下图所示:其中,resetPermission(user, Permissions, topic) 为重置user对topic的权限。grant(user, Permissions, topic) 为赋予user对topic权限。revoke(user, Permissions, topic) 为取消user对topic权限。isPermitted(user, Permissions, topic) 为检查user对topic是否具有指定权限。调用grant或revoke进行权限设置完成后,需要commit命令提交修改到ZooKeeperKerberos模式下,AuthorizationManager需要先使用AuthenticationManager.login方法登录,与ZooKeeper建立安全的连接,再进行权限设置。示例代码如下所示:public class AuthzTest {public static void main(String[] args) {Properties props = new Properties();props.setProperty(“authentication”, “kerberos”);props.setProperty(“zookeeper.connect”, “172.16.2.116:2181,172.16.2.117:2181,172.16.2.118:2181″);props.setProperty(“principal”, “kafka/host1@TDH”);props.setProperty(“keytab”, “/usr/lib/kafka/config/kafka.keytab”);ZKConfig config = new ZKConfig(props);AuthenticationManager.setAuthMethod(config.authentication());AuthenticationManager.login(config.principal(), config.keytab());AuthorizationManager authzManager = new AuthorizationManager(config);// reset permission READ and WRITE to ip 172.16.1.87 on topic test authzManager.resetPermission(“172.16.1.87″,new Permissions(Permissions.READ, Permissions.WRITE), “test”);// grant permission WRITE to ip 172.16.1.87 on topic test authzManager.grant(“172.16.1.87″, new Permissions(Permissions.CREATE), “test”);// revoke permission READ from ip 172.16.1.87 on topic test authzManager.revoke(“172.16.1.87″, new Permissions(Permissions.READ), “test”);// commit the permission settings authzManager.commit();authzManager.close();}}ipaddress认证模式下,取消和赋予权限的操作如下所示:public class AuthzTest {public static void main(String[] args) {Properties props = new Properties();props.setProperty(“authentication”, “ipaddress”);props.setProperty(“zookeeper.connect”,“172.16.1.87:2181,172.16.1.88:2181,172.16.1.89:2181″);ZKConfig config = new ZKConfig(props);// new authorization managerAuthorizationManager authzManager = new AuthorizationManager(config);// reset permission READ and WRITE to ip 172.16.1.87 on topic testauthzManager.resetPermission(“172.16.1.87″,new Permissions(Permissions.READ, Permissions.WRITE), “test”);// grant permission WRITE to ip 172.16.1.87 on topic testauthzManager.grant(“172.16.1.87″, new Permissions(Permissions.CREATE), “test”);// revoke permission READ from ip 172.16.1.87 on topic testauthzManager.revoke(“172.16.1.87″, new Permissions(Permissions.READ), “test”);// commit the permission settingsauthzManager.commit();authzManager.close();}}总结与展望本文通过介绍Kafka现有架构,深入挖掘其中存在的安全问题,并给出Transwarp在Kafka安全上所做的工作及其使用方式。然而,纵观Hadoop & Spark生态系统,安全功能还存在很多问题,各组件的权限系统独立混乱,缺少集中易用的账户管理系统。某些组件的权限管理还很不成熟,如Spark的调度器缺少用户的概念,不能限制具体用户使用资源的多少。Transwarp基于开源版本,在安全方面已有相当多的积累,并持续改进开发,致力于为企业用户提供一个易用、高效、安全和稳定的基础数据平台。2023-07-15 07:30:091
用C#语言连接sde数据库
添加引用试试?2023-07-15 07:30:193
制作Flash时钟的问题
将鼠标定义在时间线的第一桢上,我们要对它添加Action,做一些初始化工作。time = new Date(); //获取系统日期 hours = time.getHours(); //获取系统小时数(24小时制,0-23) minutes = time.getMinutes(); //获取系统分钟数 seconds = time.getSeconds(); //获取系统秒数 if (hours>12) { //假如系统时间大于12,系统时间可能是用24小时表示的 hours = hours-12; //系统时间数减去12赋予hours变量,因为我们的钟是12小时的 } if (hours<1) { //假如系统时间小于1 hours = 12; //则hours变量为12,因为钟上没有0点的说法 } hours = hours*30+int(minutes/2); hours变量=前面给的小时数+分钟数/2 ,这里是在计算时针应该旋转的角度 minutes = minutes*6+int(seconds/10); // minutes变量=前面给的分钟数+秒数/10 ,这里是在计算分针应该旋转的角度 seconds = seconds*6; //seccondes变量=前面获得的秒数×6,因为钟有360度 接着,对时针进行添加如下Action(讲鼠标定位于时针上):onClipEvent (enterFrame) { setProperty (this, _rotation, _root.hours); //当该Movie Clip开始工作时,设置当前对象(当然是这个指针了)的角度为根目录下hours变量的值。 } 同样对分针和秒针分别添加如下Action:onClipEvent (enterFrame) { setProperty (this, _rotation, _root.minutes); } onClipEvent (enterFrame) { setProperty (this, _rotation, _root.seconds); }2023-07-15 07:30:261
myeclipse的输出问题System.out.println(System.getProperty("file.encoding"));
你年一下文件编码 ,是UTF-8吗?另外,虚机团上产品团购,超级便宜2023-07-15 07:30:343
java中如何将数据封装为JSON包?
直接输出就可以了String jsondata = "{"a":" + a + ","b":" + b + ","c":" + c + "}";如果abc是字符串就加上单引号,如String jsondata = "{"a":"" + a + "","b":"" + b + "","c":"" + c + ""}";如果abc是数组String jsondata = "{"a":[" + a[0] + "," + a[1] + "," + a[2] + "],"b":...}";如果abc是对象就相对复杂一点String jsondata = "{"a":{"a_paramStr":"" + a.paramStr + "","a_pramaInt"}:a.pramaInt},"b":...}";当然,如果对象的成员变量很多,可以可以通过对象遍历的方式输出,还有包含子对象、子子对象的情况总结如下格式:{"数据名":数据值}数据值为数字时,直接输出数据值为字符串时,用单引号包含值,"数据值"数据值为数组时,用中括号包含,[数据值1,数据值2,...]数据值为对象时,用大括号包含,{"成员名1":成员数值1,"成员名2":{"成员2对象的成员1","成员2对象的成员1值"},...}数据与数据之间用逗号隔开,以上一句话,如果传送数据很简单可以自己输出;如果很复杂,乖乖用三方json包吧,我真不懂为什么抗拒别人做的车轮2023-07-15 07:30:561
system.setproperty"webdriver.chrome.driver",可以启动不同的浏览器吗
这个是设置chromeDriverServer的路径的 只能启动Chrome,你要启动ie或者其他浏览器,c参数就要变,如IE,property应该为"webdriver.ie.driver".2023-07-15 07:31:051
宏操作setproperty的作用
首先在模块里定义一个函数,执行set property的操作然后新建一个宏使用runcode方法调用这个函数。2023-07-15 07:31:231
property的setProperty怎么没改变文件中的值,只改了内存中的值
// start = p.getProperty("start");// System.out.println(start);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (URISyntaxException e) {e.printStackTrace();}}2023-07-15 07:31:301
java Security.setProperty不生效的问题
需要路径里面有JMeter库..缺少就会找不到这个类2023-07-15 07:31:371
flash中300-500之间的随机数字怎么表示
vari=1;//define一个变量,一般指int(整数型),且赋值=1onEnterFrame=function(){//循环执行这个动作if(i<=100){//如果i小于或等于100,这里是和i++构造一个循环函数。duplicateMovieClip("xx","xx"+i,i);/*复制MC“xx”并命名为“XX“+i,深度为i(举例:这里首先肯定会先复制MC”XX“,然后命名为”XX1“,深度为1。然后,再复制MC”XX“,然后命名为”XX2",深度为2。。。。。。。。。。*/setProperty("xx"+i,_x,random(800));//设置MC“XX”+i的X坐标为:从(0-800)随机取一个。setProperty("xx"+i,_y,random(400));//设置MC“XX”+i的Y坐标为:从(0-400)随机取一个。setProperty("xx"+i,_xscale,20+random(30));//设置MC“XX”+i的大小,你可以理解为宽:20+[(0--30)随机取一个]setProperty("xx"+i,_yscale,20+random(30));//设置MC“XX”+i的大小,你可以理解为高:20+[(0--30)随机取一个]setProperty("xx"+i,_alpha,random(20)+80);//设置MC“XX”+i的透明度:随机从(0-20)取一个数+80,即80-100。i++;}else{i=1;gotoAndPlay(1);}}2023-07-15 07:31:451
flash as2.0 下雪代码怎么写?
看看这个网站吧。现成的下雪代码。还有使用说明。http://www.dream798.com/default.php?page=Display_Info&id=96免费下载的。2023-07-15 07:31:522
怎样让日期范围走索引
Oracle中我们经常使用Date字段类型记录日期和时间,有的时候还在这个字段上建立索引。然后通过Java程序访问数据库的时候,我们很自然的类似这样使用:select * from table where endDate>? and endDate<?,然后通过PreparedStatement预编译,再通过setTimestamp传入由java.util.Date转成java.sql.Timestamp的参数(因为java.sql.Date只有日期,java.sql.Time只有时间,所以我们只能用java.sql.Timestamp类型)。我们会认为这样应该走索引区间扫描,效率应该是非常高的。而事实上,Oracle会把sql解释成如下这样来执行:select * from table where TO_TIMESTAMP(endDate)>? and TO_TIMESTAMP(endDate)<?; 为什么?因为传入的参数是timestamp类型,Oracle从9.2版本以后支持这种类型,所以Oracle做了这样的转换,结果就是这个SQL执行变成了全表扫描。我们做的试验,加了一个index hint,强制走时间索引字段,结果效率也不高,sql执行变成了全索引扫描,和全表扫描没多大区别。结果效率还是低。不光直接使用JDBC会是这样,Spring,iBatis在处理传入参数是java.util.Date类型的时候,都会使用setTimestamp设定参数,所以都需要注意。解决办法(四种解决办法,推荐方案一):1.sql修改成这样:select * from table where endDate>to_date(?,"yyyymmddhh24miss") and endDate<to_date(?,"yyyymmddhh24miss");然后将传入参数格式化成对应格式的字符串在传入,这样由Oracle将字符串转成Date类型,就很顺利的走索引区间扫描,效率最高。2.在建立数据库连接的时候增加一个属性oracle.jdbc.V8Compatible=true,代码如下:Properties prop=new Properties();prop.setProperty(“user”,”****”);prop.setProperty(“password”,”****”);prop.setProperty(“oracle.jdbc.V8Compatible”,”true”);Connection connection = DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:test”, prop);连接池也根据各自的配置方式增加这个属性即可。目前看来这个属性参数是处理时间映射关系的,但是还不确定它是否会带来其他的问题,所以要慎重使用。3.修改数据库列类型为timestamp类型。4.依据网上资料,Oracle 11g修改了驱动 api,使用方式可能也会有改变。因为无法试验,所以也不确定具体细节。2023-07-15 07:32:081
用法
你这是set方法,要有value的,应该这么写<jsp:setProperty name="Book"property="id" value=“”/>估计你想写的是get,如果是get的话,就是<jsp:getProperty name="Book"property="id"/>还有一种写法 <jsp:getProperty property="*"/>看清是get/set再写2023-07-15 07:32:151
jsp的常用指令有哪些
page指令include指令useBean指令getProperty指令setProperty指令forward指令这几个最常用2023-07-15 07:32:265
System.setProperty( "https.protocols", "TLSv1" ); "TLSv1" 什么意思
明确指定HTTPS的协议版本2023-07-15 07:32:421
kafka问题求助
Kafka是由LinkedIn设计的一个高吞吐量、分布式、基于发布订阅模式的消息系统,使用Scala编写,它以可水平扩展、可靠性、异步通信和高吞吐率等特性而被广泛使用。目前越来越多的开源分布式处理系统都支持与Kafka集成,其中Spark Streaming作为后端流引擎配合Kafka作为前端消息系统正成为当前流处理系统的主流架构之一。然而,当下越来越多的安全漏洞、数据泄露等问题的爆发,安全正成为系统选型不得不考虑的问题,Kafka由于其安全机制的匮乏,也导致其在数据敏感行业的部署存在严重的安全隐患。本文将围绕Kafka,先介绍其整体架构和关键概念,再深入分析其架构之中存在的安全问题,最后分享下Transwarp在Kafka安全性上所做的工作及其使用方法。Kafka架构与安全首先,我们来了解下有关Kafka的几个基本概念:Topic:Kafka把接收的消息按种类划分,每个种类都称之为Topic,由唯一的Topic Name标识。Producer:向Topic发布消息的进程称为Producer。Consumer:从Topic订阅消息的进程称为Consumer。Broker:Kafka集群包含一个或多个服务器,这种服务器被称为Broker。Kafka的整体架构如下图所示,典型的Kafka集群包含一组发布消息的Producer,一组管理Topic的Broker,和一组订阅消息的Consumer。Topic可以有多个分区,每个分区只存储于一个Broker。Producer可以按照一定的策略将消息划分给指定的分区,如简单的轮询各个分区或者按照特定字段的Hash值指定分区。Broker需要通过ZooKeeper记录集群的所有Broker、选举分区的Leader,记录Consumer的消费消息的偏移量,以及在Consumer Group发生变化时进行relalance. Broker接收和发送消息是被动的:由Producer主动发送消息,Consumer主动拉取消息。然而,分析Kafka框架,我们会发现以下严重的安全问题:1.网络中的任何一台主机,都可以通过启动Broker进程而加入Kafka集群,能够接收Producer的消息,能够篡改消息并发送给Consumer。2.网络中的任何一台主机,都可以启动恶意的Producer/Consumer连接到Broker,发送非法消息或拉取隐私消息数据。3.Broker不支持连接到启用Kerberos认证的ZooKeeper集群,没有对存放在ZooKeeper上的数据设置权限。任意用户都能够直接访问ZooKeeper集群,对这些数据进行修改或删除。4.Kafka中的Topic不支持设置访问控制列表,任意连接到Kafka集群的Consumer(或Producer)都能对任意Topic读取(或发送)消息。随着Kafka应用场景越来越广泛,特别是一些数据隐私程度较高的领域(如道路交通的视频监控),上述安全问题的存在犹如一颗定时炸弹,一旦内网被黑客入侵或者内部出现恶意用户,所有的隐私数据(如车辆出行记录)都能够轻易地被窃取,而无需攻破Broker所在的服务器。Kafka安全设计基于上述分析,Transwarp从以下两个方面增强Kafka的安全性:身份认证(Authentication):设计并实现了基于Kerberos和基于IP的两种身份认证机制。前者为强身份认证,相比于后者具有更好的安全性,后者适用于IP地址可信的网络环境,相比于前者部署更为简便。权限控制(Authorization):设计并实现了Topic级别的权限模型。Topic的权限分为READ(从Topic拉取数据)、WRITE(向Topic中生产数据)、CREATE(创建Topic)和DELETE(删除Topic)。基于Kerberos的身份机制如下图所示:Broker启动时,需要使用配置文件中的身份和密钥文件向KDC(Kerberos服务器)认证,认证通过则加入Kafka集群,否则报错退出。Producer(或Consumer)启动后需要经过如下步骤与Broker建立安全的Socket连接:1.Producer向KDC认证身份,通过则得到TGT(票证请求票证),否则报错退出2.Producer使用TGT向KDC请求Kafka服务,KDC验证TGT并向Producer返回SessionKey(会话密钥)和ServiceTicket(服务票证)3.Producer使用SessionKey和ServiceTicket与Broker建立连接,Broker使用自身的密钥解密ServiceTicket,获得与Producer通信的SessionKey,然后使用SessionKey验证Producer的身份,通过则建立连接,否则拒绝连接。ZooKeeper需要启用Kerberos认证模式,保证Broker或Consumer与其的连接是安全的。Topic的访问控制列表(ACL)存储于ZooKeeper中,存储节点的路径为/acl/<topic>/<user>,节点数据为R(ead)、W(rite)、C(reate)、D(elete)权限的集合,如/acl/transaction/jack节点的数据为RW,则表示用户jack能够对transaction这个topic进行读和写。另外,kafka为特权用户,只有kafka用户能够赋予/取消权限。因此,ACL相关的ZooKeeper节点权限为kafka具有所有权限,其他用户不具有任何权限。构建安全的Kafka服务首先,我们为Broker启用Kerberos认证模式,配置文件为/etc/kafka/conf/server.properties,安全相关的参数如下所示:其中,authentication参数表示认证模式,可选配置项为simple, kerberos和ipaddress,默认为simple。当认证模式为kerberos时,需要额外配置账户属性principal和对应的密钥文件路径keytab.认证模式为ipaddress时,Producer和Consumer创建时不需要做任何改变。而认证模式为kerberos时,需要预先创建好相应的principal和keytab,并使用API进行登录,样例代码如下所示:public class SecureProducer extends Thread {private final kafka.javaapi.producer.Producer<Integer, String> producer;private final String topic;private final Properties props = new Properties();public SecureProducer(String topic) { AuthenticationManager.setAuthMethod(“kerberos”); AuthenticationManager.login(“producer1″, “/etc/producer1.keytab”);props.put(“serializer.class”, “kafka.serializer.StringEncoder”);props.put(“metadata.broker.list”,“172.16.1.190:9092,172.16.1.192:9092,172.16.1.193:9092″);// Use random partitioner. Don"t need the key type. Just set it to Integer. // The message is of type String. producer = new kafka.javaapi.producer.Producer<Integer, String>(new ProducerConfig(props));this.topic = topic;}. . .Topic权限管理Topic的权限管理主要是通过AuthorizationManager这个类来完成的,其类结构如下图所示:其中,resetPermission(user, Permissions, topic) 为重置user对topic的权限。grant(user, Permissions, topic) 为赋予user对topic权限。revoke(user, Permissions, topic) 为取消user对topic权限。isPermitted(user, Permissions, topic) 为检查user对topic是否具有指定权限。调用grant或revoke进行权限设置完成后,需要commit命令提交修改到ZooKeeperKerberos模式下,AuthorizationManager需要先使用AuthenticationManager.login方法登录,与ZooKeeper建立安全的连接,再进行权限设置。示例代码如下所示:public class AuthzTest {public static void main(String[] args) {Properties props = new Properties();props.setProperty(“authentication”, “kerberos”);props.setProperty(“zookeeper.connect”, “172.16.2.116:2181,172.16.2.117:2181,172.16.2.118:2181″);props.setProperty(“principal”, “kafka/host1@TDH”);props.setProperty(“keytab”, “/usr/lib/kafka/config/kafka.keytab”);ZKConfig config = new ZKConfig(props);AuthenticationManager.setAuthMethod(config.authentication());AuthenticationManager.login(config.principal(), config.keytab());AuthorizationManager authzManager = new AuthorizationManager(config);// reset permission READ and WRITE to ip 172.16.1.87 on topic test authzManager.resetPermission(“172.16.1.87″,new Permissions(Permissions.READ, Permissions.WRITE), “test”);// grant permission WRITE to ip 172.16.1.87 on topic test authzManager.grant(“172.16.1.87″, new Permissions(Permissions.CREATE), “test”);// revoke permission READ from ip 172.16.1.87 on topic test authzManager.revoke(“172.16.1.87″, new Permissions(Permissions.READ), “test”);// commit the permission settings authzManager.commit();authzManager.close();}}ipaddress认证模式下,取消和赋予权限的操作如下所示:public class AuthzTest {public static void main(String[] args) {Properties props = new Properties();props.setProperty(“authentication”, “ipaddress”);props.setProperty(“zookeeper.connect”,“172.16.1.87:2181,172.16.1.88:2181,172.16.1.89:2181″);ZKConfig config = new ZKConfig(props);// new authorization managerAuthorizationManager authzManager = new AuthorizationManager(config);// reset permission READ and WRITE to ip 172.16.1.87 on topic testauthzManager.resetPermission(“172.16.1.87″,new Permissions(Permissions.READ, Permissions.WRITE), “test”);// grant permission WRITE to ip 172.16.1.87 on topic testauthzManager.grant(“172.16.1.87″, new Permissions(Permissions.CREATE), “test”);// revoke permission READ from ip 172.16.1.87 on topic testauthzManager.revoke(“172.16.1.87″, new Permissions(Permissions.READ), “test”);// commit the permission settingsauthzManager.commit();authzManager.close();}}总结与展望本文通过介绍Kafka现有架构,深入挖掘其中存在的安全问题,并给出Transwarp在Kafka安全上所做的工作及其使用方式。然而,纵观Hadoop & Spark生态系统,安全功能还存在很多问题,各组件的权限系统独立混乱,缺少集中易用的账户管理系统。某些组件的权限管理还很不成熟,如Spark的调度器缺少用户的概念,不能限制具体用户使用资源的多少。Transwarp基于开源版本,在安全方面已有相当多的积累,并持续改进开发,致力于为企业用户提供一个易用、高效、安全和稳定的基础数据平台。2023-07-15 07:33:001
javamail中pro.setProperty("mail.smtp.auth", "true")设成true,那么必须得到session要加Authenticator
那是的。。。。发送论证,选中了就要有相应的论证机制2023-07-15 07:33:071
strus2接收页面穿的json的List对象出错
Error setting expression "tasks[1][id]" with 这个在哪里??2023-07-15 07:33:142
flash中帧的提问
我也来说两句gotoAndPlay(2);这句话让这个程序能循环连续的执行下去,一播放到第五帧,就回到第二帧,执行i++,让雨滴渐渐多起来。但为什么不直接gotoAndPlay(1);呢?因为第一帧上i=1,每次都将i初始为1,显然不能达到雨滴增多的效果。gotoAndPlay(2);这句话放在第二帧后面的任何位置均可。由这句话可以看出,作者的as水平还比较初级,代码放在一帧的写法应该是:i=1;function rainy(){ duplicateMovieClip("rain", "rain"+i, i); setProperty("rain"+i, _x, random(550)); setProperty("rain"+i, _y, random(400)); i++;}setInterval(rainy, 1);这样就不需要第二到第五帧了,setInterval()这个函数每隔1毫秒调用一次rainy函数,执行复制雨滴影片剪辑,让其复制的实例名为"rain"+i,深度为i(相当于第i层,即每个雨滴在不同的层) ,而雨滴出现的位置在550*400的舞台的任意位置(随机)2023-07-15 07:33:212
session怎么加入进日历
如果您想在组织者日历中创建 session ,我建议您从基于 Java 的应用程序中自动化 Outlook。您可以考虑使用 Ole 自动化技术来自动化 Outlook,例如:import org.eclipse.swt.SWT;import org.eclipse.swt.layout.FillLayout;import org.eclipse.swt.ole.win32.OLE;import org.eclipse.swt.ole.win32.OleAutomation;import org.eclipse.swt.ole.win32.OleClientSite;import org.eclipse.swt.ole.win32.OleFrame;import org.eclipse.swt.ole.win32.Variant;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;public class OutlookMail { public static void main(String[] args) { sendEMail(); } public static void sendEMail() { Display display = new Display(); Shell shell = new Shell(display); OleFrame frame = new OleFrame(shell, SWT.NONE); // This should start outlook if it is not running yet// OleClientSite site = new OleClientSite(frame, SWT.NONE, "OVCtl.OVCtl");// site.doVerb(OLE.OLEIVERB_INPLACEACTIVATE); // Now get the outlook application OleClientSite site2 = new OleClientSite(frame, SWT.NONE, "Outlook.Application"); OleAutomation outlook = new OleAutomation(site2); OleAutomation mail = invoke(outlook, "CreateItem", 0 /* Mail item */).getAutomation(); setProperty(mail, "BodyFormat", 2 /* HTML */); setProperty(mail, "Subject", "My test subject");// setProperty(mail, "From", "my@sender.org"); setProperty(mail, "To", "<John Doe> my@recipient.org"); setProperty(mail, "HtmlBody", "<html><body>This is an <b>HTML</b> test body.</body></html>");// if (null != attachmentPaths) {// for (String attachmentPath : attachmentPaths) {// File file = new File(attachmentPath);// if (file.exists()) {// OleAutomation attachments = getProperty(mail, "Attachments");// invoke(attachments, "Add", attachmentPath);// }// }// } invoke(mail, "Display" /* or "Send" */); } private static OleAutomation getProperty(OleAutomation auto, String name) { Variant varResult = auto.getProperty(property(auto, name)); if (varResult != null && varResult.getType() != OLE.VT_EMPTY) { OleAutomation result = varResult.getAutomation(); varResult.dispose(); return result; } return null; } private static Variant invoke(OleAutomation auto, String command, String value) { return auto.invoke(property(auto, command), new Variant[] { new Variant(value) }); } private static Variant invoke(OleAutomation auto, String command) { return auto.invoke(property(auto, command)); } private static Variant invoke(OleAutomation auto, String command, int value) { return auto.invoke(property(auto, command), new Variant[] { new Variant(value) }); } private static boolean setProperty(OleAutomation auto, String name, String value) { return auto.setProperty(property(auto, name), new Variant(value)); } private static boolean setProperty(OleAutomation auto, String name, int value) { return auto.setProperty(property(auto, name), new Variant(value)); } private static int property(OleAutomation auto, String name) { return auto.getIDsOfNames(new String[] { name })[0]; }}见 How to create an E-Mail in Outlook and make it visible for the User了解更多信息。2023-07-15 07:33:281
大家能给我解释一下这个javamail的程序吗?
无法正常连接可能某些软件阻止了关闭看看例如:防火墙杀毒软件2023-07-15 07:33:352
如何在log4j.properties文件中使用相对路径
log4j是一个应用非常广泛的Java日志组件。我们可以方便的借助它将日志信息输出到控制台、文件、数据库等甚至可以通过扩展以流的方式输出到任何存储媒介中。本文要解决的问题:如何在log4j.properties文件中使用相对路径?缺省情况下我们只能在log4j.properties中配置绝对路径。这样以来,我们在系统部署、开放环境移植等环节就会带来很大的不便,需要将路径改来改去。因此,我们可以使用下面的办法来实现在log4j.properties中使用相对路径:1、实现一个Servlet/** * Log4J初始化* @author XiongChun * @since 2011-04-26 */public class Log4jInitServlet extends HttpServlet {/*** Servlet初始化*/public void init(ServletConfig config) throws ServletException {String root = config.getServletContext().getRealPath("/");String log4jLocation = config.getInitParameter("log4jLocation");System.setProperty("webRoot", root);if (G4Utils.isNotEmpty(log4jLocation)) {PropertyConfigurator.configure(root + log4jLocation);}}}2、web.xml加载这个servlet<!-- 配置Log4j --><servlet> <servlet-name>log4jInit</servlet-name> <servlet-class>org.eredlab.g4.rif.util.Log4jInitServlet</servlet-class> <init-param> <param-name>log4jLocation</param-name> <param-value>WEB-INF/classes/log4j.properties</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet>3、此时在log4j.properties中就可以使用相对路径了,如下:#Rlogfilelog4j.appender.Rlogfile=org.apache.log4j.RollingFileAppenderlog4j.appender.Rlogfile.layout=org.apache.log4j.PatternLayoutlog4j.appender.Rlogfile.layout.ConversionPattern=%d %p [%c] - <%m>%nlog4j.appender.Rlogfile.File=${webRoot}/logs/eRedG4.loglog4j.appender.Rlogfile.MaxFileSize=2048KBlog4j.appender.Rlogfile.MaxBackupIndex=10批注:写完才发现,其实这种方式用的也是绝对路径,只不过是用动态获取绝对路径的方法来达到类似相对路径的效果了。2023-07-15 07:33:421