实战Struts-Menu
实战Struts-Menu一、简介Struts-Menu是一组从基于XML的配置文件中生成多种样式的菜单的JSP Tags,并且可以结合API开发通过数据库生成的动态菜单。Struts-Menu支持国际化和多种权限控制。 二、运行环境Windows 2000 ProfessionalJDK 1.4.2_03Eclipse 3.1Tomcat 5.0.28Tomcat Plugin 3.1BetaStruts 1.2.7Commons-Lang 2.1Commons-Collections 3.1Struts-Menu 2.3MySQL 4.1.10a-nt 三、下载与安装1:从http://java.sun.com下载J2SDK,当前1.4.x系列的最新版本为1.4.2_082:从http://www.eclipse.org下载Eclipse,当前最新版本为3.1正式版3:从
MYSQL的字符串函数
对于针对字符串位置的操作,第一个位置被标记为1。 ASCII(str) 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。 mysql> select ASCII('2');-> 50mysql> select ASCII(2);-> 50mysql> select ASCII('dx');-> 100也可参见ORD()函数。 ORD(str) 如果字符串str最左面字符是一个多字节字符,通过以格式((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符
jsp 做http验证
<%@ page contentType="text/html;charset=GBK"%><%String pass="Basic YWRtaW46MTIzNDU2";//这是base64加密后的,此表示为:用户:admin 密码:123456//这里有个加密工具: http://e345.com.ru/tt/tools/other/base64.php if(request.getHeader("Authorization")==null){ response.setStatus(401); response.setHeader("WWW-authenticate","Basic realm="请输入管理员密码""); } else if( !(request.getHeader("Authorization").equals(pass))){ resp
SQL SERVER数据库备份
BACKUP DATABASE [btpmedia] TO DISK = N'd:Program FilesMicrosoft SQL ServerMSSQLBACKUPtest.db' WITH NOINIT , NOUNLOAD , DIFFERENTIAL , NAME = N'btpmedia 备份', NOSKIP , STATS = 10, NOFORMAT 定时执行[@more@]
让Windows XP自动维护系统
Windows XP的日常维护是件既耗时又无聊的事情,如果Windows XP能够聪明一点,进行自动维护就好了。下面,就为大家介绍一种通过.inf文件让Windows XP进行自动维护的技巧,自动维护的具体内容可以任意设定,不过需要命令来实现。比如用Xcopy进行文件备份、Defrag进行磁盘碎片整理、Del删除垃圾文件等等。为了讲清楚原理,下面以Defrag为例,你可以根据自己的需要进行修改。 实现步骤 1. 建立Main.bat文件 以管理员身份登录Windows XP,在系统盘的根目录下新建一个名为Main.bat的文件(文件名可以随便取,下同)并输入如下内容
Windows系统中多种隐藏超级用户方法
一、如何在图形界面建立隐藏的超级用户 图形界面下适用本地或开3389终端服务的肉鸡上。上面我提到的那位作者说的方法很好,但是较为复杂,还要用到psu.exe(让程序以系统用户身份运行的程序),如果在肉鸡上的话还要上传psu.exe。我说的这个方法将不用到psu.exe这个程序。因为Windows2000有两个注册表编辑器:regedit.exe和regedt32.exe。XP中regedit.exe和regedt32.exe实为一个程序,修改键值的权限时在右键中点“权限”来修改。对regedit.exe我想大家都很熟悉,但却不能对注册表的项键设置权限,而regedt32.exe最大的优点就是能够对注册表
系统基础:regsvr32命令的用法
1. 修复IE浏览器 很多经常上网的朋友都有过这样的遭遇:IE不能打开新的窗口,用鼠标单击超链接也没有任何反应。这时重装IE一般能解决问题。其实不必这么麻烦,使用Regsvr32命令就可以轻松搞定。 具体的解决方法:依次选择“开始→运行”,在“运行”对话框中输入“regsvr32 actxprxy.dll”命令,单击“确定”按钮,这时会弹出一个信息对话框,提示“actxprxy.dll中的DllRegisterServer 成功”(如图),单击“确定”按钮,然后再在“运行”对话框中输入“regsvr32 shdocvw.dll”命令,单击“确定”按钮,重新启动计算机后IE就被修复
c#与java的区别
C#(C-Sharp)是Microsoft的新编程语言,被誉为“C/C++家族中第一种面向组件的语言”。然而,不管它自己宣称的是什么,许多人认为C#更像是Java的一种克隆,或者是Microsoft用来替代Java的产品。事实是否是这样的呢? 本文的比较结果表明,C#不止是Java的同胞那么简单。如果你是一个Java开发者,想要学习C#或者了解更多有关C#的知识,那么本文就是你必须把最初10分钟投入于其中的所在。 [@more@]一、C#、C++和Java C#的语言规范由Microsoft的Anders Hejlsberg与Scott Wiltamuth 编写。在当前Microsoft天花乱坠的宣传中,对C#和C++、Java作一
JDK6.0的新特性之一:Desktop和SystemTray类
在JDK6中 ,AWT新增加了两个类:Desktop和SystemTray,前者可以用来打开系统默认浏览器浏览指定的URL,打开系统默认邮件客户端给指定的邮箱发邮件,用默认应用程序打开或编辑文件(比如,用记事本打开以txt为后缀名的文件),用系统默认的打印机打印文档;后者可以用来在系统托盘区创建一个托盘程序.下面代码演示了Desktop和SystemTray的用法./** * * @author chinajash */public class DesktopTray { private static Desktop desktop; private static SystemTray st; private static PopupMenu pm; public static void main(String[] a
JDK6.0的新特性之二:使用JAXB2来实现对象与XML之间的映射
JAXB是Java Architecture for XML Binding的缩写,可以将一个Java对象转变成为XML格式,反之亦然。我们把对象与关系数据库之间的映射称为ORM, 其实也可以把对象与XML之间的映射称为OXM(Object XML Mapping). 原来JAXB是Java EE的一部分,在JDK6中,SUN将其放到了Java SE中,这也是SUN的一贯做法。JDK6中自带的这个JAXB版本是2.0, 比起1.0(JSR 31)来,JAXB2(JSR 222)用JDK5的新特性Annotation来标识要作绑定的类和属性等,这就极大简化了开发的工作量。实际上,在Java EE 5.0中,EJB和Web Services也通过Annotation来简化开发工作。另外,JA
JDK6.0的新特性之三:理解StAX
StAX(JSR 173)是JDK6.0中除了DOM和SAX之外的又一种处理XML文档的APIStAX的来历 在JAXP1.3(JSR 206)有两种处理XML文档的方法:DOM(Document Object Model)和SAX(Simple API for XML).由于JDK6.0中的JAXB2(JSR 222)和JAX-WS 2.0(JSR 224)都会用到StAX所以Sun决定把StAX加入到JAXP家族当中来,并将JAXP的版本升级到1.4(JAXP1.4是JAXP1.3的维护版本). JDK6里面JAXP的版本就是1.4.StAX简介StAX是The Streaming API for XML的缩写,一种利用拉模式解析(pull-parsing)XML文档的API.StAX通过提供一种基于事件迭代器(Iterator)的API让程序员去控制xm
JDK6.0的新特性之四:使用Compiler API
现在我们可以用JDK6 的Compiler API(JSR 199)去动态编译Java源文件,Compiler API结合反射功能就可以实现动态的产生Java代码并编译执行这些代码,有点动态语言的特征。这个特性对于某些需要用到动态编译的应用程序相当有用, 比如JSP Web Server,当我们手动修改JSP后,是不希望需要重启Web Server才可以看到效果的,这时候我们就可以用Compiler API来实现动态编译JSP文件,当然,现在的JSP Web Server也是支持JSP热部署的,现在的JSP Web Server通过在运行期间通过Runtime.exec或ProcessBuilder来调用javac来编译代码,这种方式需要
JDK6.0的新特性之五:轻量级Http Server
JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,它支持Http和Https协议,提供了HTTP1.1的部分实现,没有被实现的那部分可以通过扩展已有的Http Server API来实现,程序员必须自己实现HttpHandler接口,HttpServer会调用HttpHandler实现类的回调方法来处理客户端请求,在这里,我们把一个Http请求和它的响应称为一个交换,包装成HttpExchange类,HttpServer负责将HttpExchange传给HttpHandler实现类的回调方法.下面代码演示了怎样创建自己的Http Server/** * Created by IntelliJ IDEA. * User: Chinajas
JDK6.0的新特性之六:插入式注解处理API(Pluggable Annotation Processing API)
作者: 飞翼 发表日期: 2007-01-03 20:10 插入式注解处理API(JSR 269)提供一套标准API来处理Annotations(JSR 175),实际上JSR 269不仅仅用来处理Annotation,我觉得更强大的功能是它建立了Java 语言本身的一个模型,它把method, package, constructor, type, variable, enum, annotation等Java语言元素映射为Types和Elements(两者有什么区别?), 从而将Java语言的语义映射成为对象, 我们可以在javax.lang.model包下面可以看到这些类. 所以我们可以利用JSR 269提供的API来构建一个功能丰富的元编程(metaprogramming)环境. JSR 269用Annotat
从Oracle9i中发送电子邮件
Oracle的包utl_smtp提供了从数据库中直接发送电子邮件的功能,这里介绍一下其使用方法网上找到的例子以及Oracle文档中的例子都没有提到authorized的问题,我的测试中使用的是163的免费信箱,发送时老是报错:ORA-20000: Failed to send mail due to the following error: ORA-29279: SMTP 永久性错误: 553 You are not authorized to send mail as <MAIL FROM:demo@163.com>, authentication is required后来在metalink上找到解决方法:要在程序中增加登录smtp服务器的过程! 测试环境: RedHat AS 3.0 Oracle 9.2.0.6SMTP服务器:
ORACLE临时表和SQLSERVER临时表异同
SQL SERVER临时表 临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。 本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 例如,如果创建名为 employees 的表,则任何人只要在数据库中有使用该表的安
删除重复数据的一种高效的方法
表demo是重复拷贝自dba_objects,有88万左右,不重复的是27323,没有索引方法一:delete from demo a where a.rowid <> (select max(rowid) from demo b where b.object_id=a.object_id); 耗时:几个小时以上方法二: delete from demo where rowid in (select rid from (select rowid rid,row_number() over(partition by object_id order by rowid) rn from demo)
KEEP POOL和CACHE属性的区别
我们知道可以设置表的属性CACHE将表数据放入数据缓存中,也可以设置表将其放入KEEP缓冲池,这两者的区别如下:BUFFER POOL包括DEFAULT、KEEP、RECYCLE三个POOL,其大小分别对应三个参数:DB_CACHE_SIZE, DB_KEEP_CACHE_SIZE, DB_RECYCLE_CACHE_SZIE,这三个POOL相互独立,没有包含的关系。语法如下:create/alter table ...... storage(buffer_pool keep); 当表被读入的时候,放入keep pool,keep pool 中的数据会尽量长时间的保留,保留的时间长短依据keep pool的负载而定。create/alter table ...... cache; 当全表扫描时,放入default
SQL SERVER的UPDATE操作比ORACLE快得多
最近听朋友说sqlserver平台上update操作比oracle要快得多,于是做了下测试.测试机就是pc机,同时安装oracle9204和sqlserver2000,分别单独启动进行测试.对于100万行具有4个int类型的表,同时更新4个字段,sqlserver要37秒,oracle要164秒,差距很明显.经过查阅相关资料,知道sqlserver在update的时候居然是表级锁,就是说其它会话不能对该表进行update,会被阻塞,即使update的行和第一个会话update的行不一样也不行.即sqlserver是通过锁住整个表资源来达到update的高性能,牺牲了并行性,当有大量用户同时进行update时就会导致整个系统全部慢下来.而or
关于Oracle字符类型的比较
今天纠正了一个概念: 以前一直以为char类型的比较就是直接比较,和varchar2比较一样,汗...........主要是平时设计表时基本都用varchar2,很少用char关于字符值的比较, Oracle使用以下两种比较规则:1、空格补齐比较语法对于类型CHAR、NCHAR、text literals、USER函数值, 在进行比较时, 先在较短的那个字符串后补上空格以使长度相等, 然后再进行比较.所以, 'ab'='ab '2、非补齐比较语法对于类型VARCHAR2、NVARCHAR2, 则不用补齐, 直接进行比较.C:>sqlplus scott/tiger@vm_dbSQL*Plus: Release 9.2.0.1.0 - Production on 星期二 9月 26 09