java我了解的比较少,但是完全面向对象的技术,使得开发变得简便,这是毋庸置疑的。.net发展实现了这一点。最近做的东西,感觉还是用.net来开发界面比较方便,所以好好的把C#的学习有深入看了看。当然,要使用.net,要使用Visual C#,首先要学习C#语言。感谢这部书,当初使我很快完成了C++向C#的过渡,希望大家共勉。另外一部是《C#语言参考》,是手册,没有必要全看,主要是参考。最后多说两句,一、有人问我为什么不使用C++.net这一既有C++语法又有.net语法的语言,我说,那个东西是将C++弄复杂来实现.net,而C#是将C++弄简单来实现.net,所以C++.net比C#难学两倍。二、我还是坚定的支持C++和API,因为这仍然是最基本的。特别是C++在一些算法技巧的实现上,我觉得有着非常大的特长。谢谢 前言
0.1 提要
欢迎阅读《展现 C#》(Presenting C#)。这本书是你提高企业编程语言的一条捷径。这种企业编程语言带有下一代编程语言服务运行时(NGWS Runtime):C#(发音"C sharp")。
NGWS Runtime 是一个不仅管理执行代码、同时也提供使编程更加容易的动态环境。编译器产生受管代码以指向这种受管理执行环境。你获得跨平台语言集成、跨平台语言异常处理、增强安全性、版本控制、安排支持和查错服务。
支持NGWS Runtime 的主要语言是C#。支持NGWS框架的很多程序是用C#写的,因此,在一些带有NGWS Runtime的编译器中,它的编译器可以被认为是非常经得起测试且是经过优化的。C#语言借鉴了C++,但是具备现代化和新增的类型安全——使C#成为企业解决方案的首选语言。 0.2 谁应该读这本书
如果你对编程很陌生,这本书不适合你。这本书企图让程序员解脱并使用C#,基于他们已经拥有的知识。《展现 C#》的目标瞄准了已经具有如C/C++、VB、Java或其它编程经验的程序员。
如果你具有C++的背景,转向C#会很容易,但是,如果你精通于其它不同的语言,这本书也会耗掉你的一些日子。如果你有一点COM编程的知识,这本会更有趣,但会COM编程不再是必要的。 0.3 这本书如何组织
第一章 C#简介——这一章把你带到C#逛一回,同时回答了有关你应该考虑学习C#的问题。
第二章 NGWS Runtime 的技术基础——介绍NGWS Runtime为运行的C#代码所提供的低层架构。
第三章 第一个C#应用程序——创建真正第一个C#应用程序(否则它是什么呢?),它就是一个"Hello World"应用程序。
第四章 C#类型——可以看到用在C#应用程序中的各种类型。探索值型和引用型的区别,还有如何加框和消框。
第五章 类——C#功能真正强大的标志,它是具有类的面向对象的编程。你会学到好多好多的东西,如构造函数、析构函数、方法、属性、索引和事件等。
第六章 控制语句——对应用程序实行流程控制。探索C#提供的各种选择和陈述语句。
第七章 异常处理——获得了编写实现异常处理的应用程序技巧,拥有这种技巧,在NGWS Runtime世界,你是一个好的公民
第八章 用C#写组件——用C#构建组件,因为支持NGWS Runtime,它可以被不同语言平台的客户使用。
第九章 配置和安排——学到如何用C#有条件地进行编译工作,和如何为你的C#源码自动地创建文档。另外,这一章将介绍到NGWS的版本技术问题。
第十章 用非受管代码交互操作——发现你如何使用C#内部的非受管代码,且非受管代码如何与你的C#组件一起交互操作。
第十一章 C#代码查错——获得使用SDK查错工具的技巧,可以在应用程序中准确地找到错误并修改它们。
第十二章 安全——探索NGWS Runtime的安全概念。学到代码访问安全性和基于角色的安全性。 0.4 使用这本书你需要什么?
从这本书的观点看,你所需要的就是下一代windows服务软件开发包(NGWS SDK)。尽管至少只要有NGWS Runtime 和C#编译器就可以,但当探索这些激动人心的新技术功能 时,在一台机器上装有说明文件档和所有的SDK工具(包括debugger),将是一个极好的主意。
这本书不需要你装在机器上的Visual Studio 7的任何工具。我仅建议你要有一个优秀的支持行数的程序编辑器,用以编辑C#源文件。
……
(省略掉一些有关出版过程和表示感谢的段落) 0.5 关于作者
第一部分---总则 第一章 电脑维修的基本原则和方法
第二章 电脑维修步骤与维修操作注意事项
第二部分 常见故障判断
本部分将计算机从开机一直到关机期间的故障进行分类。每一类的判断、定位过程都是第一部分中“维修判断”一节的有机组成部分,即不论使用什么方法或不论去判断什么内容,这两部分总是相互结合使用的。
以下各故障类型中所列的故障现象只是众多故障现象中的一部分,对于未列出的故障现象,有的可归类到其中,有的无法归类。因此,本手册只针对已列出的及可归类其中的故障现象提供相应的判断的方法和思路,并提供基本的排除的方法。而对不能归类其中的其它故障现象来说,我们会在今后的工作中不断的收集、整理总结,然后对本《台式电脑维修指导手册》进行丰富。
第一章 加电类故障
第二章 启动与关闭类故障
第三章 磁盘类故障
第四章 显示类故障
第五章 安装类故障
第六章 操作与应用类故障
第七章 局域网类故障
第八章 Internet类故障
第九章 端口与外设故障
第十章 音视频类故障
第十一章 兼容或配合性故障
第一部分---总则
第一章 电脑维修的基本原则和方法
这里所述原则、方法等是第二部分分类判断的基础,需要认真遵守执行。
§1.1 进行电脑维修应遵循的基本原则:
一、 进行维修判断须从最简单的事情做起
简单的事情,一方面指观察,另一方面是指简捷的环境。
简单的事情就是观察,它包括:
1、 电脑周围的环境情况——位置、电源、连接、其它设备、温度与湿度等;
2、 电脑所表现的现象、显示的内容,及它们与正常情况下的异同;
3、 电脑内部的环境情况——灰尘、连接、器件的颜色、部件的形状、指示灯的状态等;
4、 电脑的软硬件配置——安装了何种硬件,资源的使用情况;使用的是使种xx作系统,其上又安装了何种应用软件;硬件的设置驱动程序版本等。
简捷的环境包括:
1、 后续将提到的最小系统;
2、 在判断的环境中,仅包括基本的运行部件/软件,和被怀疑有故障的部件/软件;
3、 在一个干净的系统中,添加用户的应用(硬件、软件)来进行分析判断
从简单的事情做起,有利于精力的集中,有利于进行故障的判断与定位。一定要注意,必须通过认真的观察后,才可进行判断与维修。
二、 根据观察到的现象,要“先想后做”
先想后做,包括以下几个方面:
首先是,先想好怎样做、从何处入手,再实际动手。也可以说是先分析判断,再进行维修。
其次是,对于所观察到的现象,尽可能地先查阅相关的资料,看有无相应的技术要求、使用特点等,然后根据查阅到的资料,结合下面要谈到的内容,再着手维修。
最后是,在分析判断的过程中,要根据自身已有的知识、经验来进行判断,对于自己不太了解或根本不了解的,一定要先向有经验的同事或你的技术支持工程师咨询,寻求帮助。
三、 在大多数的电脑维修判断中,必须“先软后硬:
即从整个维修判断的过程看,总是先判断是否为软件故障,先检查软件问题,当可判软件环境是正常时,如果故障不能消失,再从硬件方面着手检查。
四、 在维修过程中要分清主次,即“抓主要矛盾”
在复现故障现象时,有时可能会看到一台故障机不止有一个故障现象,而是有两个或两个以上的故障现象(如:启动过程中无显,但机器也在启动,同时启动完后,有死机的现象等),为时,应该先判断、维修主要的故障现象,当修复后,再维修次要故障现象,有时可能次要故障现象已不需要维修了。
这篇文章很重要,直接帖过来保存。 出处 http://dragon.cnblogs.com/archive/2006/05/08/394078.html 前言: 半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我的感受,所以也就不能免俗了。 本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版权归原作者所有,欢迎转载。但是为了尊重原作者和译者的劳动,请注明出处!谢谢! 1. 什么是正则表达式 基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。本文将用<<regex>>来表示一段具体的正则表达式。 一段文本就是最基本的模式,简单的匹配相同的文本。 2. 不同的正则表达式引擎 正则表达式引擎是一种可以处理正则表达式的软件。通常,引擎是更大的应用程序的一部分。在软件世界,不同的正则表达式并不互相兼容。本教程会集中讨论Perl 5 类型的引擎,因为这种引擎是应用最广泛的引擎。同时我们也会提到一些和其他引擎的区别。许多近代的引擎都很类似,但不完全一样。例如.NET正则库,JDK正则包。 3. 文字符号 最基本的正则表达式由单个文字符号组成。如<<a>>,它将匹配字符串中第一次出现的字符“a”。如对字符串“Jack is a boy”。“J”后的“a”将被匹配。而第二个“a”将不会被匹配。 正则表达式也可以匹配第二个“a”,这必须是你告诉正则表达式引擎从第一次匹配的地方开始搜索。在文本编辑器中,你可以使用“查找下一个”。在编程语言中,会有一个函数可以使你从前一次匹配的位置开始继续向后搜索。 类似的,<<cat>>会匹配“About cats and dogs”中的“cat”。这等于是告诉正则表达式引擎,找到一个<<c>>,紧跟一个<<a>>,再跟一个<<t>>。 要注意,正则表达式引擎缺省是大小写敏感的。除非你告诉引擎忽略大小写,否则<<cat>>不会匹配“Cat”。 · 特殊字符 对于文字字符,有11个字符被保留作特殊用途。他们是: [ ] / ^ $ . | ? * + ( ) 这些特殊字符也被称作 元字符。 如果你想在正则表达式中将这些字符用作文本字符,你需要用反斜杠“/”对其进行换码 (escape)。例如你想匹配“1+1=2”,正确的表达式为<<1/+1=2>>. 需要注意的是,<<1+1=2>>也是有效的正则表达式。但它不会匹配“1+1=2”,而会匹配“123+111=234”中的“111=2”。因为“+”在这里表示特殊含义(重复1次到多次)。 在编程语言中,要注意,一些特殊的字符会先被编译器处理,然后再传递给正则引擎。因此正则表达式<<1/+2=2>>在C++中要写成“1//+1=2”。为了匹配“C:/temp”,你要用正则表达式<<C://temp>>。而在C++中,正则表达式则变成了“C:temp”。 · 不可显示字符 可以使用特殊字符序列来代表某些不可显示字符: <</t>>代表Tab(0x09) <</r>>代表回车符(0x0D) <</n>>代表换行符(0x0A) 要 注意的是Windows中文本文件使用“/r/n”来结束一行而Unix使用“/n”。 4. 正则表达式引擎的内部工作机制 知道正则表达式引擎是如何工作的有助于你很快理解为何某个正则表达式不像你期望的那样工作。 有两种类型的引擎: 文本导向(text-directed)的引擎和 正则导向(regex-directed)的引擎。Jeffrey Friedl把他们称作 DFA和 NFA引擎。本文谈到的是正则导向的引擎。这是因为一些非常有用的特性,如“惰性”量词(lazy quantifiers)和反向引用(backreferences),只能在正则导向的引擎中实现。所以毫不意外这种引擎是目前最流行的引擎。 你可以轻易分辨出所使用的引擎是文本导向还是正则导向。如果反向引用或“惰性”量词被实现,则可以肯定你使用的引擎是正则导向的。你可以作如下测试:将正则表达式<<regex|regex not>>应用到字符串“regex not”。如果匹配的结果是regex,则引擎是正则导向的。如果结果是regex not,则是文本导向的。因为正则导向的引擎是“猴急”的,它会很急切的进行表功,报告它找到的第一个匹配 。 · 正则导向的引擎总是返回最左边的匹配 这是需要你理解的很重要的一点:即使以后有可能发现一个“更好”的匹配,正则导向的引擎也总是返回最左边的匹配。 当把<<cat>>应用到“He captured a catfish for his cat”,引擎先比较<<c>>和“H”,结果失败了。于是引擎再比较<<c>>和“e”,也失败了。直到第四个字符,<<c>>匹配了“c”。<<a>>匹配了第五个字符。到第六个字符<<t>>没能匹配“p”,也失败了。引擎再继续从第五个字符重新检查匹配性。直到第十五个字符开始,<<cat>>匹配上了“catfish”中的“cat”,正则表达式引擎急切的返回第一个匹配的结果,而不会再继续查找是否有其他更好的匹配。 5.
Socket接收到的byte []要转换成自定义的struct / 自定义Struct转换成byte []都相当麻烦
用循环去转换太浪费时间了……于是想到用CopyMemory,Google一圈终于搞定
下面的代码是在Snippet Compiler里编译通过的
C#代码 #region Imports using System; using System.IO; using System.Net; using System.Xml; using System.Text; using System.Data; using System.Drawing; using System.Threading; using System.Reflection; using System.Collections; using System.Net.Sockets; using System.Windows.Forms; using System.ComponentModel; using System.Drawing.Imaging; using System.Security.Cryptography; using System.Runtime.InteropServices; using System.Text.RegularExpressions; #endregion #region Assembly Info [assembly: AssemblyTitle("Test Application by eglic")] [assembly: AssemblyDescription("Test Application by eglic")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("eGlic.Com")] [assembly: AssemblyProduct("Test Application by eglic")] [assembly: AssemblyCopyright("
构建文件格式转换服务器 1. 为什么要做文件格式转换服务器 不知道各位是否遇到这样的情况, 当您在浏览IBM SUN等公司的技术网站的时候, 你会发现在每个页面的上方有小图标, 你可以把当前的页面内容以word, pdf或者是其他的格式进行下载, 可能你在想, 恩, 大公司的做法确实很正规, 他们提供了许多的格式版本提供不同的用户下载, 我想你可能是对的, 但是我们换一种想法假设我们构建一个服务器, 让所有的格式可以自由地转换成我们所希望地格式: 假设我们的Java代码是这样写的 Public static FileTransfer{ Public static convert(File inputFile ,File outputFile){ ……… } } 那么我们可以在Jsp Servlet里面调用这个静态方法, 实现文档的格式的转换。 2. 怎么实现 好了, 设计思想有了, 怎么实现呢, 好在Java有大量的开源社区,而且我们有google , 不出一分钟, 我们可以从互联网找到答案: http://www.artofsolving.com/ 这个是一个利用Openoffice来实现的解决方案, 他已经帮忙做好了整个解决方案。 JODConverter 是这个项目的子项, 用 Java 语言来实现: n Microsoft Office 转换成OpenDocument和viceversa n Word 格式转换成 OpenDocument Text (odt); n OpenDocument Text (odt) 转换成 Word n Excel转换成OpenDocument Spreadsheet (ods); n OpenDocument Spreadsheet (ods) 转换成Excel n PowerPoint转换成OpenDocument Presentation (odp); n OpenDocument Presentation (odp) 转换成PowerPoint n 任何格式转换成 PDF n OpenDocument (Text, Spreadsheet, Presentation) 转换成PDF n Word to PDF; Excel转换成PDF; PowerPoint转换成PDF n RTF转换成PDF; WordPerfect转换成PDF; .
之前有查过2者之前的区别,不过时隔多日有点不是很清楚了,而且也没深入了解2者到底有何区别,今日再次查询网上讨论,主要也就有以下观点: string是c#中的类,String是.net Framework的类(在c# IDE中不会显示蓝色) c# string映射为.net Framework的String 如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作 如果使用c#,建议使用string,比较符合规范 string始终代表 System.String(1.x)或 ::System.String(2.0) ,String只有在前面有using System;的时候并且当前命名空间中没有名为String的类型(class、struct、delegate、enum)的时候才代表System.String string是关键字,String不是,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以
[转帖]Linux与Windows相互访问 如今,大概没有人会低估Linux的发展前途,但是至少现在,我们仍然不能对Windows说不。因此,许多电脑爱好者只好将一部分硬盘空间让出来安装Linux。那么,能不能实现在Linux与Windows之间相互访问呢? 要想在Windows下访问Linux,需要工具软件的帮助;而在Linux下访问Windows,根据不同的分区格式,有不同的方法。 在Windows下访问Linux Windows本身并没有提供直接访问Linux的程序,因此我们需要借助第三方的软件才能访问Linux的Ext分区中的内容,虽然网上有许多这类软件,但大多数只能读取Linux下的内容,而无法对Linux进行写操作。不过,有了Explore2fs软件,一切就变得容易多了,通过这个软件,我们不但可以读取、复制Linux中的内容,而且还可以直接对Linux进行写操作,如删除、加入文件等等。 1. 首先,到“http://www.gxgl.com/soft/explore2fs.rar”上下载Explore2fs,它的最新版本是1.00 pre6,大小只有357KB,可以稳定运行在Win95/98/NT/2000/Me/XP系统中,它是一款免费软件,所以您尽可放心使用。 Explore2fs还是一款绿色软件,不需要安装,直接解压到一个目录下,然后运行explore2fs.exe文件就可以了,这时就能看到一个类似于资源管理器的界面,窗口的左边是Linux的目录树型结构,右边就是所选目录下的内容,可单击左边目录前的“+”、“-”号来展开和折叠子目录。在窗口的右边,Linux分区的文件以小企鹅图标显示,您可以通过右键菜单或菜单栏上相应的命令对这些文件进行操作。 需要说明的是,Linux有文件保护机制,如果您权限不够,系统会拒绝您对文件进行读写。 2. Explore2fs支持文件的拖放,因此将Linux分区下的文件拷贝到Windows下是一件轻而易举的事。选中需要复制的文件,点击鼠标右键,选中“Export file”选项将文件保存到Windows的目录中即可,而在弹出的菜单中选择“View”,即可调用默认的关联程序打开该文件。您还可以通过选择“View|Options|General|viewer program”来设定相应的关联程序。 不过,以上操作也仅限于读操作,而不能写,也就说是不能改动Linux中的内容,因为这时您所看到的右键菜单中,下面几项可写的内容都是灰色的,也就是不可选的。我们可用下面的方法让它可选。在“View”菜单中选择“Options”,然后在弹出的窗口中选择“Debug”标签,选中“Enable write support”选项,再点击“OK”按钮退出。然后在“File”菜单中选择“Rescan Partition”,这时会弹出“Confirm”窗口,点击“Yes”按钮即可,现在的右键菜单选项就全部可选了。 3. 在笔者使用的过程中,无论是向Linux传送文件还是将Linux中的文件导入到Windows中,都没有出现异常情况,但还是建议您不要传送过大的文件,并且不要随意改动系统目录下的内容,最好的方法是在Linux下建立一个新的目录,然后将要传送的文件全部保存在该目录下。除了可以用拖动的方法向Linux传送文件外,还可以通过鼠标右键中的“Import file”来向Linux传送文件。 Explore2fs除了传送文件外,还支持更改文件的使用权限。具体方法很简单,选中该文件,点击鼠标右键,在弹出的菜单中选择“Properties”,然后在“Attributes”标签中修改相应的内容即可。当然您也可以通过右键菜单中的“Delete”选项来删除相应的文件,不过,一定要注意不要把系统文件删除了。另外,在右键菜单中还有一个“Create”(创建)的目录,它下面有三个选项:Block Device、Character Device和Symbolic Link,前两个Linux系统已内置好了,不需要修改,Symbolic Link则相当于Windows下的快捷方式。 在Linux下访问Windows Linux内核支持读写Fat、NTFS、Vfat、Fat32、Hfs等文件系统(至少可以读),因此在Linux下访问Windows的内容相对来说要简单得多,甚至不用下载软件就可以达到目的。 fat/fat32分区的情形 红旗Linux3.2、Mandrake Linux8.2等版本的Linux在安装完成后已经自动加载fat分区了,图2所示的就是红旗Linux安装完成后自动加载的Windows分区,和我们在Windows下看到的完全一样,因此特别适于初学者使用。而redhat7.3则没有自动加载fat分区,因此还需要进行手工操作,不过这些操作同样适用于红旗Linux、Mandrake Linux。 1. 利用mount命令挂装文件系统访问Windows。 mount是Linux下的一个命令,它可以将Windows分区作为Linux的一个“文件”挂接到Linux的一个空文件夹下,从而将Windows的分区和/mnt这个目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。 Mount的使用格式是(必须以root身份登录):mount[-afFhnrvVm][-l<标签>][-o<选项>][-t<文件系统>][设备名称][挂入点],比如我们要将Windows的D区挂接到Linux的/mnt/wind这个目录下,首先要在/mnt下建立wind文件夹,然后切换到Console终端模式,在命令提示符下输入“mount /dev/hda5 /mnt/wind”,即表示将Windows的D分区挂到Liunx的/mnt/wind目录下,这时在/mnt/wind目录下,就可以看到Windows中D盘的内容了。 在命令行提示符下还可以通过输入“more”、“cp”及“rm”等命令来查看
在做软件注册时,通常用硬盘号(建议用散列后的硬盘号)作为本地电脑特征码,加上用户名以及公司名等其他信息,通过一定的算法,得到软件序列号。这样做的好处的显而易见的。它可以防止一个序列号N多人用的现象。现在有些软件就是一个注册码,在网上公开,全世界人都在用。但是也有相应的缺陷。客户只能在一台电脑上用你写的软件。下面的方法通过Windows API获得硬盘号。 using System.Runtime.InteropServices;
[DllImport( " kernel32.dll " )]
private static extern int GetVolumeInformation( string lpRootPathName, string lpVolumeNameBuffer, int nVolumeNameSize, ref int lpVolumeSerialNumber, int lpMaximumComponentLength, int lpFileSystemFlags, string lpFileSystemNameBuffer, int nFileSystemNameSize ); private string GetVolOf( string drvID) ... { const int MAX_FILENAME_LEN = 256; int retVal = 0; int a =0; int b =0; string str1 = null; string str2 = null; int i = GetVolumeInformation( drvID + @":", str1, MAX_FILENAME_LEN, ref retVal, a, b, str2, MAX_FILENAME_LEN ); return retVal.
SSH Section: User Commands (1) Index Return to Main Contents BSD mandoc NAME ssh - OpenSSH SSH 客户端 (远程登录程序) 总览 (SYNOPSIS) ssh [- l login_name ] hostname | user@hostname [ command ] ssh -words [-afgknqstvxACNTX1246 ] [-b bind_address ] [-c cipher_spec ] [-e escape_char ] [-i identity_file ] [-l login_name ] [-m mac_spec ] [-o option ] [-p port ] [-F configfile ] [-L port host hostport ] -words [-R port host hostport ] [-D port ] hostname | user@hostname [command ] 描述 (DESCRIPTION) (SSH 客户端) 用于登录远程主机, 并且在远程主机上执行命令.
因为装过其它浏览器或其它原因,使得IE打开XML文件时出现一闪而过,或是打开却出现保存文件对话框,这些原因大多数是因为IE的XML解析器出现了问题,只有卸载后重新注册即可。 方法:
注:卸载时,请根据自己的浏览器安装的解析器版本确定,不一定全部都会有以下版本
1、删除:
打开运行窗口-->输入-->
regsvr32 -u msxml3.dll
regsvr32 -u msxml4.dll
regsvr32 -u msxml6.dll
2、重新注册
打开运行窗口-->输入-->
regsvr32 msxml3.dll
regsvr32 msxml4.dll
regsvr32 msxml6.dll
不重起Windows直接更改IP地址 作者:浙江省温岭电信局 王骏 设置IP地址只需要更改注册表中关于适配器的相应设置,但更改后需要重新启动系统才能生效,而AddIPAddress函数只能添加IP而不是更改当前的IP,我们在Windows NT/2000界面上操作不需要重新启动就可以生效,那系统到底做了什么额外的工作才使IP设置直接生效呢?笔者通过跟踪explorer.exe中API的调用发现在netcfgx.dll中调用了dhcpcsvc.dll中一个未公开的API:DhcpNotifyConfigChange,现将不重新启动WINDOWS直接更改IP地址的详细方法介绍如下: 一、获取适配器名称 这里指的适配器名称要区别于适配器描述,比如我的一块网卡,适配器描述是:Realtek RTL8139(A) PCI Fast Ethernet Adapter,适配器名称为:{66156DC3-44A4-434C-B8A9-0E5DB4B3EEAD}。获取适配器名称的方法有多种: 1.1 调用IP helper API取得适配器名称 ULONG ulAdapterInfoSize = sizeof(IP_ADAPTER_INFO); IP_ADAPTER_INFO *pAdapterInfoBkp, *pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize]; if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_BUFFER_OVERFLOW ) // 缓冲区不够大 { delete pAdapterInfo; pAdapterInfo = (IP_ADAPTER_INFO*)new char[ulAdapterInfoSize]; pAdapterInfoBkp = pAdapterInfo; } if( GetAdaptersInfo(pAdapterInfo, &ulAdapterInfoSize) == ERROR_SUCCESS ) { do{ // 遍历所有适配器 if(pAdapterInfo->Type == MIB_IF_TYPE_ETHERNET) // 判断是否为以太网接口 { // pAdapterInfo->Description 是适配器描述 // pAdapterInfo->AdapterName 是适配器名称 } pAdapterInfo = pAdapterInfo->Next; }while(pAdapterInfo); } delete pAdapterInfoBkp; 1.
在数字信号处理中有两种重要的系统类型。
第一种类型在时域进行信号滤波因此称为数字滤波器。第二种系统类型在频域表达信号因此称为谱分析器。
设计数字滤波器要执行一下三个步骤:
指标:在设计滤波器之前,必须进行必要的指标说明,这是由应用来决定的。
近似:一旦决定了指标,就要用目前为止所学过的各种概念和数学方法来提出滤波器的描述,这可以近似表达出所 给定的指标。这一步是滤波器设计的核心步骤。
完成:上一步的结果就是差分方程或者系统函数或者冲激响应形式的滤波器描述。根据这一描述可以在硬件或者计算机上的软件上完成滤波器的设计。
在很多应用中,比如说语音信号处理中,数字滤波器用于完成频率选择功能。因此,就需要在频域中以所期望的滤波器的幅度和相位响应表达指标。一般来说需要在通频带中得到线性相位响应。在FIR 滤波器的情况中,可以获得
很好的线性相位。在IIR 滤波器中得不到通频带中的线性相位。
一般来说,会对线性相位频率选择FIR 滤波器比较感兴趣。线性相位响应的优点是:设计问题仅涉及到实数问题而不牵涉复数问题。线性相位滤波器没有时延失真且仅延迟一个固定量。
1,url传值,如:
CheckPwd.aspx?user=uservalue&pwd=pwdvalue
2,Session传值
如:Session("role")="Administrator"
3,Viewstate("role")="Administrator" ,用法和Session大致相同
4,Context传值
如:页面1.aspx有一个TextBox1.Text,一个Button1,一个function test()
Context.Items.Add("value",TextBox1.Text)
Server.Transfer("2.aspx",True) '如果为FALSE,2.aspx将取不到1.aspx中的值
在页面2.aspx中,提取需要的值
Dim str as string=Context.Items("value").tostring
或 str=Request.From("TextBox1")
但是:str=Request.QeuryString("TextBox1")取不到值,想一想为什么???
还可以调用1.aspx的属性和方法:
Dim 11 as i=Ctype(Context.Handle,1)
11.test()
打印机十大共性故障解决方案
打印机已是我们现代办公必备的设备,可以说它的使用大大减轻了我们的劳动强度,提高了工作效率,使办公环境更加轻松。可是由于各种原因,打印机在使用一段时间后经常出现这样或那样的故障,下面就将打印机经常出现的十个故障的检修方法与技巧介绍给大家,希望能够对大家使用和维修打印机有所帮助。
一、打印机输出空白纸
对于针式打印机,引起打印纸空白的原因大多是由于色带油墨干涸、色带拉断、打印头损坏等,应及时更换色带或维修打印头;对于喷墨打印机,引起打印空白的故障大多是由于喷嘴堵塞、墨盒没有墨水等,应清洗喷头或更换墨盒;而对于激光打印机,引起该类故障的原因可能是显影辊未吸到墨粉(显影辊的直流偏压未加上),也可能是感光鼓未接地,使负电荷无法向地释放,激光束不能在感光鼓上起作用。
另外,激光打印机的感光鼓不旋转,则不会有影像生成并传到纸上。断开打印机电源,取出墨粉盒,打开盒盖上的槽口,在感光鼓的非感光部位做个记号后重新装入机内。开机运行一会儿,再取出检查记号是否移动了,即可判断感光鼓是否工作正常。如果墨粉不能正常供给或激光束被挡住,也会出现打印空白纸的现象。因此,应检查墨粉是否用完、墨盒是否正确装入机内、密封胶带是否已被取掉或激光照射通道上是否有遮挡物。需要注意的是,检查时一定要将电源关闭,因为激光束可能会损坏操作者的眼睛。 二、打印纸输出变黑
对于针式打印机,引起该故障的原因是色带脱毛、色带上油墨过多、打印头脏污、色带质量差和推杆位置调得太近等,检修时应首先调节推杆位置,如故障不能排除,再更换色带,清洗打印头,一般即可排除故障;对于喷墨打印机,应重点检查喷头是否损坏、墨水管是否破裂、墨水的型号是否正常等;对于激光打印机,则大多是由于电晕放电丝失效或控制电路出现故障,使得激光一直发射,造成打印输出内容全黑。因此,应检查电晕放电丝是否已断开或电晕高压是否存在、激光束通路中的光束探测器是否工作正常。
三、打印字符不全或字符不清晰
对于喷墨打印机,可能有两方面原因,墨盒墨尽、打印机长时间不用或受日光直射而导致喷嘴堵塞。解决方法是可以换新墨盒或注墨水,如果墨盒未用完,可以断定是喷嘴堵塞:取下墨盒(对于墨盒喷嘴不是一体的打印机,需要取下喷嘴),把喷嘴放在温水中浸泡一会儿,注意一定不要把电路板部分浸在水中,否则后果不堪设想。
对于针式打印机,可能有以下几方面原因:打印色带使用时间过长;打印头长时间没有清洗,脏物太多;打印头有断针;打印头驱动电路有故障。解决方法是先调节一下打印头与打印辊间的间距,故障不能排除,可以换新色带,如果还不行,就需要清洗打印头了。方法是:卸掉打印头上的两个固定螺钉,拿下打印头,用针或小钩清除打印头前、后夹杂的脏污,一般都是长时间积累的色带纤维等,再在打印头的后部看得见针的地方滴几滴仪表油,以清除一些脏污,不装色带空打几张纸,再装上色带,这样问题基本就可以解决,如果是打印头断针或是驱动电路问题,就只能更换打印针或驱动管了。 四、打印字迹偏淡
对于针式打印机,引起该类故障的原因大多是色带油墨干涸、打印头断针、推杆位置调得过远,可以用更换色带和调节推杆的方法来解决;对于喷墨打印机,喷嘴堵塞、墨水过干、墨水型号不正确、输墨管内进空气、打印机工作温度过高都会引起本故障,应对喷头、墨水盒等进行检测维修;对于激光打印机,当墨粉盒内的墨粉较少,显影辊的显影电压偏低和墨粉感光效果差时,也会造成打印字迹偏淡现象。此时,取出墨粉盒轻轻摇动,如果打印效果无改善,则应更换墨粉盒或调节打印机墨粉盒下方的一组感光开关,使之与墨粉的感光灵敏度匹配。//本文来自电脑软硬件应用网 www.45it.com 转载请注明 五、打印时字迹一边清晰而另一边不清晰
此现象一般出现在针式打印机上,喷墨打印机也可能出现,不过概率较小,主要是打印头导轨与打印辊不平行,导致两者距离有远有近所致。解决方法是可以调节打印头导轨与打印辊的间距,使其平行。具体做法是:分别拧松打印头导轨两边的调节片,逆时针转动调节片减小间隙,最后把打印头导轨与打印辊调节到平行就可解决问题。不过要注意调节时调对方向,可以逐渐调节,多打印几次。 六、打印纸上重复出现污迹
针式打印机重复出现脏污的故障大多是由于色带脱毛或油墨过多引起的,更换色带盒即可排除;喷墨打印机重复出现脏污是由于墨水盒或输墨管漏墨所致;当喷嘴性能不良时,喷出的墨水与剩余墨水不能很好断开而处于平衡状态,也会出现漏墨现象;而激光打印机出现此类现象有一定的规律性,由于一张纸通过打印机时,机内的12种轧辊转过不止一圈,最大的感光鼓转过2~3圈,送纸辊可能转过10圈,当纸上出现间隔相等的污迹时,可能是由脏污或损坏的轧辊引起的。
七、打印头移动受阻,停下长鸣或在原处震动
这主要是由于打印头导轨长时间滑动会变得干涩,打印头移动时就会受阻,到一定程度就会使打印停止,如不及时处理,严重时可以烧坏驱动电路。解决方法是在打印导轨上涂几滴仪表油,来回移动打印头,使其均匀分布。重新开机后,如果还有受阻现象,则有可能是驱动电路烧坏,需要拿到维修部了。
八、打印机不打印
引起打印机不打印的故障原因有很多种,有打印机方面的,也有计算机方面的。以下分别进行介绍:
1. 检查打印机是否处于联机状态。在大多数打印机上“OnLine”按钮旁边都有一个指示联机状态的灯,正常情况下该联机灯应处于常亮状态。如果该指示灯不亮或处于闪烁状态,则说明联机不正常,重点检查打印机电源是否接通、打印机电源开关是否打开、打印机电缆是否正确连接等。如果联机指示灯正常,关掉打印机,然后再打开,看打印测试页是否正常。
2. 检查打印机是否已设置为默认打印机。点击“开始/设置/打印机”,检查当前使用的打印机图标上是否有一黑色的小钩,然后将打印机设置为默认打印机。如果“打印机”窗口中没有使用的打印机,则点击“添加打印机”图标,然后根据提示进行安装。
3. 检查当前打印机是否已设置为暂停打印。方法是在“打印机”窗口中用右键单击打印机图标,在出现的下拉菜单中检查“暂停打印”选项上是否有一小钩,如果选中了“暂停打印”请取消该选项。
4. 在“记事本”中随便键入一些文字,然后单击“文件”菜单上的“打印”。如果能够打印测试文档,则说明使用的打印程序有问题,重点检查WPS、CCED、Word或其他应用程序是否选择了正确的打印机,如果是应用程序生成的打印文件,请检查应用程序生成的打印输出是否正确。
5. 检查计算机的硬盘剩余空间是否过小。如果硬盘的可用空间低于10MB则无法打印,检查方法是在“我的电脑”中用右键单击安装Windows的硬盘图标,选择“属性”,在“常规”选项卡中检查硬盘空间,如果硬盘剩余空间低于10MB,则必须清空“回收站”,删除硬盘上的临时文件、过期或不再使用的文件,以释放更多的空间。
6. 检查打印机驱动程序是否合适以及打印配置是否正确。在“打印机属性”窗口中“详细资料”选项中检查以下内容:在“打印到以下端口”选择框中,检查打印机端口设置是否正确,最常用的端口为“LPT1(打印机端口)”,但是有些打印机却要求使用其他端口;如果不能打印大型文件,则应重点检查“超时设置”栏目的各项“超时设置”值,此选项仅对直接与计算机相连的打印机有效,使用网络打印机时则无效。
7. 检查计算机的BIOS设置中打印机端口是否打开。BIOS中打印机使用端口应设置为“Enable”,有些打印机不支持ECP类型的打印端口信号,应将打印端口设置为“Normal、 ECP+EPP”方式。
8. 检查计算机中是否存在病毒,若有需要用杀毒软件进行杀毒。
9. 检查打印机驱动程序是否已损坏。可用右键单击打印机图标,选择“删除”,然后双击“添加打印机”,重新安装打印机驱动程序。
10. 打印机进纸盒无纸或卡纸,打印机墨粉盒、色带或碳粉盒是否有效,如无效,则不能打印。
九、打印机卡纸或不能走纸
打印机最常见的故障是卡纸。出现这种故障时,操作面板上指示灯会发亮,并向主机发出一个报警信号。出现这种故障的原因有很多,例如纸张输出路径内有杂物、输纸辊等部件转动失灵、纸盒不进纸、传感器故障等,排除这种故障的方法十分简单,只需打开机盖,取下被卡的纸即可,但要注意,必须按进纸方向取纸,绝不可反方向转动任何旋钮。
如果经常卡纸,就要检查进纸通道,清除输出路径的杂物,纸的前部边缘要刚好在金属板的上面。检查出纸辊是否磨损或弹簧松脱,压力不够,即不能将纸送入机器。出纸辊磨损,一时无法更换时,可用缠绕橡皮筋的办法进行应急处理。缠绕橡皮筋后,增大了搓纸摩擦力,能使进纸恢复正常。此外,装纸盘安装不正常,纸张质量不好(过薄、过厚、受潮),也会造成卡纸或不能取纸的故障。
十、打印出现乱字符
无论是针式打印机、喷墨打印机还是激光打印机出现打印乱码现象,大多是由于打印接口电路损坏或主控单片机损坏所致,而实际检修中发现,打印机接口电路损坏的故障较为常见,由于接口电路采用微电源供电,一旦接口带电拔插产生瞬间高压静电,就很容易击穿接口芯片,一般只要更换接口芯片,该类故障即可排除。另外,字库还没有正确载入打印机也会出现这种现象。
1.图片半透明效果
实现图片默认显示是半透明的效果,鼠标移上去时透明度变为100%。
①用CSS+JS实现
用CSS定义一类: #spotlight { FILTER: light } 并加入如下JS代码:
<SCRIPT language=JavaScript1.2>
function high(which2){
theobject=which2
highlighting=setInterval("highlightit(theobject)",50)
}
function low(which2){
clearInterval(highlighting)
which2.filters.alpha.opacity=40
} function highlightit(cur2){
if (cur2.filters.alpha.opacity<100)
cur2.filters.alpha.opacity+=5
else if (window.highlighting)
clearInterval(highlighting)
}
</SCRIPT>
调用效果语句:
<a href="http://www.thinkjam.org"><img border=0 name=Image1 onMouseOut=low(this) onMouseOver=high(this)
src="http://www.thinkjam.org/images/newjam/logo.jpg" style="FILTER: alpha(opacity=50)" width=18 height="18"></a>
②将代码和样式直接写入调用语句中
<img alt="半透明图片" src="http://www.thinkjam.org/images/newjam/logo.jpg" style="-moz-opacity:0.5; filter:alpha(opacity=50);cursor:hand;" οnmοuseοver="this.style.MozOpacity=1;
this.filters.alpha.opacity=100" οnmοuseοut="this.style.MozOpacity=0.5;
this.filters.alpha.opacity=50">
这种方法比较简单。只是在IE中需要通过"filter"来定义透明度"opacity",而在Mozilla中是可以直接解析"opacity",所以如果要使得这个效果在两种浏览器中都得到支持,需要把两种设定都加进去。
针对IE的设定:this.filters.alpha.opacity=50 针对Mozilla的设定:this.style.MozOpacity=0.5
2.图片背景产生阴影效果
可以直接截取阴影部分的条状渐变的图片作为背景,也可以为图片加上filter属性。样例代码如下:
<img src="http://www.thinkjam.org/images/newjam/logo.jpg style="filter : progid:DXImageTransform.Microsoft.Shadow ( enabled=t , color=#ff0000 , direction=135 , strength=10 )"
级别: 中级
Sukriti Goel (sukriti_goel@infosys.com), 技术架构师, Infosys Technologies Limited
Parameswaran Seshan (parameswaran_seshan@infosys.com), 技术架构师, Infosys Technologies Limited
2006 年 8 月 28 日
本系列讨论 Web 服务集成模式,包含两个部分,本文为第 2 部分,将讨论如何将要求-响应和通知 Web 服务客户端端点模式与应用程序集成。在要求-响应和通知模式中,应用程序充当 Web 服务,将部署到 Web 服务器上,允许外部参与者将应用程序作为 Web 服务调用。本文中的步骤采用 Document 样式的 Web 服务调用。 引言
在第 1 部分中,我们讨论了如何将请求-响应和单向模式应用于 Web 服务端点。在这第 2 部分中,您将了解到如何将其他两种模式(要求-响应和通知)应用于 Web 服务客户端(调用端)端点。让我们考虑这样一个应用程序集成场景示例:假定有一个应用程序,比如旅行预订应用程序 ("App1"),该应用程序包括各种组件。作为我们讨论的参照点,该应用程序接受来自客户的输入,例如旅行的出发地、目的地和信用卡信息。然后,该应用程序通过与其他应用程序(如信用验证系统 ("App2"))集成进行订票。此外,需要一个付款应用程序 ("App3")。App2 公开一个 Web 服务来验证信用卡,而 App3 通过从信用卡中扣除相应金额来处理付款。App1 公开两个 Web 服务;一个 Web 服务从 App3 接收消息(用于处理付款的确认请求)作为输入,接着发送确认(“继续”)消息,另一个 Web 服务从 App3 接收“付款已完成通知”消息。
在要求-响应模式中,端点是一个客户端,它将消息发送到预期返回响应的服务端点,并接收从该服务端点返回的相关消息。在我们的示例中,当 App3 准备好处理付款请求并且 App1 返回确认(“继续付款”)消息时,App3 调用 App1 公开的“付款请求确认”Web 服务。对于此处讨论的应用程序 App3,这是要求-响应操作。
级别: 中级
Sukriti Goel (sukriti_goel@infosys.com), 技术架构师, Infosys Technologies Limited
Parameswaran Seshan (parameswaran_seshan@infosys.com), 技术架构师, Infosys Technologies Limited
2006 年 8 月 28 日
本系列讨论 Web 服务集成模式,包含两个部分,本文为第 2 部分,将讨论如何将要求-响应和通知 Web 服务客户端端点模式与应用程序集成。在要求-响应和通知模式中,应用程序充当 Web 服务,将部署到 Web 服务器上,允许外部参与者将应用程序作为 Web 服务调用。本文中的步骤采用 Document 样式的 Web 服务调用。 引言
在第 1 部分中,我们讨论了如何将请求-响应和单向模式应用于 Web 服务端点。在这第 2 部分中,您将了解到如何将其他两种模式(要求-响应和通知)应用于 Web 服务客户端(调用端)端点。让我们考虑这样一个应用程序集成场景示例:假定有一个应用程序,比如旅行预订应用程序 ("App1"),该应用程序包括各种组件。作为我们讨论的参照点,该应用程序接受来自客户的输入,例如旅行的出发地、目的地和信用卡信息。然后,该应用程序通过与其他应用程序(如信用验证系统 ("App2"))集成进行订票。此外,需要一个付款应用程序 ("App3")。App2 公开一个 Web 服务来验证信用卡,而 App3 通过从信用卡中扣除相应金额来处理付款。App1 公开两个 Web 服务;一个 Web 服务从 App3 接收消息(用于处理付款的确认请求)作为输入,接着发送确认(“继续”)消息,另一个 Web 服务从 App3 接收“付款已完成通知”消息。
在要求-响应模式中,端点是一个客户端,它将消息发送到预期返回响应的服务端点,并接收从该服务端点返回的相关消息。在我们的示例中,当 App3 准备好处理付款请求并且 App1 返回确认(“继续付款”)消息时,App3 调用 App1 公开的“付款请求确认”Web 服务。对于此处讨论的应用程序 App3,这是要求-响应操作。
常用正则表达式 " ^/d+$ " // 非负整数(正整数 + 0) " ^[0-9]*[1-9][0-9]*$ " // 正整数 " ^((-/d+)|(0+))$ " // 非正整数(负整数 + 0) " ^-[0-9]*[1-9][0-9]*$ " // 负整数 " ^-?/d+$ " // 整数 " ^/d+(/./d+)?$ " // 非负浮点数(正浮点数 + 0) " ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$ " // 正浮点数 " ^((-/d+(/./d+)?)|(0+(/.0+)?))$ " // 非正浮点数(负浮点数 + 0) " ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$ " // 负浮点数 " ^(-?/d+)(/./d+)?$ " // 浮点数 " ^[A-Za-z]+$ " // 由26个英文字母组成的字符串 " ^[A-Z]+$ " // 由26个英文字母的大写组成的字符串 "
7月初,安装AIX发现一个很奇怪的问题,不管是用何种FTP方式连AIX SERVER,都会将所有文件、文件夹前面加上时间,如上图,而实际这些文件、文件夹的名称是不带时间的。于是到CHINAUNIX上发帖求助(地址)。同时自己也继续安装并研究原因。结果发现如果AIX5L在安装开始就选择简体中文EUC而不是默认的en-US,那么中文就会替代英文替代的非常彻底,连登录窗口都是中文的了,也不会出现上面的图示情况;而如果是按照IBM的一篇帮助文档(地址),进行安装完再改语言环境的步骤,中文就不会替代的那么彻底,而且上图FTP文件名显示问题也会发生。我按照安装完再改语言环境的步骤在两台机器上装了两次AIX,都是出现了那个问题。
后来有网友告诉我把/etc/evironment里的LANG改成en_US,重启机器就OK。我按此法修改完文件重启机器,确实能解决FTP文件名显示错误的问题,和安装AIX开始就选择简体中文EUC所不同的仅仅是登录界面不是中文,而是英文的。
显示错误:
XDMCP Connection failed.Try again?
解决方法:
AIX上无须进行任何配置,但是必须有XDMCP协议。服务程序在监听XDMCP端口。CDE的XDMCP服务器为 dtlogin,X Window本身的XDMCP服务器为xdm,当然GNU也有一些其它的服务器。如果AIX上安了CDE,则只要启动CDE即可。如果没有安装CDE,需要启动xdm。 以下命令可以确认XDMCP服务器已经启动: netstat -an|grep 177 检查输出,确认状态为LISTEN。如果一切正常,就可以使用Xmanager通过登录了。 安装完Xmanager后,在Xbrowser中New一个XDMCP,选择XDM query,在Host输入框输入主机名或IP 地址,选Apply,然后Done,启动Xmanager就会显示图形登录介面了。
或许你正需要面试软件测试工程师,或许你准备去应聘软件测试工程师,以下是一些可能注意的问题。(选译)
有什么原因让你参与到测试和质量管理中来?
什么是测试生命周期,解释一下它的各个阶段? 测试和质量保证有什么不同? 什么是Negative测试? 在之前做测试的过程总遇到过哪些问题?你是如何解决的? 你是如何给你的测试和质量保证团队力量的? 你是如何定义质量管理的? 你最喜欢测试和质量管理什么地方? 你最不喜欢什么地方? 什么是瀑布式开发方法,你是否认同所有的步骤? 什么是V-模式开发方法,你是否认同这个模型? 什么是CMM?你工作过的公司的级别是怎么样的? 什么才算好的测试人员? 更多问题,可以查看以下内容:
Could you tell me two things you did in your previous assignment (QA/Testing related hopefully) that you are proud of? List 5 words that best describe your strengths. What are two of your weaknesses? What methodologies have you used to develop test cases? In an application currently in production, one module of code is being modified.
解决思路:VB中传入参数,并调用Notes数据库中的代理来实现。
1 VB中运行代理
例如:要创建一份文档表单名称Student,四个域Name、Sex、Age、Memo,
域值分别zhangsan、M、26、hello,则
strUrl="http://127.0.0.1/domcfg.nsf/WriteRecord?OpenAgent"
strPara="&DB=oa/system.nsf"
strPost="&Field=Form,Name,Sex,Age,Memo&Value=Student,zhangsan,M,26,hello"
strRet=DoPost(strUrl,strPara,strPost)
Msgbox "运行结果:" & strRet
Function DoPost(strUrl As String, Optional strPara As String, Optional strPost As String) As String
Dim xmlHttp As Object
Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
Call xmlHttp.Open("POST", strUrl + strPara, False)
Call xmlHttp.Send(strPost)
DoPost = xmlHttp.responseXML.documentElement.Text
End Function
2 创建文档WriteRecord代理:
Sub Initialize
On Error Goto Alert
Dim ss As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
这次开发过程中要给其他的系统提供数据,因为以前在开发接口的过程中有两个接口使用到了Web Service,但主要是我们调用别的系统提供的接口,而没有我们写Web Service给别的系统调用。不过也好,在上次开发的经验中知道了一点关于如何调用Web Service的一些经验。
Web Service是什么? 在没有接触到Web Service的时候,曾经觉得Web Service是那么的高不可攀,觉得能写出Web Service是非常难的。因为每次见到Web Service的时候,总会想到远程调用,然后还会想到SOAP。上次开发调用其他系统的Web Service接口的时候,还专门借了一本SOAP的书,但是没有看几页就把书就还回去了(实在太复杂,没有继续往下看)。在网上看到可以使用Axis简化Web Service的开发,也从网上找到了一些调用Web Service的例子。
那么到底Web Service是什么呢?我不能很明确的说出来,这里就我这几天写的几个可以调用的Web Service来说一下自己感受,用Axis来开发Web Service的时候,没有必要把Web Service放在心上,因为在开发的过程中根本没有必要考虑这些Web Service,而且在实现类中也没有与Axis相关的内容。也就是说Web Service就是把一个普通的类,通过一个配置文件,发布在Axis框架上,就可以在外面用Axis提供的接口来获取返回结果。当然Axis能处理的数据类型也许有一些限制,Axis对于用户自定义类型也是可以支持的,只是需要单独的配置而已,对于自定义类型,我也没有实现过,Axis的user guider上有一些说明。
下面就说说开发Web Service的准备工作和开发的代码片断以及如何测试,并且说了一点自己在开发这个Web Service时的一些收获。
注意:因为发布Web服务是发布到某一个web应用中,为了方便下面的例子中都是针对http://localhost/bjah的。 开发Web Service前的预备工作 1. 配置web.xml文件 配置Web应用使用Axis,需要在web.xml中进行相应的配置,配置信息如下:
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet>
<servlet-name>AdminServlet</servlet-name>
<display-name>Axis Admin Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AdminServlet
</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet>
<servlet-name>SOAPMonitorService</servlet-name>
<display-name>SOAPMonitorService</display-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>
在web.xml文件中添加了上面的配置信息以后,web应用就可以支持Web Service了。
2. 在WEB-INF/lib中添加axis需要的包 这jar文件包括:
Summary: The Vice President of Sun Microsystems Steve Borcich, got a surprising news that Kingdee flagship middleware Apusic J2EE application server had just achieved compatibility with the specification of Java EE 5.0 when talking with general manager Mr. John. Cai from Kingdee Middleware which is the only one middleware manufacturer in the five important Chinese partners designated by Sun over the phone on April 5. On March 22, Kingdee Middleware, a leading infrastructure software manufacturer in China, announced that the flagship product Apusic application server had achieved compatibility with the specification of Java EE 5.
1:在头文件是声明变量,然后在使用的文件中用exten标识。
".h":
int ntemp;
".cpp":
exten int ntemp;
2:定义一个全局变量类,使用时包含头文件即可:
"GlobalVar.h"
Class CGlobalVar
{
CGlobalVr();
~CGlobal();
static int ntemp; //用static };
"GlobalVar.cpp"
int CGlobalVar::ntemp = 0;//定义并初始化
CGlobalVar::CGlobalVar()
{
}
CGlobalVar::~CGlobalVar()
{
}
3:全局函数可以用上面2的做法外还可以:
在".h"里声明
int GetDataTime(CString strDataTime, CString strSep);
在".cpp"里实现
int GetDataTime(CString strDataTime, CString strSep)
{
....
}
使用时只是将".h"文件包含进去即可。
作者:林刚 文章来源:http://blogs.sun.com/lirincy 最近在网上看到一篇关于华容道的J2ME的开发实例,花了一天时间,在NetBeans上实现了,并且进行了改进和增强,现将经验共享出来,部分代码属原作者所有,在附录中。
1. 必须先安装 NetBeans IDE 4.0 和 NetBeans Mobility Pack 4.0,然后才能开始进行 J2ME MIDP 开发。有关下载和安装完整环境的说明,请参见 J2ME MIDP 开发下载页面http://www.netbeans.org/kb/articles/mobility_zh_CN.html。 2. 创建 MIDP 应用程序 创建新的 J2ME MIDP 项目 2. 创建新的移动应用程序:
(1).选择“文件”>“新建项目”(Ctrl-Shift-N)。在“类别”下选择“移动”。在“项目”下选择“移动应用程序”,然后单击“ 下一步”。 (2). 在“项目名称”下输入 HuaRongDao。将项目主目录更改为您系统上的任何目录。从现在起,我们将该目录称为 $PROJECTHOME。 (3). 不要选中“创建 HelloMIDlet”复选框。单击“下一步”。 选CLDC1.0 MIDP1.0, (4). 将 J2ME Wireless Toolkit 作为选定的目标平台。 (5). 单击“完成”。IDE 将创建 $PROJECTHOME./HuaRongDao 项目文件夹。该项目文件夹包含所有的源和项目元数据,如项目 Ant 脚本。此时将在“项目”窗口中打开 HuaRongDao 项目。 (6). 现在,我们来添加一个MIDlet, 右键单击项目,选新建MIDlet,名字为HuaRongDao,不要写package.点确定生成, 然后在生成后的 代码里加入CommandListener支持,代码框架如下:
/* * HuaRongDaoMidlet.java * * Created on 2005年7月1日, 下午8:18 */
%u53BB%u9EA6%u5F53%u52B3%u3001%u80AF%u5FB7%u57FA%u5403%u996D%u4E00%u5B9A%u8981%u8BB0%u5F97%u8981%u53D1%u7968%u3002
%u9EA6%u5F53%u52B3%u3001%u80AF%u5FB7%u57FA%u6BCF%u5E74%u5728%u4E2D%u56FD%u56E0%u4E3A%u6211%u4EEC%u90FD%u4E0D%u4E60%u60EF%u8981%u53D1%u7968%u7684%u539F%u56E0%u800C%u63A0%u8D70%u5C06%u8FD120%u4EBF%u5143%u7684%u7A0E%u6536%u3002%u3000%u3000 %u4E00%u4E2A%u6708%u524D%u6211%u5728%u9EA6%u5F53%u52B3%u7684%u7ECF%u5386%u3002%u5E97%u91CC%u4EBA%u4E0D%u5C11%uFF0C%u6211%u4ED8%u4E86%u6B3E%u7D22%u8981%u53D1%u7968%uFF0C%u503C%u73ED%u7ECF%u7406%u62FF%u51FA%u4E00%u4E2A%u672C%u5B50%u8981%u6211%u7B7E%u540D%uFF0C%u8BF4%u662F%u7531%u4E8E%u73B0%u5728%u4F7F%u7528%u522E%u5956%u53D1%u7968%uFF0C%u6240%u4EE5%u5E97%u91CC%u89C4%u5B9A%u8981%u53D1%u7968%u7684%u5BA2%u4EBA%u5FC5%u987B%u7B7E%u540D%uFF0C%u9632%u6B62%u5E97%u5458%u81EA%u5DF1%u5077%u53D1%u7968%u522E%u5956%u3002%u6211%u62D2%u7EDD%uFF0C%u6CA1%u6709%u4EC0%u4E48%u89C4%u5B9A%u8BF4%u8981%u53D1%u7968%u8FD8%u8981%u7B7E%u540D%u3002 %u5C40%u9762%u6709%u70B9%u50F5%u6301%u3002%u6392%u5728%u6211%u8EAB%u540E%u7684%u4EBA%u5F00%u59CB%u50AC%u4FC3%uFF0C%u4E00%u4E2A%u773C%u955C%u561F%u56D4%uFF1A%u60F3%u4E2D%u5956%u4E5F%u522B%u6D6A%u8D39%u6211%u4EEC%u65F6%u95F4%u554A...%u6211%u65E0%u5948%uFF0C%u62FF%u8D77%u7B14%uFF0C%u5E84%u4E25%u7684%u7B7E%u4E0B%u4E09%u4E2A%u5B57%uFF1A%u672C%u62C9%u767B%uFF01 %uFF08@_@ %uFF09 %u3000%u3000%u4ECE%u4E0D%u77E5%u6240%u63AA%u7684%u7ECF%u7406%u624B%u4E2D%u62FF%u8FC7%u53D1%u7968%uFF0C%u6495%u788E%u6254%u8FDB%u9910%u76D8%uFF0C%u6211%u8BF4%uFF1A%u6211%u53EA%u662F%u4E0D%u60F3%u8BA9%u7F8E%u56FD%u4EBA%u5077%u4E2D%u56FD%u7684%u7A0E%u3002%u540E%u6765%u6211%u53D1%u73B0%u6392%u6211%u8EAB%u540E%u7684%u51E0%u4E4E%u90FD%u8981%u4E86%u53D1%u7968%uFF0C%u5305%u62EC%u90A3%u4E2A%u773C%u955C%u6211%u4EEC%u5927%u591A%u6570%u4EBA%u6CA1%u6709%u8981%u53D1%u7968%u7684%u4E60%u60EF%u3002%u4E5F%u8BB8%u5728%u9910%u5385%uFF0C%u5750%u7740%u53EB%u670D%u52A1%u5458%u9001%u53D1%u7968%u6765%u6211%u4EEC%u8FD8%u4E0D%u5ACC %u9EBB%u70E6%u3002%u4F46%u5728%u9EA6%u5F53%u52B3%u3001kfc%u3001%u6C83%u5C14%u9A6C%u3001%u5BB6%u4E50%u798F%u7B49%u7B49%uFF0C%u6211%u4EEC%u5C31%u4E0D%u613F%u53BB%u8D39%u529F%u592B%u8981%u7968%u4E86%u3002 %u5728%u5F53%u4ECA%u5168%u7403%u5316%u7684%u5E02%u573A%u4E2D%uFF0C%u6211%u4EEC%u65E0%u6CD5%u62B5%u5236%u67D0%u4E9B%u4E1C%u897F%u3002%u4F46%u5982%u679C%u6211%u4EEC%u7231%u56FD%uFF0C%u5374%u53EF%u4EE5%u4ECE%u8EAB %u8FB9%u7684%u5C0F%u4E8B%u505A%u8D77%uFF0C%u82B1%u8D39%u60A8%u51E0%u5206%u949F%u800C%u5DF2%u3002 %u663E%u793A%u9996%u9875
转载于:https://blog.51cto.com/10092/201
没有下划线链接
这一种链接是用到了CCS技术,即使你不明白CCS,你只要把下面代码加入到网页源代码<head></head>中就可以实现没有下划线的链接。 <style type="text/css"> a {text-decoration: none} </style> 去掉链接下划线技巧 <head>与</head>之间,下划线就无影无踪啦! 注意,网页的<body>标签里不能再有link之类的属性,否则本效果会失效! <style TYPE="text/css"> <!-- A:link{text-decoration:none} A:visited{text-decoration:none} A:hover {color: #ff00ff;text-decoration:underline} --> </style> 自定多姿多彩的网页链接下划线CSS本身没有直接提供变换HTML链接下划线的功能,但只要运用一些技巧,我们还是可以让单调的网页链接下划线变得丰富多彩。 一、基本原理 首先,自定义HTML链接下划线的第一步是创建一个图形,在水平方向重复放置这个图形即形成下划线效果。如果要显示出下划线背后的网页背景,可以使用透明的.gif图形。
其次,如果下划线图形的高度较大,则必须适当增加文本的高度,使得一行文本的底部与下一行文本的顶部之间有较大的空间,例如p { line-height: 1.5; }。
自定义链接下划线示例 第三,为显示出自定义的下划线,必须隐藏默认的下划线,即a { text-decoration: none; }。
第四,为链接元素设置下划线图形,构造出自定义的下划线。假设下划线图形是underline.gif,则设置下划线图形的CSS代码为a { background-image: url(underline.gif); }。
第五,我们要让下划线图形在水平方向反复出现,但不能在垂直方向重复出现,否则它将被隐藏到文本的背后。要求下划线只在水平方向重复出现的代码为:a { background-repeat: repeat-x; }。
第六,为保证图形出现在链接文字的下方(不管字体的大小),用background-position属性将图形放在链接元素的底部。对于箭头之类的下划线图形,可能还要考虑图形在水平方向的对齐方向。假设要将下划线图形放在右下角,CSS代码为:a { background-position: 100% 100%; }。
第七,为了在链接文本的下方给自定义图形留出空间,必须加入适当的空白。下划线图形相对于链接文字的具体位置与文字的大小有关,但一般而言,可以先让底部空白等于下划线图形的高度,必要时再作调整。例如:a { padding-bottom: 4px; }。
第八,由于下划线图形放在链接元素的底部,必须保证链接不折行(如允许链接跨越多个行,则只有下面一行的链接文本下面会有自定义的下划线)。用CSS的white-space属性可以防止链接文字折行,即a { white-space: nowrap; }。
综上所述,为链接元素定义CSS样式属性的完整例子如:
a {
text-decoration: none; background: url(underline.gif) repeat-x 100% 100%;
某公司创业之初,为了选拔真正有效能的人才,要求每位应聘者必须经过一道测试:以比赛的方式推销100把奇妙聪明梳,并且把它们卖给一个特别指定的人群:和尚。 几乎所有的人都表示怀疑:把梳子卖给和尚?这怎么可能呢?搞错没有?许多人都打了退堂鼓,但还是有甲、乙、丙三个人勇敢地接受了挑战......一个星期的期限到了,三人回公司汇报各自销售实践成果,甲先生仅仅只卖出一把,乙先生卖出10把,丙先生居然卖出了1000把。同样的条件,为什么结果会有这么大的差异呢?公司请他们谈谈各自的销售经过。 甲先生说,他跑了三座寺院,受到了无数次和尚的臭骂和追打,但仍然不屈不挠,终于感动了一个小和尚,买了一把梳子。 乙先生去了一座名山古寺,由于山高风大,把前来进香的善男信女的头发都吹乱了。乙先生找到住持,说:“蓬头垢面对佛是不敬的,应在每座香案前放把木梳,供善男信女梳头。”住持认为有理。那庙共有10座香案,于是买下10把梳子。 丙先生来到一座颇富盛名、香火极旺的深山宝刹,对方丈说:“凡来进香者,多有一颗虔诚之心,宝刹应有回赠,保佑平安吉祥,鼓励多行善事。我有一批梳子,您的书法超群,可刻上‘积善梳’三字,然后作为赠品。”方丈听罢大喜,立刻买下1000把梳子。 公司认为,三个应考者代表着营销工作中三种类型的人员,各有特点。甲先生是一位执著型推销人员,有吃苦耐劳、锲而不舍、真诚感人的优点;乙先生具有善于观察事物和推理判断的能力,能够大胆设想、因势利导地实现销售;丙先生呢,他通过对目标人群的分析研究,大胆创意,有效策划,开发了一种新的市场需求。由于丙先生过人的智慧,公司决定聘请他为市场部主管。 更令人振奋的是,丙先生的“积善梳”一出,一传十,十传百,朝拜者更多,香火更旺。于是,方丈再次向丙先生订货。这样,丙先生不但一次卖出1000把梳子,而且获得长期订货。
ICS(Internet连接共享)是Windows 2000内置的一种网络连接共享服务,它可以使家庭网络或小型办公室网络用户非常容易的连接到Internet。
要使用ICS,有几点需要注意:
(1)启用ICS的计算机必须具有两个网络接口:一个连接到内部局域网,通常是网卡;一个连接到Internet,通常是Modem或ISDN接口。
(2)要配置ICS,必须具有Administrators组权限。
(3)ICS设置完成后,本地的网络将使用动态的地址分配机制,因此不应该将此功能与其他Windows 2000 Server DC、DNS服务器、网关、DHCP服务器,或配置为静态IP地址的系统一起使用。
(4)在启用ICS后,连接到家庭或小型办公室网络的适配器将获得新的IP地址配置。有两种情况,一种是系统建议的使用动态分配的方式,这时启用ICS的计算机就充当了一台DHCP服务器;另一种是手动设置的方式。 环境与要求
客户当前的网络环境如下:
计算机数量:5台,其中包括3台台式机(以下称C1、C2、C3),两台笔记本电脑(以下称N1、N2);
当前操作系统:Windows98(第一版);
局域网概况:通过一个10M的8口HUB组成一个星型对等网,彼此之间通过网络共享资料; 连接internet方式:只有C1和N1能够拨号上网,其中C1使用ISDN,N1使用Modem。 客户要求:
使用现有的设备使所有计算机都能够接入Internet;
现有的计算机上都安装了重要的程序或储存有重要的数据,因此除非万不得已不能重新安装操作系统。 连接方案:
因为C1安装有ISDN设备且配置比较高(PIII 850 CPU,128M内存),因此决定在C1上启动Internet共享功能,其它计算机通过C1接入Internet。
由于Windows98从第二版才开始支持ICS,而且不是很稳定,所以决定将C1升级为Windows2000 pro。
服务器设置
一、升级Windows98至Windows2000 pro;
启动Windows98,将Windows2000 pro插入光驱,Windows2000 pro安装程序自动启动,按系统提示进行操作,直至完成升级。 二、新建拨号连接
1、选择“开始”->“设置”->“网络和拨号连接”,单击“新建连接”,启动网络连接向导。
2、跳过欢迎屏幕,在第二页网络连接类型中选择“拨号到Internet”,下一步。
3、在跳出的Internet连接向导对话框第一页中,选择“手动设置Internet连接或通过局域网(LAN)连接”,下一步。
4、在第2步设置您的Internet连接页面,选择“通过电话线和调制解调器连接”,下一步。
5、在第3步Internet账户连接的信息第1步页面,不选择“使用区号和拨号规则”,在电话号码框内添加“163”,下一步。
6、在第3步Internet账户连接的信息第2步页面,填写上拨号上网所用的用户名和密码,下一步。
7、在第3步Internet账户连接的信息第3步页面配置您的计算机中,将连接名改为“共享163”,默认也可,下一步。
8、在第4步设置Internet mail账户页面选“否”,下一步完成连接向导。
9、测试刚建立的这个拨号连接,直至正常。 三、启动ICS
1、“开始”->“设置”->“网络和拨号连接”,右击刚才我们建立的拨号连接“共享163”,单击“属性”快捷菜单。
2、在“共享”选项卡上,选择“启用此连接的Internet连接共享”复选框。
3、在“共享”选项卡上,选中“启用请求拨号”复选框,这样,只要任何一个局域网用户需要上网访问资源而本服务器还没有建立Internet连接时,服务器都会自动进行拨号连接。
4、切换到“选项”选项卡,这时系统会提示“Internet连接共享被启用时,LAN适配器将被设置为使用IP地址192.168.0.1”。计算机可能会失去与网络上其它计算机的连接。如果这些计算机有静态IP地址,应该将它们设置成可以自动获取IP地址。确实需要启用Internet连接共享吗?”,选择“是”,ICS被启动。
5、在“选项”选项卡上,选择“断线重拨”对话框,将挂断前的空闲时间设置为“5分钟”,其它设置使用默认即可。
6、确定退出。
客户端设置
以N1为例,其它机器的设置与此类似,不再重复。
一、IP地址设置
(一)自动获得取IP地址
“控制面板”->“网络”,打开“网络”对话框。将网卡的TCP/IP属性设置为自动获得IP地址,自动获得DNS服务器地址。确定退出。
(二)人工设置IP地址
将计算机的地址设置为“192.168.0.2”,子网掩码为“255.255.255.0”,网关为“192.168.0.1”,DNS服务器地址为“192.168.0.1”,确定退出。
(三)注意如果使用自动地址分配应该全部机器都使用自动地址分配,如果部分使用部分不用可能导致地址冲突。 二、IE设置
1、单击“工具”菜单上的“Internet选项”。
2、在“连接”选项卡上,单击“不进行拨号连接”,然后单击“局域网设置”。
3、在“自动配置”中,清除“自动检测设置”和“使用自动配置脚本”复选框。
4、在“代理服务器”中,清除“使用代理服务器”复选框。 三、其它软件设置(以网络蚂蚁为例)
因为N1上本来就有拨号连接,因此网络蚂蚁会仍然使用拨号连接下载文件,移除内置Modem使用局域网共享上网时会发生不能够下载文件的问题,有两个解决的办法:
1、删除N1上的拨号连接,网络蚂蚁会自动使用当前的连接;
2、如果希望以后还使用拨号连接,那可以在网络蚂蚁的设置中设置为不使用拨号连接。 四、测试
1、ping一下服务器。
2、测试一下浏览网页情况:打开IE,输入www.aboutnt.com”,如果C1没有Internet连接,可以发现C1会自动拨号上网。
Insert the following code in your jsp. Automatically the dynamic content will be converted to excel . <%@ page contentType = "application/vnd.ms-excel" %> <% response.setContentType("application/vnd.ms-excel"); %>
1. 配置系统管理(Admin Web Application) 大多数商业化的J2EE服务器都提供一个功能强大的管理界面,且大都采用易于理解的Web应用界面。Tomcat按照自己的方式,同样提供一个成熟的管理工具,并且丝毫不逊于那些商业化的竞争对手。Tomcat的Admin Web Application最初在4.1版本时出现,当时的功能包括管理context、data source、user和group等。当然也可以管理像初始化参数,user、group、role的多种数据库管理等。在后续的版本中,这些功能将得到很大的扩展,但现有的功能已经非常实用了。 Admin Web Application被定义在自动部署文件:CATALINA_BASE/webapps/admin.xml 。 (译者注:CATALINA_BASE即tomcat安装目录下的server目录) 你必须编辑这个文件,以确定Context中的docBase参数是绝对路径。也就是说,CATALINA_BASE/webapps/admin.xml 的路径是绝对路径。作为另外一种选择,你也可以删除这个自动部署文件,而在server.xml文件中建立一个Admin Web Application的context,效果是一样的。你不能管理Admin Web Application这个应用,换而言之,除了删除CATALINA_BASE/webapps/admin.xml ,你可能什么都做不了。 如果你使用UserDatabaseRealm(默认),你将需要添加一个user以及一个role到CATALINA_BASE/conf/tomcat-users.xml 文件中。你编辑这个文件,添加一个名叫“admin”的role 到该文件中,如下: <role name="admin"/> 你同样需要有一个用户,并且这个用户的角色是“admin”。象存在的用户那样,添加一个用户(改变密码使其更加安全): <user name="admin" password="deep_dark_secret" roles="admin"/> 当你完成这些步骤后,请重新启动Tomcat,访问http://localhost:8080/admin,你将看到一个登录界面。Admin Web Application采用基于容器管理的安全机制,并采用了Jakarta Struts框架。一旦你作为“admin”角色的用户登录管理界面,你将能够使用这个管理界面配置Tomcat。 2.配置应用管理(Manager Web Application) Manager Web Application让你通过一个比Admin Web Application更为简单的用户界面,执行一些简单的Web应用任务。 Manager Web Application被被定义在一个自动部署文件中: CATALINA_BASE/webapps/manager.xml 。 你必须编辑这个文件,以确保context的docBase参数是绝对路径,也就是说CATALINA_HOME/server/webapps/manager的绝对路径。 (译者注:CATALINA_HOME即tomcat安装目录) 如果你使用的是UserDatabaseRealm,那么你需要添加一个角色和一个用户到CATALINA_BASE/conf/tomcat-users.xml文件中。接下来,编辑这个文件,添加一个名为“manager”的角色到该文件中: <role name=”manager”> 你同样需要有一个角色为“manager”的用户。像已经存在的用户那样,添加一个新用户(改变密码使其更加安全): <user name="manager" password="deep_dark_secret" roles="manager"/> 然后重新启动Tomcat,访问http://localhost/manager/list,将看到一个很朴素的文本型管理界面,或者访问http://localhost/manager/html/list,将看到一个HMTL的管理界面。不管是哪种方式都说明你的Manager Web Application现在已经启动了。 Manager application让你可以在没有系统管理特权的基础上,安装新的Web应用,以用于测试。如果我们有一个新的web应用位于/home/user/hello下在,并且想把它安装到 /hello下,为了测试这个应用,我们可以这么做,在第一个文件框中输入“/hello”(作为访问时的path),在第二个文本框中输入“file:/home/user/hello”(作为Config URL)。 Manager application还允许你停止、重新启动、移除以及重新部署一个web应用。停止一个应用使其无法被访问,当有用户尝试访问这个被停止的应用时,将看到一个503的错误??“503 - This application is not currently available”。 移除一个web应用,只是指从Tomcat的运行拷贝中删除了该应用,如果你重新启动Tomcat,被删除的应用将再次出现(也就是说,移除并不是指从硬盘上删除)。 3.部署一个web应用 有两个办法可以在系统中部署web服务。 1> 拷贝你的WAR文件或者你的web应用文件夹(包括该web的所有内容)到$CATALINA_BASE/webapps目录下。 2> 为你的web服务建立一个只包括context内容的XML片断文件,并把该文件放到$CATALINA_BASE/webapps目录下。这个web应用本身可以存储在硬盘上的任何地方。 如果你有一个WAR文件,你若想部署它,则只需要把该文件简单的拷贝到CATALINA_BASE/webapps目录下即可,文件必须以“.
Windows中有很多命令我们很少使用,在这里我就介绍一下我在Windows中的常用的几个命令的使用方法,利用这些命令可以简化或者方便我们的使用。
1. 镜像虚拟磁盘subst命令
利用subst命令可以将一个文件夹镜像成本地的一个硬盘,不如我们可以在E盘中有一个文件夹叫做DiskB,我们可以利用下面的命令创建一个B盘
映射虚拟磁盘: subst B: E:/DiskB 就这样在资源管理器中就有了一个B盘,要删除B盘可以使用下面的命令
删除虚拟磁盘: subst B: /D 直接使用subst命令可以察看虚拟磁盘,命令如下:
subst 这个命令可以简化很多操作,比如我们把一个文件放在一个路径很深的文件夹中,每次我们想要操作这些文件就必须沿着文件夹的路径一级一级地打开,这样操作很费时。如果使用虚拟硬盘就可以很方便的进入到我们需要操作的文件夹了。
2. net use 命令映射一个网络驱动器
我们在使用局域网是经常要映射很多的网络驱动器,但是这些网络驱动器不会自动删除,在每次开机时都会要我们输入密码。我觉得这很繁琐,能不能简化一下操作呢?其实是可以的,那就是使用net use命令,使用这个命令就可以自动映射一个网络驱动器。我们如果将这些命令保存在一个批处理文件中,然后让在启动文件夹中插入一个快捷方式,运行这个批处理文件,那么我们就不需要每次开机时输入密码了,不过对于windows 2000 professional中每次开机时还会提示输入密码,不过此时我们可以选择按以下Esc键,然后让我们的批处理文件来进行映射操作。对于2000 Server好像在每次开机时如果是用net use 命令映射的驱动器在第二次开机时不会自动连接。
下面介绍一下net use 命令的使用方法
假定有一台机器名为Heaven,在这台机器上有一个共享文件夹,它的共享名称为Share,而且可以使用用户名user登录,user的密码为GodLoveMe,那么将这个网络文件夹映射为本地的H:盘的命令如下:
映射网络驱动程序的命令: net use H: //Heaven/Share GodLoveMe /USER:user 要删除网络驱动器H:盘,可以使用下面的命令:
删除网络驱动器: net use H: /D 直接使用net use命令可以察看已经映射的网络驱动器,命令如下: net use 3. net share命令共享一个文件夹
使用命令net share可以共享一个文件夹,删除一个共享,察看当前有哪些共享文件夹
共享一个文件夹,比如在E:盘有一个文件夹名称为Share,我们要把它共享为一个名为ShareFolder的共享文件夹,可以使用下面的命令
net share ShareFolder=E:/Share 不过此时的共享权限是默认共享权限,如果要修改可以在资源管理器中进行修改。
删除一个共享
net share ShareFolder /D 直接使用net share命令可以察看当前有哪些共享文件夹,这样可以方便地找到当前机器上都有哪些共享文件夹,而且可以删除一些没必要的共享,命令如下:
net share 4. explorer 命令打开资源管理器