摘 要:Web打印是在开发B/S结构应用程序时一项比较复杂但又应用广泛、非常实用的一种技术。本文主要针对ASP.NET 2.0实现WEB打印的几种方法进行了初步探讨,对每种方法的实现、各自特点进行了阐述。
关键词: ASP.NET 2.0 ;B/S模式 ;WEB 打印
中图分类号:TP393.092 文献标识码:A
Study on Implementation of WEB Print Method Based on ASP.NET 2.0
ZHU Xiao-dong
(Tianjin Railway Technical and Vocational College,Tianjin 300240 )
Key words: ASP.NET 2.0 ;B / S mode ;WEB print
目前,由于B/S模式扩展性好、数据安全性高、无须考虑客户端的兼容性等优点,在软件开发实践中得到了广泛的应用,而WEB 打印则是B/S模式应用程序中必需考虑的问题。虽然客户端的规则很简单,容易学习,容易维护,容易发布,但由于只能采用浏览器作为用户界面与服务器进行交互,不能精确地控制客户端的打印机,使WEB报表格式控制、定制等复杂的打印难以处理,其结构的特殊性和一般程序上的打印功能有所不同,而软件开发人员总是力求使B/S系统具有C/S系统相类似的打印功能,这是开发人员所面临的一个共同难题。
WEB 打印通常分为客户端脚本方式和服务器端程序方式,在客户端脚本方式中,主要使用JS 可以分析源页面的内容,将欲打印的页面元素提取出来,实现打印。通过分析源文档的内容,可以生成打印目标文档。这种方式客户端独立完成打印目标文档的生成,减轻服务器负荷;但源文档的分析操作复杂,并且源文档中的打印内容要有约定。通常采用服务器端程序方式,利用后台代码从数据库中读取打印源,生成打印目标文档。当的页面生成时,还应适当考虑使用CSS 来实现强制分页控制。这种方式可以生成内容非常丰富的打印目标文档,目标文档的内容的可控性强。由于打印内容是从数据库中获取的,所以生成操作相对简单;但服务器端负载比较大。
ASP.NET 2.0是微软公司推出新型体系结构.NET Framework 2.0的一个主要组成部分,在开发人员的效率、管理、性能和可伸缩性等方面得到了极大的提高。 其新开发的IDE--Visual Studio 2005是目前B/S模式应用程序的主要开发工具。针对ASP.NET 2.0的WEB打印方法主要有以下几种解决方案:
①利用IE浏览器直接实现WEB打印;
②调用Office实现WEB打印;
③利用第三方控件实现WEB打印;
④利用.NET 2.0组件水晶报表实现WEB打印。
1 利用IE浏览器直接实现WEB打印
1.1调用windows.print()方法实现打印
在页面上添加“打印”按钮,然后增加如下代码:
这种方法代码简单、方便快捷、无需任何设置,但页面上别的元素也会被打印处理,页头和页尾的格式难以控制,无法实现“打印设置”和“打印预览”等功能,可以利用css中的Media 属性来设置打印和显示的格式,代码如下:
在不想打印的页面元素添加: class="Noprint" ,那就不会出现在打印和打印预览中了。如:
此时
是不打印的tr。
1.2调用WebBrowser控件实现打印
WebBrowser控件是IE内置的浏览器控件,它是ActiveX控件,无需用户下载,可以通过调用WebBrowser控件的ExecWB方法实现打印,首先在HTML源码中建立Object对象,Object对象主要向HTML页面中插入对象,代码如下:
//加入ID为WebBrowser的WebBrowser控件
CLASSID=''CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'' VIEWASTEXT>
CLASSID属性主要用来获取或设置对象的类标识符。最后在客户端控件的onclick事件中调用WebBrowser组件的相关方法进行打印、打印预览等操作,代码如下:
此种方法优点是可以轻松实现打印、页面设置和打印预览等功能,客户端能独立打印目标文档,减轻服务器端负荷;缺点是源文档的分析操作复杂,并且源文档中的打印内容要有约束。
2 调用Office实现WEB打印
在浏览网页时,经常需要将Web页面中的内容通过Word或Excel文档打印出来,借助功能强大的Office办公软件,可以完成非常复杂的文档格式,进行精细的控制,可适应性强、易于控制。下面以将数据导出到Word文档为例进行介绍,Excel与此类似,不再赘述。
Word作为文档处理软件,它在处理文档和资料的过程中显示出了强大的功能。将数据导出到Word,主要通过设置Response对象的ContentType属性为输出文件的类型来实现的。代码如下:
Response.AppendHeader("Content-Disposition","attachment;filename=test.doc")
Response.ContentType="application/ms-word";
//如果输出为excel,修改为以下代码
//Response.AppendHeader("Content-Disposition","attachment;filename=test.xls");
// Response.ContentType="application/ms-excel";
this.EnableViewState=false;
String Write tw=new String Writer();
HtmlTextWriter hw=new HtmlTextWriter(tw);
GridView1.RenderControl(hw);
Response.Writer(tw.ToString());
Response.End();
导出成Word或Excel后用户可以自定义打印的内容和格式,开发周期短、维护成本低,用户使用方便,并且可以跨平台运行。但数据导出前难以生成打印预览,在服务器端或客户端使用时,要保证安装有office软件,在客户端使用时要求客户端在IE的安全设置上有一定的要求。
3 利用第三方控件实现打印
目前有不少开发商提供的相关控件,可以实现Web打印功能,如MAX Reports、如意报表、ScriptX等。优秀的第三方控件,打印方式灵活,基本上程序能做到的web也能做得到,并且开发周期短,系统维护性好。但打印功能受控件本身限制,一般无法做到跨平台,并需支付相关费用,提高了系统的开发成本。
也可以自行开发实现Web打印,一般可以通过自行开发ActiveX控件、Java Applet或动态生成PDF文件等方式来完成。这种方式可定制性强,可以完全按照用户的要求进行设计Web页面,但开发周期长,开发和维护成本较高。
目前有一些软件公司使用JAVA开发基于WEB的报表组建,使用这些组建时先要在客户端安装,然后,由服务器端来生成VBscript脚本,在客户端运行、创建相应的组件对象;利用组件对象来进行打印操作。这种方法只要客户端的com组件开发完成。使用者只要熟悉vbscript或lavascript脚本语言就可能方便的调用。这种方法打印效率高、功能丰富、能做到精确定位打印以及批量打印另外安装成本低廉。ACtiveX只有1M多,在客户端首次使用时需要安装一次,无需再次安装。但客户端毕竟需要安装组件,部署不是很方便。另外对浏览器版本也有一定的要求。
4 利用水晶报表实现打印
水晶报表(Crystal Reports)是一个优秀的报表开发工具,水晶报表以其简单、易用和强大的功能令开发人员倍受青睐。Crystal Reports for Visual Studio.NET 2005具有以下特点:
①针对所有以.NET为目标的程序语言提供高度的集成,可以在Windows应用程序或ASP.NET Web应用程序的项目中使用本身所专长的程序语言来设计报表。
②提供强大的报表设计工具CrystalReportDesigner,可以通过其定义报表的数据源,定位各个控件,轻易制作出各种复杂格式的报表。
③通过报表查看器控件(CrystalReportViewer)设置报表的格式和自定义导出选项等,将报表展现在Web Form网页上。
④用户仅需要Web浏览器就可以查看报表。
水晶报表打印非常灵活、方便,打印的内容丰富多彩,用户仅需要Web 浏览器就可以查看报表,用户可将报表导出各种格式的文件,如.pdf,.doc,.xls,.html,.rpt等,用户不仅与报表可以轻松交互,而且具有内容创建、计算、分组、查询等强大功能。
Crystal Reports for Visual Studio.NET 2005的执行模式有两种:Pull Model(拉模型)和Push Model (推模型),执行任一种模式均可获取Crystal Reports数据。在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的SQL命令都同时由Crystal Report本身处理,不需要开发人员编写代码。因此,在运行时如无须编写任何特殊代码,则使用拉模型。相反,推模型需要开发人员编写代码以连接到数据库,执行SQL命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法可以将连接共享置入应用程序中,并在Crystal Reports收到数据之前先将数据筛选出来。
在Visual Studio 2005中通过CrystalReportViewer控件来查看报表源中的数据,并对报表进行设计,使报表更加美观。
5 结束语
综上所述,本文对ASP.NET的Web打印技术作了初步的探讨,对每种实现方法优点及不足进行了简要介绍,在开发过程中用户应根据项目的实际需求进行选择,灵活处理WEB打印所遇到的各种问题,以达到较理想的应用效果。
参考文献:
[1]张跃廷.ASP.NET 程序开发范例宝典[M].北京:人民邮电出版社,2007:572-599.
[2]李明刚,肖健.ASP.NET(c#)基础教程[M].北京:清华大学出版社,2006:294-392
你可能感兴趣的:(javascript知识点,Asp.net,C#知识点,HTML知识点)
C#设计模式--状态模式(State Pattern)
夜空晚星灿烂
C# 设计模式之旅 c# 设计模式 开发语言
状态模式是一种行为设计模式,它允许对象在其内部状态发生变化时改变其行为。这种模式的核心思想是将状态封装在独立的对象中,而不是将状态逻辑散布在整个程序中。用途简化复杂的条件逻辑:通过将不同的状态封装在不同的类中,可以避免大量的条件语句,使代码更清晰、更易于维护。提高可扩展性:添加新的状态或修改现有状态的行为时,只需修改或新增相应的状态类,而不需要修改现有的代码。提高代码的复用性:状态对象可以在多个上
Python 基础(三):入门必备知识的思考与对之前内容的总结
AI自学kuke-v
Python教学 python 开发语言
1思考前两节我们讲了input,print()还有变量与数据类型的用法,但是我发现可学习性还是比较低。无法让大家系统的掌握Python这门语言的入门语法。那么为什么要系统的掌握语法呢?因为系统的掌握语法后,当我们想要用到这一知识点的时候,我们就可以迅速的找到相应的处理方法,从而更加方便与快捷的解决我们遇到的问题,不至于我们到用到的时候再去寻找相关的处理方法,所以我讲的内容要尽可能的高度地相关性、全
【Burp入门第三十三篇】BurpSuite+Proxifier安装配置,实现微信小程序抓包
秋说
BurpSuite 渗透工具 Proxifier
BurpSuite是一款功能强大的渗透测试工具,被广泛应用于Web应用程序的安全测试和漏洞挖掘中。本专栏将结合实操及具体案例,带领读者入门、掌握这款漏洞挖掘利器读者可订阅专栏:【Burp由入门到精通|CSDN秋说】文章目录下载配置下载汉化版下载地址:https://get-shell.com/1506.html#hidden-box-comment解压后双击exe文件:
C# 牵手DeepSeek:打造本地AI超能力
步、步、为营
c# 人工智能 开发语言
一、引言在人工智能飞速发展的当下,大语言模型如DeepSeek正掀起新一轮的技术变革浪潮,为自然语言处理领域带来了诸多创新应用。随着数据隐私和安全意识的提升,以及对模型部署灵活性的追求,本地部署DeepSeek成为众多开发者和企业关注的焦点。对于C#开发者而言,将DeepSeek模型本地部署并集成到C#项目中,不仅能充分发挥C#语言在Windows平台开发的优势,还能实现高度定制化的人工智能应用,
vue2学习笔记4 - 深入学习模板语法:插值语法和指令语法
我是飞鸟呀
Vue 学习 笔记 vue.js
前言在vue2学习笔记2-老规矩,从HelloWorld开始,了解Vue实例和模板-CSDN博客我们提到过,容器中的代码叫做Vue模板,它们遵循HTML规范,只是混入了特殊的Vue语法。这些特殊的Vue语法除了上一次我们提到的插值语法外,还有指令语法。插值语法,可以使用js表达式,读取vue实例data中的数据。但是能实现的功能比较单一,而且,也仅限于标签体中的文本替换。如果想要与元素的属性绑定,
【VitePress】vitepress 中 markdown 写作使用
起伏羊
前端 前端 javascript vitepress vue
vitepress中markdown使用效果可以在我的博客查看https://sonnenlicht77.github.io/docs.yy/guide/mdlearn/01.vpmd.htmlmarkdown扩展markdown语法标题锚点标题会自动应用锚点。可以使用markdown.anchor选项配置锚点的渲染。自定义锚点要为标题指定自定义锚点而不是使用自动生成的锚点,请在标题后添加{#my
vue3使用插件封装指令实现页面滚动动画
前端、小老弟
vue 前端 animation vue.js 前端 javascript css3 动画
效果展示:vue封装插件需要使用到install函数exportdefaultScrollAnimationPlugin={install(app:App,options={}){//需要实现的内容}}vue指令语法:app.directive('scroll-animation',{mounted(el:HTMLDivElement,binding:any){//需要实现的内容}})监听页面滚动
前端开发核心知识点深度解析:从CSS到Vue的全面指南
A_cot
css vue.js 前端 开发语言 javascript
一、CSS篇1.link与@import的区别加载方式:是HTML标签,并行加载;@import是CSS语法,串行加载兼容性:@import不支持IE5以下DOM控制:link可通过JS操作DOM修改,@import不可动态修改权重计算:@import引入的样式优先级低于link@importurl('style.css');二、JavaScript篇2.原型链机制原型对象:每个函数都有proto
C# 中 for 和 foreach 的深入研究
可有道?
c# c# 开发语言 学习 笔记 .net
在C#编程中,for和foreach是最常用的遍历循环结构。它们的出现大大简化了集合的遍历操作,但在实际开发中,我们选择使用时并未充分考虑它们之间的区别,往往只是凭习惯来决定用哪个。实际上,for和foreach在语法结构、性能、可读性、适用场景等方面都有显著的区别。一、for循环深入分析1.for循环的语法结构for循环的基本语法如下:for(初始化表达式;条件表达式;迭代表达式){//循环体}
一篇文章搞懂C#中的泛型类/泛型方法/泛型接口
方程式sunny
C# c#
一篇文章搞懂C#中的泛型类/泛型方法/泛型接口链接:源码提起泛型类,很多人就头疼,我也头疼。在C#中这个概念很重要,重要的向定义一个int数值类型一样,但是这个内容又不像if···else那样容易理解。我花费了两天的时间,把整个知识点梳理了一遍,希望讲清楚,也当给自己做个笔记。泛型类(GenericClasses)泛型类是一种可以处理多种数据类型的数据结构或算法模板。它允许在定义类时使用一个或多个
使用Semantic Kernel:对DeepSeek添加自定义插件
归-途
机器学习 oneapi 机器学习
SemanticKernel介绍SemanticKernel是一个SDK,它将OpenAI、AzureOpenAI等大型语言模型与C#、Python和Java等传统编程语言集成在一起。SemanticKernel通过允许您定义插件来实现这一点。为什么需要添加插件?大语言模型虽然具有强大的自然语言理解和生成能力,但它们通常是基于预训练的模型,其功能受限于训练时所接触的数据和任务。为大语言模型添加插件
C#内置委托(Action)(Func)
HH牛码
C# c# 开发语言
概述在C#中,委托是一种类型,它表示对具有特定参数列表和返回类型的方法的引用。C#提供了一些内置委托,使得开发者可以更方便地使用委托功能,无需手动定义委托类型。本文将详细介绍Action和Func这两个常用的内置委托。Action委托Action委托用于表示没有返回值的方法。它可以有0到16个输入参数,这些参数的类型可以不同。无参数的Action委//不支持返回值的内置委托Actionaction
深入理解C#中的属性和索引器:掌握封装与访问的艺术
围垦
C#理解 c# 开发语言 visual studio windows
深入理解C#中的属性和索引器:掌握封装与访问的艺术1.属性(Properties)1.1定义1.2语法1.3示例1.4使用1.5自动实现的属性(Auto-ImplementedProperties)2.索引器(Indexers)2.1定义2.2语法2.3示例2.4使用3.多参数索引器3.1定义3.2示例3.3使用4.属性和索引器的异同点4.1相同点4.2不同点5.注意事项5.1属性5.2索引器6.
【自学笔记】Git基础知识点总览-持续更新
Long_poem
笔记 git
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录Git基础知识点总览引言Git基础知识概览1.Git安装与配置2.初始化Git仓库3.添加文件到Git仓库4.提交更改5.查看提交历史6.创建与合并分支7.远程仓库操作8.冲突解决示例:完整的Git工作流程总结Git基础知识点总览引言Git是一个开源的分布式版本控制系统,用于有效、高速地处理从小到大的项目版本管理。本文将概述G
C#实战|人员管理系统[31]:添加修改人员信息右键菜单功能
雷工笔记
C#项目实战 c# 开发语言 microsoft
哈喽,你好啊,我是雷工!有的人喜欢使用回车键确认执行,有的人喜欢使用右键触发菜单。这里对人员信息的修改触发方式进行优化,即可以不用移动鼠标到【修改】按钮,点击再弹出修改界面。而是在人员信息列表中点击右键,在鼠标指针位置出现菜单,可以直接点击菜单中的【修改】,直接弹出修改界面。01实现效果在人员列表中,单击选中某条信息,然后右击,弹出菜单,在菜单中点击【修改信息】,弹出修改人员信息窗口,与【修改】按
11748 商务运营管理知识点汇总
小木可菜鸟测试一枚
11748 经验分享
第一章运营管理引论运营:将一系列输入转化为所需要的产品或服务的过程生产要素:企业家(创业者)、土地、劳动力、资金输入-输出循环:将包括企业家、土地、劳动力、资金输入转化为产品或服务的输出的方式运营管理的职责:过程设计、工作计划、实施制造过程选择:标准化产品、生产多样性、定制化产品大规模,低多样性----生产线或者大规模生产小规模,高多样性----加工车间生产中规模,中多样性----批量生产大规模服
Systrace 学习笔记
程序员Android
android java 操作系统 epoll 移动开发
和你一起终身学习,这里是程序员Android经典好文推荐,通过阅读本文,您将收获以下知识点:一、Systrace简介二、Systrace预备知识三、Why60fps四、SystemServer解读五、SurfaceFlinger解读六、Input解读七、Vsync解读八、Vsync-App:基于Choreographer的渲染机制详解九、MainThread和RenderThread解读十、Bin
DeepSeek在个人财务管理中的应用技巧有哪些?
借雨醉东风
热点追踪 大数据 人工智能
关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可接项目赚外快,绝对划算。不仅学会如何编程,还将学会如何将AI技术应用到实际问题中,为您的职业生涯增添一笔宝贵的财富
常见的Python框架--matplotlib
我有颗小粒的痣
Python python matplotlib
matplotlib获取方法:https://matplotlib.org/users/installing.html#building-on-linuxsudoapt-getinstallpython-matplotlib#python2.sudoapt-getinstallpython3-matplotlib#python3.简介用于数据可视化#easyexampleimportmatplot
3-4、ASP.NET中Session的sessionState 4种mode模式(StateServer与SQLServer)
qq_43023809
asp.net c#编程 asp.netmvc asp.net 面试题
一.SessionState的4种mode模式在ASP.NET中Session的sessionState的4中mode模式:Off、InProc、StateServer及SqlServer。1.Off模式关闭模式,即不需要使用Session。单个页面关闭Session:2.InProc模式(缺省模式)mode设置为"InProc"时,Session直接存储在IIS进程中。优点:获取session状
C# .Net 开发设计多用户网上商城源码_OctShop
随着C#在TIOBE编程语言排行不断上升,这也标志着越来越多的程序员开始使用C#来开发项目了。在TIOBE2023年10月公布的排行中,C#和Java之间的差距越来越小了,仅为1.2%,随着C#.NetCore的免费开源,这一上升的趋势越来越明显,TIOBECEOPaulJansen认为,如果这一趋势继续保持,那么C#将在两个月后超过Java。在当前所有的编程语言中,Java出现了大幅度下跌,为-
ASP.NET 使用web.config配置文件的system.webServer/modules标签实现登录验证
chance_66
asp.net C# asp.net c#
前言modules标签允许你添加、删除或配置在IIS中运行的HTTP模块。HTTP模块是处理HTTP请求和响应的组件,它们可以在请求处理管道的不同阶段执行代码。某些system.webServer中的设置可能只适用于IIS的特定模式(如集成模式),而不适用于其他模式(如经典模式)当你需要扩展IIS的功能或自定义HTTP请求/响应处理流程时,可以使用modules标签来添加自定义的HTTP模块请注意
C# ASP.NET MVC项目内使用ApiController
chance_66
c#
1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。usingSystem.Web.Http;namespacePrivilegeManager{publicclassWebApiConfig{publicstaticvoidRegister(HttpConfigurationconfig){config.MapHttpAttributeRoute
2025前端技能
家里有只小肥猫
前端
前端开发是现代Web开发中非常重要的一部分,涉及众多技术和工具。以下是一些在前端开发工作中常见的需求和技术:1.技术基础HTML/CSS:构建页面结构和样式。JavaScript:实现交互逻辑和动态功能。ES6+:使用现代JavaScript语法和特性。DOM操作:操作网页元素和事件处理。浏览器兼容性:确保代码在不同浏览器中正常运行。跨设备适配:确保页面在不同设备(PC、手机、平板)上正常显示。2
事件循环_经典面试题
还是鼠鼠
javascript ajax 前端 vscode html5
目录代码分析代码解读执行顺序执行结果结论文件名:在JavaScript中,理解事件循环(EventLoop)是掌握异步编程的基础。事件循环决定了代码的执行顺序,包括宏任务(Macrotasks)和微任务(Microtasks)的调度。为了更好地理解事件循环,我们通过一个经典的面试题来展示JavaScript中的异步执行顺序。代码分析这是一个简单的HTML文件,包含了一段JavaScript代码,我
ASP.NET MVC项目部署到IIS后,w3wp.exe程序报错重启
chance_66
asp.net C# MVC5 asp.net 后端 c#
一、错误信息windows的事件查看器》windows日志》应用程序,按时间找到错误信息如下:错误应用程序名称:w3wp.exe,版本:10.0.14393.0,时间戳:0x57899b8a错误模块名称:KERNELBASE.dll,版本:10.0.14393.5850,时间戳:0x64253b4c异常代码:0xe0434352错误偏移量:0x0000000000026ea8错误进程ID:0x16
钢琴乐理:调性和音阶
red_redemption
entirely spontaneous 音乐 钢琴 调性 音阶
在每个重复的不同音域上的12个音,都有着相同相同的调性吗是的,在钢琴上每个八度范围内的**12个音**(C、C#、D、D#、E、F、F#、G、G#、A、A#、B),无论它们处于哪个音域,**调性都是相同的**。这就是八度的概念:同一个音名的音符在不同音域中虽然音高不同,但它们在调性中扮演的角色是相同的。具体来说:###1.**相同的音符在不同音域中的调性功能相同**每个音符在不同的八度范围内都保持
ReactNative进阶(三十):Component、Pu
愤怒的小青春
java
题解|#奶牛喂养时间#题目考察的知识点:贪心之合并数组题目解答方法的文字分析:先将intervals进行排序,定义一个变量prev,然后遍历,如果prev[1]>=interv题解|#牛牛和罗马数字智力游戏#题目考察的知识点考察哈希表的应用题目解答方法的文字分析将对应关系存入哈希表中之后开始循环拆分每一个罗马字母,将结果保存并减去哈希表中对应的值。最后的结果和lim题解|#直线上的牛#import
学习笔记分享-进阶数据结构与算法-图-并查集-优化
-暮倦-
# 学习笔记分享-数据结构与算法 学习 笔记
前言图片上面的personal表示只有图片上面的一行语句是解释图片内容的、local表示这个图片所在标题下的所有语句都是解释图片内容的、global表示有多个标题下的所有语句都是解释图片内容的我是一名大二的学生,学了差不多一年java技术栈了,想记录一下自己对知识点的心得,目前还是个小白,期望大佬们可以指出我笔记中的不足之处、对知识点的认知错误、笔记结构的混乱等这些图片内容都是在观看黑马课程时的视
编程入门难?Python 十大核心知识点,手把手教你!
编程咕咕gu-
Python基础 python 开发语言 Python教程 网络爬虫
如果你对编程感兴趣,但又不知道从哪里开始,那么Python会是你的好选择。它简单易学,是初学者学习编程的好帮手。这篇文章会用轻松的方式,带你了解Python的十个重要概念,一步步帮助你从零开始!1.Python文件与扩展名学习Python的第一步是创建一个Python文件。Python文件的名字后面都会加上.py作为扩展名。例如,你可以创建一个名为main.py的文件,这就是一个Python脚本。
Js函数返回值
_wy_
js return
一、返回控制与函数结果,语法为:return 表达式;作用: 结束函数执行,返回调用函数,而且把表达式的值作为函数的结果 二、返回控制语法为:return;作用: 结束函数执行,返回调用函数,而且把undefined作为函数的结果 在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性
MySQL 的 char 与 varchar
bylijinnan
mysql
今天发现,create table 时,MySQL 4.1有时会把 char 自动转换成 varchar
测试举例:
CREATE TABLE `varcharLessThan4` (
`lastName` varchar(3)
) ;
mysql> desc varcharLessThan4;
+----------+---------+------+-
Quartz——TriggerListener和JobListener
eksliang
TriggerListener JobListener quartz
转载请出自出处:http://eksliang.iteye.com/blog/2208624 一.概述
listener是一个监听器对象,用于监听scheduler中发生的事件,然后执行相应的操作;你可能已经猜到了,TriggerListeners接受与trigger相关的事件,JobListeners接受与jobs相关的事件。
二.JobListener监听器
j
oracle层次查询
18289753290
oracle;层次查询;树查询
.oracle层次查询(connect by)
oracle的emp表中包含了一列mgr指出谁是雇员的经理,由于经理也是雇员,所以经理的信息也存储在emp表中。这样emp表就是一个自引用表,表中的mgr列是一个自引用列,它指向emp表中的empno列,mgr表示一个员工的管理者,
select empno,mgr,ename,sal from e
通过反射把map中的属性赋值到实体类bean对象中
酷的飞上天空
javaee 泛型 类型转换
使用过struts2后感觉最方便的就是这个框架能自动把表单的参数赋值到action里面的对象中
但现在主要使用Spring框架的MVC,虽然也有@ModelAttribute可以使用但是明显感觉不方便。
好吧,那就自己再造一个轮子吧。
原理都知道,就是利用反射进行字段的赋值,下面贴代码
主要类如下:
import java.lang.reflect.Field;
imp
SAP HANA数据存储:传统硬盘的瓶颈问题
蓝儿唯美
HANA
SAPHANA平台有各种各样的应用场景,这也意味着客户的实施方法有许多种选择,关键是如何挑选最适合他们需求的实施方案。
在 《Implementing SAP HANA》这本书中,介绍了SAP平台在现实场景中的运作原理,并给出了实施建议和成功案例供参考。本系列文章节选自《Implementing SAP HANA》,介绍了行存储和列存储的各自特点,以及SAP HANA的数据存储方式如何提升空间压
Java Socket 多线程实现文件传输
随便小屋
java socket
高级操作系统作业,让用Socket实现文件传输,有些代码也是在网上找的,写的不好,如果大家能用就用上。
客户端类:
package edu.logic.client;
import java.io.BufferedInputStream;
import java.io.Buffered
java初学者路径
aijuans
java
学习Java有没有什么捷径?要想学好Java,首先要知道Java的大致分类。自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE
APP推广
aoyouzi
APP 推广
一,免费篇
1,APP推荐类网站自主推荐
最美应用、酷安网、DEMO8、木蚂蚁发现频道等,如果产品独特新颖,还能获取最美应用的评测推荐。PS:推荐简单。只要产品有趣好玩,用户会自主分享传播。例如足迹APP在最美应用推荐一次,几天用户暴增将服务器击垮。
2,各大应用商店首发合作
老实盯着排期,多给应用市场官方负责人献殷勤。
3,论坛贴吧推广
百度知道,百度贴吧,猫扑论坛,天涯社区,豆瓣(
JSP转发与重定向
百合不是茶
jsp servlet Java Web jsp转发
在servlet和jsp中我们经常需要请求,这时就需要用到转发和重定向;
转发包括;forward和include
例子;forwrad转发; 将请求装法给reg.html页面
关键代码;
req.getRequestDispatcher("reg.html
web.xml之jsp-config
bijian1013
java web.xml servlet jsp-config
1.作用:主要用于设定JSP页面的相关配置。
2.常见定义:
<jsp-config>
<taglib>
<taglib-uri>URI(定义TLD文件的URI,JSP页面的tablib命令可以经由此URI获取到TLD文件)</tablib-uri>
<taglib-location>
TLD文件所在的位置
JSF2.2 ViewScoped Using CDI
sunjing
CDI JSF 2.2 ViewScoped
JSF 2.0 introduced annotation @ViewScoped; A bean annotated with this scope maintained its state as long as the user stays on the same view(reloads or navigation - no intervening views). One problem w
【分布式数据一致性二】Zookeeper数据读写一致性
bit1129
zookeeper
很多文档说Zookeeper是强一致性保证,事实不然。关于一致性模型请参考http://bit1129.iteye.com/blog/2155336
Zookeeper的数据同步协议
Zookeeper采用称为Quorum Based Protocol的数据同步协议。假如Zookeeper集群有N台Zookeeper服务器(N通常取奇数,3台能够满足数据可靠性同时
Java开发笔记
白糖_
java开发
1、Map<key,value>的remove方法只能识别相同类型的key值
Map<Integer,String> map = new HashMap<Integer,String>();
map.put(1,"a");
map.put(2,"b");
map.put(3,"c"
图片黑色阴影
bozch
图片
.event{ padding:0; width:460px; min-width: 460px; border:0px solid #e4e4e4; height: 350px; min-heig
编程之美-饮料供货-动态规划
bylijinnan
动态规划
import java.util.Arrays;
import java.util.Random;
public class BeverageSupply {
/**
* 编程之美 饮料供货
* 设Opt(V’,i)表示从i到n-1种饮料中,总容量为V’的方案中,满意度之和的最大值。
* 那么递归式就应该是:Opt(V’,i)=max{ k * Hi+Op
ajax大参数(大数据)提交性能分析
chenbowen00
Web Ajax 框架 浏览器 prototype
近期在项目中发现如下一个问题
项目中有个提交现场事件的功能,该功能主要是在web客户端保存现场数据(主要有截屏,终端日志等信息)然后提交到服务器上方便我们分析定位问题。客户在使用该功能的过程中反应点击提交后反应很慢,大概要等10到20秒的时间浏览器才能操作,期间页面不响应事件。
根据客户描述分析了下的代码流程,很简单,主要通过OCX控件截屏,在将前端的日志等文件使用OCX控件打包,在将之转换为
[宇宙与天文]在太空采矿,在太空建造
comsci
我们在太空进行工业活动...但是不太可能把太空工业产品又运回到地面上进行加工,而一般是在哪里开采,就在哪里加工,太空的微重力环境,可能会使我们的工业产品的制造尺度非常巨大....
地球上制造的最大工业机器是超级油轮和航空母舰,再大些就会遇到困难了,但是在空间船坞中,制造的最大工业机器,可能就没
ORACLE中CONSTRAINT的四对属性
daizj
oracle CONSTRAINT
ORACLE中CONSTRAINT的四对属性
summary:在data migrate时,某些表的约束总是困扰着我们,让我们的migratet举步维艰,如何利用约束本身的属性来处理这些问题呢?本文详细介绍了约束的四对属性: Deferrable/not deferrable, Deferred/immediate, enalbe/disable, validate/novalidate,以及如
Gradle入门教程
dengkane
gradle
一、寻找gradle的历程
一开始的时候,我们只有一个工程,所有要用到的jar包都放到工程目录下面,时间长了,工程越来越大,使用到的jar包也越来越多,难以理解jar之间的依赖关系。再后来我们把旧的工程拆分到不同的工程里,靠ide来管理工程之间的依赖关系,各工程下的jar包依赖是杂乱的。一段时间后,我们发现用ide来管理项程很不方便,比如不方便脱离ide自动构建,于是我们写自己的ant脚本。再后
C语言简单循环示例
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int i;
int count = 0;
int sum = 0;
float avg;
for (i=1; i<=100; i++)
{
if (i%2==0)
{
count++;
sum += i;
}
}
avg
presentModalViewController 的动画效果
dcj3sjt126com
controller
系统自带(四种效果):
presentModalViewController模态的动画效果设置:
[cpp]
view plain
copy
UIViewController *detailViewController = [[UIViewController al
java 二分查找
shuizhaosi888
二分查找 java二分查找
需求:在排好顺序的一串数字中,找到数字T
一般解法:从左到右扫描数据,其运行花费线性时间O(N)。然而这个算法并没有用到该表已经排序的事实。
/**
*
* @param array
* 顺序数组
* @param t
* 要查找对象
* @return
*/
public stati
Spring Security(07)——缓存UserDetails
234390216
ehcache 缓存 Spring Security
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。该类的构造接收一个用于真正加载UserDetails的UserDetailsService实现类。当需要加载UserDetails时,其首先会从缓存中获取,如果缓存中没
Dozer 深层次复制
jayluns
VO maven po
最近在做项目上遇到了一些小问题,因为架构在做设计的时候web前段展示用到了vo层,而在后台进行与数据库层操作的时候用到的是Po层。这样在业务层返回vo到控制层,每一次都需要从po-->转化到vo层,用到BeanUtils.copyProperties(source, target)只能复制简单的属性,因为实体类都配置了hibernate那些关联关系,所以它满足不了现在的需求,但后发现还有个很
CSS规范整理(摘自懒人图库)
a409435341
html UI css 浏览器
刚没事闲着在网上瞎逛,找了一篇CSS规范整理,粗略看了一下后还蛮有一定的道理,并自问是否有这样的规范,这也是初入前端开发的人一个很好的规范吧。
一、文件规范
1、文件均归档至约定的目录中。
具体要求通过豆瓣的CSS规范进行讲解:
所有的CSS分为两大类:通用类和业务类。通用的CSS文件,放在如下目录中:
基本样式库 /css/core
C++动态链接库创建与使用
你不认识的休道人
C++ dll
一、创建动态链接库
1.新建工程test中选择”MFC [dll]”dll类型选择第二项"Regular DLL With MFC shared linked",完成
2.在test.h中添加
extern “C” 返回类型 _declspec(dllexport)函数名(参数列表);
3.在test.cpp中最后写
extern “C” 返回类型 _decls
Android代码混淆之ProGuard
rensanning
ProGuard
Android应用的Java代码,通过反编译apk文件(dex2jar、apktool)很容易得到源代码,所以在release版本的apk中一定要混淆一下一些关键的Java源码。
ProGuard是一个开源的Java代码混淆器(obfuscation)。ADT r8开始它被默认集成到了Android SDK中。
官网:
http://proguard.sourceforge.net/
程序员在编程中遇到的奇葩弱智问题
tomcat_oracle
jquery 编程 ide
现在收集一下:
排名不分先后,按照发言顺序来的。
1、Jquery插件一个通用函数一直报错,尤其是很明显是存在的函数,很有可能就是你没有引入jquery。。。或者版本不对
2、调试半天没变化:不在同一个文件中调试。这个很可怕,我们很多时候会备份好几个项目,改完发现改错了。有个群友说的好: 在汤匙
解决maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported
xp9802
dependency
解决办法:在plugins之前添加如下pluginManagement,二者前后顺序如下:
[html]
view plain
copy
<build>
<pluginManagement