当runat="server"的表单通过修改action提交数据到其它页面时,也会引发这个问题。 如: document.forms[0].action = "AttachmentAdd.aspx";document.forms[0].submit(); 主要的原因是提交了名为__VIEWSTATE的数据,ASP.NET的验证视图状态的时候失败。 有提交前禁用__VIEWSTATE即可: $("#__VIEWSTATE").attr("disabled", true);document.forms[0].action = "AttachmentAdd.aspx";document.forms[0].submit(); 下面是网络上其它解决这个问题的建议,希望对你有所帮助: 1、去掉 runat="server" 2、添加enableEventValidation="false" enableViewStateMac="false" 或在webconfig中添加<pages enableEventValidation="false" enableViewStateMac="false" /> 3、在webconfig中添加:<machineKey validation="3DES" validationKey="319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211" decryption="3DES" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87" /> 参考: MSN 上关于machinekey: http://msdn.microsoft.com/zh-cn/library/w8h3skw9(v=VS.80).aspx http://msdn.microsoft.com/zh-cn/library/dtkwfdky(v=VS.80).aspx 4、不使用跨页面提交,提交到本页后在page.load中redirect. 5、使用 <asp:Button runat="server" PostBackUrl="~/Register/DoRegister.aspx" Text="提交" /> 转自:http://www.cnblogs.com/deoing/archive/2012/02/04/2337658.html
View DetailsJ2SE J2EE J2ME的区别多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。 Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒 他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类 应用场合,API的覆盖范围各不相同。笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。 补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。jdk,j2ee,j2se,j2me的概念区别1.JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和 针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本对于初学者,都是从J2SE入手的。 2. j2ee和j2se的区别:j2ee是在j2se的基础上添加了一系列的企业级应用编程接口.j2ee包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!j2ee主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!j2se给我的感觉只需要一个容器就够了,j2ee支持分布式组件可以同时存在多个容器 1、J2EE到底是什么? J2EE,是sun公司提出的一个标准,符合这个标准的产品叫“实现”;其中你下载的sun公司的j2ee开发包中就有一个这样的“实现”,而jboss,weblogic,websphere都是j2ee标准的一个“实现”。由于jboss,weblogic,websphere自身带有j2ee的api,所以可以不使用sun的j2ee实现。 2、j2ee sdk和j2sdkee的区别 其实你可以把j2ee sdk和j2sdkee当成是一回事,官方叫法为 j2ee sdk。不过如果你仔细推敲,也可以用下面的方法来理解:j2eesdk就是jdk,这个是开发ejg必须要安装的,j2sdkee是j2ee开发环境,这也是要安装的,其实如果你安装了jboss的话,就不用全部安装j2sdkee了,只要把其中的一个名为j2ee的文件复制过去就可以了,也就是说jdk是必须要装的,而j2sdkee则不需要,看你用什么做容器了。 3、装过j2ee sdk还需要装j2se sdk吗? 在sun的网站下载J2ee1.4时,有两种下载包: 一种是j2ee1.4 sdk完整包(all in one),包含j2ee server,j2se, sample, api doc; j2ee 好像包含j2se 几乎所有东西.我看 j2ee里也有一个jdk ,它下面的lib和j2se下面的lib一样大(同版本的).但jre不一样大,因为j2ee比j2se多了好多,如java.servlet.* ,java.servlet.http.* 等. j2ee 是让你用来开发 j2ee specification 的东西.如果是用于web 服务器,不装j2ee也行,只要装一个jre (连j2se都不用装),外加一个servlet引擎(如tomcat)就够了. 看下面这个,一目了然: j2se == jdk == bin + demo + include + jre + lib + src.rar //SUN官方的jdk1.4.2 j2ee == jdk + …. //这里的 jdk 和上面的只有 jre 文件不一样大,原因上文已说. 另一种为单独的j2ee server,安装前需要先安装j2se sdk。 不管哪个,安装完成后,都要设置java_home,j2ee_home,classpath环境变量,再运行j2ee server即可。 为了方便开发者,Sun把Java区分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Micro Edition)和Java Card四种平台。J2SE是所有Java技术的基础,不管开发人员要开发什么平台的Java应用程序,都必须先从J2SE学起。J2EE技术着重于企业服务器端的应用。J2ME主要针对嵌入式系统,包括手机、PDA等。针对手机应用程序的开发,Sun还提供了免费的J2ME Wireless Toolkit。Java Card技术用来开发可以植入IC智能卡中的应用程序。 以上四种平台的软件开发包(Software Development Kit,SDK)都是免费的,可以从Sun的网站下载。当然,只用SDK未免太不讲究,我们需要开发工具来提高开发效率。这样的工具叫做集成开发环境(Integrated Development Environment,IDE)。以往,Borland JBuilder和IBM Eclipse这两个IDE最受Java程序员的青睐,而Sun自己的IDE却名不见经传。2004年以后,Sun把自己的IDE摆放到重要的位置,努力推进NetBeans和Java Studio的开发。前者是完全用Java撰写的开放源代码的工具,而后者则是重量级的官方开发工具。Sun的开发工具可谓根正苗红,Java程序员终于可以沐浴Sun(阳光)普照了! 转自:http://hi.baidu.com/mlgzkj/item/adc9c3bf54206ff062388efe
View DetailsFlashPaper是一个虚拟打印机,可将word文件转化成swf格式文件(.doc .xls .txt .pdf等文件都可以正常生成SWF格式)。最近简单学习了在ASP.NET页面中调用FlashPaper将word文件转化成swf格式文件的方法。 (1)安装FlashPape:下载FlashPape压缩包,解压缩后,运行初始化目录中的初始化.bat,然后安装FlashPaperDriverInstall2.exe,即FlashPaper打印机。特别注意,在有的机器上要更改Macromedia FlashPape的端口,应为FlashPape2PrinterPort,如果是LPT1这个端口,当然打印不出来了。 (2)为页面中的按钮编写事件处理代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Process process = new Process(); //创建进程对象 //try //{ ProcessStartInfo startInfo = new ProcessStartInfo(); string paperroot = @"C:\Program Files\Macromedia\FlashPaper 2\FlashPrinter.exe"; string docFile = Server.MapPath("1.doc"); string swfFile = Server.MapPath("1.swf"); startInfo.FileName = paperroot; startInfo.Arguments = docFile + " -o " + swfFile; startInfo.UseShellExecute = false; //不使用系统外壳程序启动 startInfo.RedirectStandardInput = false; //不重定向输入 startInfo.RedirectStandardOutput = false; //重定向输出 startInfo.CreateNoWindow = true; //不创建窗口 process.StartInfo = startInfo; process.Start(); Response.Write("已经提交生成。<br />"); Response.Write(paperroot+"<br />"+docFile + " = " + swfFile); //} //catch (Exception ex) //{ // Response.Write(ex.Message); //} //finally //{ if (process != null) process.Close(); // Response.Write("<br />finally"); //} |
示例代码3:
1 |
public static void TransformFile(string filepath) |
{ string fppath = System.Configuration.ConfigurationManager.AppSettings["Flashpaper"]; string outpath = filepath.Substring(0, filepath.LastIndexOf('.')) + ".swf"; string param = fppath + " " + filepath + " -o " + outpath; Process p = new Process(); p.StartInfo.FileName = "C:\\WINDOWS\\system32\\cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; //p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; try { p.Start(); string strOutput = null; p.StandardInput.WriteLine(param); p.StandardInput.WriteLine("exit"); strOutput = p.StandardOutput.ReadToEnd(); Console.WriteLine(strOutput); p.WaitForExit(); p.Close(); } catch (Exception ex) { throw ex; } }
View Details就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。
View Details
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
public class StrBinConvertor { /// <summary> /// 将 字符串 转成 二进制 “10011100000000011100011111111101” /// </summary> /// <param name="s"></param> /// <returns></returns> public static string StrToBin(string s) { var data = Encoding.Unicode.GetBytes(s); var result = new StringBuilder(data.Length * 8); foreach (var b in data) { result.Append(Convert.ToString(b, 2).PadLeft(8, '0')); } return result.ToString(); } /// <summary> /// 将二进制 “10011100000000011100011111111101” 转成 字符串 /// </summary> /// <param name="s"></param> /// <returns></returns> public static string BinToStr(string s) { var cs = System.Text.RegularExpressions.Regex.Match(s, @"([01]{8})+").Groups[1].Captures; var data = new byte[cs.Count]; for (var i = 0; i < cs.Count; i++) { data[i] = Convert.ToByte(cs[i].Value, 2); } return Encoding.Unicode.GetString(data, 0, data.Length); } } |
spb_Announcements 公告表 Id 自动编号 Subject 主题 SubjectStyle 主题样式 Body 公告主体(可选) IsHyperLink 是否链接 HyperLinkUrl 链接URI(只有当IsHyperLink为1时才有效) EnabledDescription 是否启用描述(当 此项为1时,body 才可输入内容) ReleaseDate 发布日期 ExpiredDate 失效日期 LastModified 更新日期 CreateDate 入库日期 UserId 用户Id(公告发布者) DisplayOrder 显示排序 DisplayArea 显示区域(如频道、用户中心) spb_BarPosts 贴吧-回复表 spb_BarRatings spb_BarSectionManagers spb_BarSections 贴吧-吧表 spb_BarThreads 贴吧-帖子表
View Details一、apacheapache 的 httpd.conf 有两个配置可以控制是否显示服务器信息给用户。ServerTokensServerSignature默认条件下会把apache版本 系统 模块都显示出来 (HTTP 返回头)设置为:ServerTokens ProductOnlyServerSignature Off就隐藏Apache的Apache Version信息。还有如果列举目录的话 会显示域名信息(文件列表正文)如果不想要就可以调这两个参数ServerTokensServerSignatureServerSignature On|Off|EmailServerTokens Minimal|ProductOnly|OS|FullServerTokens Prod[uctOnly]Server sends (e.g.): Server: ApacheServerTokens Min[imal]Server sends (e.g.): Server: Apache/1.3.0ServerTokens OSServer sends (e.g.): Server: Apache/1.3.0 (Unix)ServerTokens Full (or not specified)ServerSignature控制由系统生成的页面(错误信息,mod_proxy ftp directory listing等等)的页脚中如何显示信息。可在全局设置文件中控制,或是通过.htaccess文件控制默认为”off”(ServerSignature Off),有些Linux发行版本可能会打开这个阀门,比如Debian在默认的虚拟主机上默认将这个阀门设置为开放全局阀门的阀值会被虚拟主机或目录单位的配置文件中的阀值所覆盖,所以,必须确保这样的事情不应该发生可用的阀值为下面所示:Off (default): 不输出任何页脚信息 (如同Apache1.2以及更旧版本,用于迷惑)On:输出一行关于版本号以及处于运行中的虚拟主机的ServerName (2.0.44之后的版本,由ServerTokens负责是否输出版本号)EMail: 创建一个发送给ServerAdmin的”mailto”二、隐藏 PHP 版本php.iniexpose_php On改成expose_php Off重启apache后,php版本在http头中隐藏了。三、ServerTokens 指令说明: 配置服务器HTTP回应头语法: ServerTokens Major|Minor|Minimal|ProductOnly|OS|Full默认值: ServerTokens Full上下文: 服务器配置状态: 核心模块: core此指令控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息。ServerTokens ProductOnly服务器会发送(比如说):Server:ApacheServerTokens Major服务器会发送(比如说):Server:Apache/2ServerTokens Minor服务器会发送(比如说):Server:Apache/2.0ServerTokens Min[imal]服务器会发送(比如说):Server:Apache/2.0.41ServerTokens OS服务器会发送(比如说):Server: Apache/2.0.41 (Unix)ServerTokens Full (or not specified)服务器会发送(比如说):Server: Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2此设置将施用与整个服务器,而且不能在虚拟主机的管理层次上予以启用或禁用。ServerSignature 指令说明: 配置服务器生成页面的页脚语法: ServerSignature On|Off|EMail默认值: ServerSignature Off上下文: 服务器配置, 虚拟主机, 目录, .htaccess覆盖项: All状态: 核心模块: coreServerSignature指令允许您配置服务器端生 成文档的页脚(错误信息、mod_proxy的ftp目录列表、mod_info的输出)。您启用这个页脚的原因主要在于处于一个代理服务器链中的时候,用户基本无法辨识出究竟是链中的哪个服务器真正产生了返回的错误信息。默认的Off设定没有错误行(这样便与Apache 1.2及更旧版本兼容)。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会如文档中说明的那样额外创建一个指向ServerAdmin的”mailto:”部分。 转自:http://www.douban.com/note/243308080/
View Details安装CCFlow就不说了,照着安装文件做,基本上没有大的问题:http://bbs.ccflow.org/showtopic-54.aspx 好不容易配置好了,开始耦合吧 按照Documents目录下的 驰骋工作流引擎-流程设计器操作手册.docx 文件中的 2.6 您的系统与ccFlow组织结构表耦合(集成) 的说明,意思是删除CCFlow中的Port_Station,Port_Dept,Port_Emp,Port_EmpStation,Port_EmpDept这五张表,再建立相对应的同样名字的五个视图就可以了 意思说得很明白了吧 可是知易行难呀 Port_Station(岗位表),这个我们系统里没有,怎么办呢?在CCFlow里的表生成Create脚本,修改一下 use 数据库名 改成我们自己的系统数据库 Port_Dept(部门表),这个问题来了,我们并没有使用CCFlow的那种部门编码方式,没办法改造我们的系统吧,加个部门编码字段:OrgBianHao,修改相关代码,让系统新加的部门可以生成编码。 Port_Emp(人员表),需要(No编号,Name名称, Pass密码, FK_Dept所在部门编号, SID登陆安全ID),这个因为我们用的是部门表的ID,而不是编码,所以要新加一个字段OrgBianHao来存储相关的部门编码,我们的密码是加密的,所以~~,加个字段存储明文密码,SID也没有,这个也加上。这里我用的是,No用的是用户名,Name用的是真实姓名. Port_EmpStation 这个我们系统没有,照建一个就是了 Port_EmpDept 这个简单,从我们的人员表取用户ID和部门编号两个字段放进去就好了 这其中发生了两次ccflow耦合问题:无法更改 'XXX',因为它不是表。的问题 一次是:ccflow耦合问题:无法更改 'Port_Emp',因为它不是表。 这个问题在帖子中解决了,是因为少个字段。 再一次是在点 设置 的时候又报: 无法更改 'Port_EmpDept',因为它不是表。 后来经朋哥指点,原来是因为FK_Emp是整形的问题,把这个字段转换成字符串型的,OK,进去是没问题了。 要完全看起来像是一个系统,这样还不行,得继续改,研究去了,完了再和大家分享。 http://www.cnblogs.com/muyou/archive/2012/08/23/2652525.html
View Details3, ccflow 流程运行数据表. 【WF_GenerFH : 分合流信息注册表,对于是分合流的流程才有效,发起一条分合流,就多一条数据在此。】 [FID]主键,表ID ,[Title] 标题 ,[GroupKey] 分组主键 ,[FK_Flow] 流程编号, 外键:对应物理表:WF_Flow,表描述:流程编号(流程表中的流程编号) ,[ToEmpsMsg] 接受人员 ,[FK_Node] 停留节点 ,[WFState]状态 ,[RDT] 记录日期 【WF_GenerWorkFlow : 流程注册表(启动一个流程后,就产生一条数据,放在WF_GenerWorkFlow)】 [WorkID]主键,表ID ,[FID] 流程ID ,[FK_FlowSort] 流程类别 ,[FK_Flow] 流程编号, 外键:对应物理表:WF_Flow,表描述:流程编号(流程表中的流程编号) ,[FlowName] 流程名称 ,[Title] 标题(如:总经理室-zhoupeng,周朋在2012-04-19 00:38发起.) ,[WFState] 流程状态 ,[Rec] 发起人 ,[RecName] 发起人名称 ,[RDT] 记录日期 ,[FK_Node] 节点, 主外键:对应物理表:WF_Node,表描述:节点 ,[NodeName] 节点名称 ,[FK_Dept] 部门, 主外键:对应物理表:Port_Dept,表描述:部门 ,[DeptName] 部门名称 【WF_GenerWorkerlist : 节点工作人员表.( 发送一个步骤后,就把接受的工作人员放入WF_GenerWorkerlist,流程运行完成后此记录就被删除了) 】 [WorkID]主键,表ID ,[FK_Emp] 人员编号, 主外键:对应物理表:Port_Emp,表描述:用户 ,[FK_EmpText]名称 ,[FK_Node] […]
View Details2, ccflow流程规则描述表. 用来存储流程配置的基础信息。 以 WF_ 开头. 列举如下: 【WF_FlowSort : 流程类别表.】 【No】关键字 类型编号 【Name】类型名称 【IDX】顺序 数据类型: 【WF_Flow : 流程表.】 [No]关键字 流程编号 ,[FK_FlowSort]流程类别, 外键:对应物理表:WF_FlowSort,表描述:流程类别(流程类别表中的类型编号) ,[Name] 流程名称 ,[IsOK]是否起用 ,[FlowRunWay]运行方式,枚举类型:0 手工启动;1 指定人员按时启动;2 数据集按时启动;3 触发式启动; ,[RunObj]运行内容 ,[IsCanStart]可以独立启动否?(独立启动的流程可以显示在发起流程列表里) ,[Note]备注 ,[StartListUrl]导航Url ,[AppType]流程应用类型(正常、工程类等) ,[DocType]公文类型(对公文有效),枚举类型:0 正式公文;1 便函; ,[XWType]行文类型(对公文有效),枚举类型:0 上行文;1 平行文;2 下行文; ,[FlowType]流程类型 ,[FlowSheetType]表单类型 ,[RunSQL]流程结束执行后执行的SQL ,[NumOfBill]是否有单据 ,[NumOfDtl]是否有关联表 […]
View Details