见过的没见过的在线制作图标的网站太多了.在这里做个汇总.有新的还会继续添加.有好的也有差的.美与丑请自己甄别.因为每个人的审美观点不同.
站点一
http://www.nhacks.com/email/
支持多种
域名的Email图标的生成。
● 只能设置"@"之前的文本,支持的Mail类型的包括GMail、Hotmail、Yahoo、MSN、AOL、ATT、Bigfoot、 RocketMail、QQ、Comcast、Netscape、Blueyonder、SBCGlobal、Earthlink、Lycos、 Sympatico、Rogers等。
● 每种Email只能生成系统制定的样式图标。
站点二
http://sagittarius.dip.jp/~toshi/cgi-bin/designmail/designmail.html
http://sagittarius.dip.jp/~toshi/cgi-bin/catmark/catmark.html
两个地址支持两种风格任意文本的Email图标的生成。
● 支持整个Email文本,用户可以自由定制Email文本。
● 支持多种参数的设置,包括图标的风格、
颜色、字体、生成图标文件类型等支持任何文本。
站点三
http://pic.xabar.net/generator/email.asp
支持多种域名的Email图标的生成。
站点四
http://www.eoool.com/
支持多种域名的头像、签名、题图、广告、邮件、聊天、博客、书签、朋友圈、按钮等工具图标的生成。
站点五
http://phorum.com.tw/Generator.aspx
支持域名图标的生成。
站点六
http://gizmo967.mgs3.org/Gmail/
支持Gmail图标的生成。
站点七
http://www.feedforall.com/public/rss-graphic-tool.htm
支持RSS图标的生成。
站点八
http://email.playtime.uni.cc/
支持Gmail、Yahoo、Hotmail、MSN等类型的邮箱图标生成。
站点九
http://www.html-kit.com/e/favicon.cgi
支持收藏夹图标生成。
站点十
http://www.lucazappa.com/brilliantMaker/buttonImage.php
支持各种按钮类型的图标生成。
站点十一
http://www.abi-station.com/tchinese/
支持各种类型图片的生成,可以选择设置的条件非常灵活。
站点十二
http://www.myelogo.com/
支持
客户信息显示、自定义文字及图片,详情请参考本站的《介绍一个免费生成动态签名图标的站点》。
站点十三
http://www.kalsey.com/tools/buttonmaker/
支持按钮类型的图标生成。
站点十四
http://www.danasoft.com/
支持多种语言,客户信息显示(无需注册)、自定义文字(需注册登录才可以设置)。
站点十五
http://www.youmade.com/font/
支持大量中文字体签名图标生成。
站点十六
http://www.atomicfonts.com/
支持大量英文字体签名图标生成。
站点十七
http://www.myfonts.com/category/myfonts/index.html
又一个支持大量英文字体签名图标生成的站点。
站点十八
http://www.igogo8.com/
定制Google个性标志,一秒钟把Google据为己有
站点十九
http://www.streetsigngenerator.com/
街道签名生成器(不过不支持中文)
站点二十
http://googlealive.com/create.asp
可以生成google的LOGO样式图标,可以生成类似google logo的图标,你可以输入数字、字母和部分符号[/@;:+-!?] 或者空格。当然还可以生成你自己LOGO的google搜索引擎。
站点二十一
http://linux-fans.com/email/live/live.php
live个性图标在线制作
一组汇总:
favicon.ico在线生成
http://www.html-kit.com/favicon/
该站是生成小图标的网站.完全的免费.在制作之前你需要准备一张jpg或者是gif的图片,然后上传上去.就可以生成了.生成两种格式,一个是静态的,一个是动态的,应该没见过有哪个站是用动态的favicon.ico吧.里面还带有一个文本文档,说明了怎样使用favicon.ico.
按钮生成网站:
http://kalsey.com/tools/buttonmaker/ http://www.lucazappa.com/brilliantMaker/buttonImage.php http://www.feedforall.com/public/rss-graphic-tool.htm http://www.kalsey.com/tools/buttonmaker/ http://www.yugatech.com/make.php http://msdn.microsoft.com/workshop/samples/author/dhtml/DXTidemo/DXTi... http://www.hkwebs.net/catalog/tools/buttonmaker/index.php
Email图标生成网站:
http://email.playtime.uni.cc/ http://services.nexodyne.com/email/ http://gizmo967.mgs3.org/Gmail/ http://www.hkwebs.net/catalog/tools/gmail/ http://sagittarius.dip.jp/~toshi/cgi-bin/designmail/designmail.html http://www.eoool.com/
Logo生成网站:
http://phorum.com.tw/Generator.aspx http://www.logoyes.com/lc_leftframe.htm http://cooltext.com/Default.aspx
Banner图片制作网站:
http://www.bannerbreak.com/index.php
在线图片生成网站:
http://www.streetsigngenerator.com/ http://www.letterjames.de/
图片分割器:
http://www.html-kit.com/e/is.cgi
立体图片生成器:
http://www.chami.com/html-kit/services/imge/
图片生成邮票:
http://photo.stamps.com/PhotoStamps/?source=si00001331
个性拼图:
http://www.jigcool.com/jigonline/jigonline1_sc.php
印章制作:
http://caishu.sina.com.cn/
又一组在线生成工具资源大全
1.
韩国身份证的生成以及验证
http://www.udeng.com/images/hanguo.htm
3.GIF图片的文字LOGO在线生成
http://www.3dtextmaker.com/cgi-bin/3dtext.pl
4.在线制作logo,bannar的网站
www.crazystudy.com
5.3D文字图片GIF在线制作
works.com/image_editor.html
SAINT.Assess the Security of Computer Networks
http://www.saintcorporation.com/saint/
saint在linux著名的扫描
软件下面那个是
下载地址
SATAN.Port Scanner with a Web Interface
http://www.ibiblio.org/pub/packages...atan-for-Linux/
Abacus.Intrusion Prevention System
http://www.psionic.com/abacus/
Firewall Generator(在线生成
简单的防火墙脚本)
http://www.citadec.com/FirewallGenerator.html
8.身份证
号码在线生成器
http://i972.net/~gen/
9.在线字体图片生成
http://www.youmade.com/font/
10.中外破解补丁和注册机在线求救
http://hmay.qq.topzj.com/
11.在线生成条码打印
http://www.027hc.com/y1.asphttp://www.nlscan.com/soucecentre/demo.asphttp://www.gzbonny.com/asp/barcode.asp
12.在线图形特效生成
http://www.chami.com/
13.聊天工具在线状态生成器
http://www.onlinestatus.org/forum/usage.php
posted @
2007-08-07 18:52 jadmin 阅读(59) |
评论 (0) |
编辑 收藏
1.(double) (Math.round(sd3*10000)/10000.0);
这样为保持4位
(double) (Math.round(sd3*100)/100.0);
这样为保持2位.
2.另一种办法
import java.text.DecimalFormat;
DecimalFormat df2 = new DecimalFormat("###.00");
DecimalFormat df2 = new DecimalFormat("###.000");
System.out.println(df2.format(doube_var));
第一个为2位,第二个为3位.
posted @
2007-08-06 04:49 jadmin 阅读(121) |
评论 (0) |
编辑 收藏
由于现在家用电脑所使用的操作系统多数为Win XP 和Win2000 pro(建议还在使用98的朋友换换系统,连微软都放弃了的系统你还用它干嘛?)所以后面我将主要讲一下基于这两个操作系统的安全防范。
个人电脑常见的被入侵方式:
谈到个人上网时的安全,还是先把大家可能会遇到的问题归个类吧。我们遇到的入侵方式大概包括了以下几种:
(1) 被他人盗取密码;
(2) 系统被木马攻击;
(3) 浏览网页时被恶意的java scrpit程序攻击;
(4) QQ被攻击或泄漏信息;
(5) 病毒感染;
(6) 系统存在漏洞使他人攻击自己。
(7) 黑客的恶意攻击。
下面我们就来看看通过什么样的手段来更有效的防范攻击。
1.察看本地共享资源
运行CMD输入net share,如果看到有异常的共享,那么应该关闭。但是有时你关闭共享下次开机的时候又出现了,那么你应该考虑一下,你的机器是否已经被黑客所控制了,或者中了病毒。
2.删除共享(每次输入一个)
net share admin$ /delete
net share c$ /delete
net share d$ /delete(如果有e,f,……可以继续删除)
3.删除ipc
在运行内输入regedit,在注册表中找到 HKEY-LOCAL_MACHINESYSTEMCurrentControSetControlLSA 项里数值名称RestrictAnonymous的数值数据由0改为1。
4.关闭自己的139端口,ipc和RPC漏洞存在于此。
关闭139端口的方法是在“网络和拨号连接”中“本地连接”中选取“Internet协议(TCP/IP)”属性,进入“高级TCP/IP设置”“WinS设置”里面有一项“禁用TCP/IP的NETBIOS”,打勾就关闭了139端口。
5.防止rpc漏洞
打开管理工具——服务——找到RPC(Remote Procedure Call (RPC) Locator)服务——将故障恢复中的第一次失败,第二次失败,后续失败,都设置为不操作。
XP SP2和2000 pro sp4,均不存在该漏洞。
6.445端口的关闭
修改注册表,添加一个键值
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesNetBTParameters在右面的窗口建立一个SMBDeviceEnabled 为REG_DWORD类型键值为 0这样就ok了
7.3389的关闭
XP:我的电脑上点右键选属性--> 远程,将里面的远程协助和远程桌面两个选项框里的勾去掉。
Win2000server 开始--> 程序--> 管理工具--> 服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务。(该方法在XP同样适用)
使用2000 pro的朋友注意,网络上有很多文章说在Win2000pro 开始--> 设置--> 控制面板--> 管理工具--> 服务里找到Terminal Services服务项,选中属性选项将启动类型改成手动,并停止该服务,可以关闭3389,其实在2000pro 中根本不存在Terminal Services。
posted @
2007-08-06 04:07 jadmin 阅读(69) |
评论 (0) |
编辑 收藏
“上善若水” 这四个字,出自于老子的《道德经》第八章:“上善若水。水善利万物而不争,处众人之所恶,故几于道。居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。夫唯不争,故无尤。”
它的字面含义是:最高的善像水那样。水善于帮助万物而不与万物相争。它停留在众人所不喜欢的地方,所以接近于道。上善的人居住要像水那样安于卑下,存心要像水那样深沉,交友要像水那样相亲,言语要像水那样真诚,为政要像水那样有条有理,办事要像水那样无所不能,行为要想水那样待机而动。正因为他像水那样与万物无争,所以才没有烦恼。说到这其中所涵盖的思想意义,那就需要多做些解释了。
老子说:“上善若水,水善利万物而不争,此乃谦下之德也;故江海所以能为百谷王者,以其善下之,则能为百谷王。天下莫柔弱于水,而攻坚强者莫之能胜,此乃柔德;故柔之胜刚,弱之胜强坚。因其无有,故能入于无之间,由此可知不言之教、无为之益也。”
他认为上善的人,就应该象水一样。水造福万物,滋养万物,却不与万物争高下,这才是最为谦虚的美德。江海之所以能够成为一切河流的归宿,是因为他善于处在下游的位置上,所以成为百谷王。
世界上最柔的东西莫过于水,然而它却能穿透最为坚硬的东西,没有什么能超过它,例如滴水穿石,这就是“柔德”所在。所以说弱能胜强,柔可克刚。
不见其形的东西,可以进入到没有缝隙的东西中去,由此我们知道了“不言”的教导,“无为”的好处。
老子还说:“以其不争,故天下莫能与之争,此乃效法水德也。水几于道;道无所不在,水无所不利,避高趋下,未尝有所逆,善处地也;空处湛静,深不可测。善为渊也;损而不竭,施不求报,善为仁也……
“道”是产生天地万物的总根源,是先于具体事物而存在的东西,也是事物的基本规律及其本源。所以“道”是我们每个人都应该认知与理解的。水的德行就是最接近于“道”的,“道”无处不在,因此,水无所不利。它避高趋下,因此不会受到任何阻碍。它可以流淌到任何地方,滋养万物,洗涤污淖。它处于深潭之中,表面清澈而平静,但却深不可测。它源源不断的流淌,去造福于万物却不求回报。这样的德行, 乃至仁至善……
posted @
2007-08-05 07:58 jadmin 阅读(56) |
评论 (0) |
编辑 收藏
在配置jsp开发环境的过程中会碰到不少问题,感谢网上的许多前辈的经验总结,作者cl41的JSP连接Mysql数据库攻略和作者Saulzy的MySQL学习笔记等文章对我来说简直是雪中送碳,为了帮助象我一样的初学者在此总结了不少作者的经验,非常感谢他们的无私奉献精神,也希望更多的人把这种精神发扬光大,呵呵,再次对所参考文章的作者表示最崇高的敬意!
以下软件下载连接地址无法显示的话,请直接到官方网站下载即可!
软件下载
Mysql
下载版本:mysql-4.1.13-win32.zip(Windows downloads)
http://dev.mysql.com/downloads/mysql/4.1.html
JDBC驱动
下载版本:mysql-connector-java-3.1.10.zip
http://dev.mysql.com/downloads/connector/j/3.1.html
下载j2sdk (JAVA 2 PLATFORM STANDARD EDITION DEVELOPMENT KIT 5.0)
下载版本:jdk-1_5_0_04-windows-i586-p.exe
http://java.sun.com/j2se/1.5.0/download.jsp
下载tomcat
下载版本: jakarta-tomcat-5.5.9.exe
http://jakarta.apache.org/site/downloads/downloads_tomcat-5.cgi
安装,配置j2sdk:
执行j2sdk安装程序,按默认设置进行安装,也可自定义路径,但需修改下面的配置
配置j2sdk:
配置环境变量:
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:
JAVA_HOME=C:\Program Files\Java\jdk1.5.0_04
CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
path=%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
写一个简单的java程序来测试J2SDK是否已安装成功:
public class hello
{
public static void main(String args[])
{
System.out.println("Hello");
}
}
将程序保存为文件名为hello.java的文件。
打开命令提示符窗口,进入到hello.java所在目录,键入下面的命令
javac hello.java
java hello
此时若打印出来hello则安装成功,若没有打印出这句话,仔细检查以上配置是否正确。
注意系统文件夹选项中应确定“隐藏已知文件类型的扩展名”不勾选(我的电脑?工具?查看)
安装,配置tomcat
执行tomcat安装程序,按默认设置进行安装,也可自定义路径,但需修改下面的配置
我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量
CATALINA_HOME=C:\Program Files\Apache Software Foundation\Tomcat 5.5
CATALINA_BASE=C:\Program Files\Apache Software Foundation\Tomcat 5.5
修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet-api.jar添加到classpath中去,
修改后的classpath如下:
classpath=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar;
启动tomcat,在IE中访问http://localhost:8080,若看到tomcat的欢迎页面的话说明安装成功。
安装mysql
解压缩mysql-4.1.13-win32.zip,运行setup.exe
首先出现的是安装向导欢迎界面,直接点击“Next”
继续,选择安装类型,选择“自定义”custom安装,然后点“Next”下一步,出现自定义安装界面
选择安装路径:C:\MySQL Server 4.1(可自定义)
点“OK”返回到自定义安装界面,路径已改为设置的路径
点“Next”,准备开始安装
点“Install”开始安装
完成后出现创建MySQL.com帐号的界面
如果是首次使用MySQL,选“Create anew free MySQL.com accout”
点“Next”,输入你的Email地址和自己设定的用于登录MySQL.com的密码
填完后点“Next”进入第二步
填写姓名等相关信息,填完点“Next”,进入第三步
填完电话号码、公司名称等信息后,点“Next”,
然后出现预览你刚才填的信息的界面,点“Next”出现安装完成界面
注意,这里有个配置向导的选项(Configure the MySQL Server now),
建议勾选立即配置你的MySQL。许多说安装完MySQL后无法启动,原因就在于没有配置MySQL。
点击“Finish”完成安装,并开始配置MySQL
点“Next”,进入配置类型选择页面。选“Detailed configuration”(详细配置)
点“Next”,进入服务类型选择页面。选“Developer Machine”(开发者机器),这样占用系统的资源不会很多
点“Next”后,进入数据库用法选择页面。选择“Multifunctional Database”
点“Next”,进入选择InnoDB数据存放位置页面
不用更改设置,直接放在Installation Path安装目录里即可,然后点“Next”,选择MySQL的同时联接数
选择“Manual Setting”,设置为100(根据自己需要,酌情设置)
点“Next”,配置MySQL在TCP/IP通讯环境中的端口选择默认的3306端口即可。
点“Next”,选择MySQL中的字符设置
注意,这里的选择将会影响你是否能在MySQL中使用中文。选择gb2312字符集以便支持简体中文
点“Next”,设置Windows服务选项
注意,这里的选择很关键。
“Install As Windows Service”一定要勾选,这是将MySQL作为Windows的服务运行。
“Service Name”就用默认的“MySQL”
下面的“Launch the MySQL Server automatically”一定要勾选,这样Windows启动时,MySQL就会自动启动服务,要不然就要手工启动MySQL。
许多人说安装MySQL后无法启动、无法连接、出现10061错误,原因就在这里。
点“Next”,设置根帐号root的登录密码
“Modify Security Settings”是设置根帐号的密码,输入你设定的密码即可。
“Create An Anonymous Account”是创建一个匿名帐号,这样会导致未经授权的用户非法访问你的数据库,有安全隐患,建议不要勾选。
点“Next”,MySQL配置向导将依据你上面的所有设定配置MySQL,以便MySQL的运行符合你的需要
点“Execute”开始配置,当出现“Service started successfully”时,说明你的配置完成,MySQL服务启动成功
点“Finish”完成,整个MySQL的配置完成,剩下的就是用MySQL客户端连接MySQL服务器,然后使用了。
安装JDBC驱动:
解压缩mysql-connector-java-3.1.10.zip
将要使用的是mysql-connector-java-3.1.10-bin-g.jar和mysql-connector-java-3.1.10-bin.jar
配置
在C:\Program Files\Java目录下建立mysqlforjdbc子目录,进入该目录将mysql-connector-java-3.1.10-bin.jar到该目录下
进入C:\Program Files\Java\jdk1.5.0_04\lib目录将mysql-connector-java-3.1.10-bin-g.jar拷贝到该目录下
然后配置classpath,追加%JAVA_HOME%\lib\mysql-connector-java-3.1.10-bin-g.jar;C:\Program Files\Java\mysqlforjdbc\mysql-connector-java-3.1.10-bin.jar;到该环境变量中去
追加以后环境变量如下:
CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\servlet-api.jar;%JAVA_HOME%\lib\mysql-connector-java-3.1.10-bin-g.jar;C:\Program Files\Java\mysqlforjdbc\mysql-connector-java-3.1.10-bin.jar;
配置这个的目的是让java应用程序找到连接mysql的驱动.
查看并启动MySQL服务
在Windows XP下安装完MySQL后,它就已经自动启动服务了,并且在开始菜单中有其客户端的快捷方式连接
可以通过Windows的服务管理器查看。“开始”-“运行”,输入“services.msc”,回车。
弹出Windows的服务管理器,然后就可以看见服务名为“mysql”的服务项了,其右边标明“已启动”
在开始菜单-所有程序-MySQL-MySQL Server 4.1-MySQL Command Line Client用客户端的快捷方式连接
输入安装是设置的密码即可
数据库的使用
Mysql安装完毕以后,在开始菜单-所有程序-MySQL-MySQL Server 4.1-MySQL Command Line Client用客户端的快捷方式连接
输入安装时设置的密码
使用mysql的基本命令(在mysql命令行编辑每输入完命令后最后一定要有分号)
显示数据库:show databases;
使用数据库:use 数据库名;
建库
在mysql里建一个数据库first,以及在数据库里建一个表about
命令:create database first;
为数据库设置权限(用户和密码)
命令:grant all privileges on first.* to test@localhost identified by '123456';
当你执行完这个命令以后,只要你再以用户名:test,密码:123456登录时你就只可以对first这个数据库操作,这样避开使用root
输入命令:use first;
使用first数据库;
在first库中建表
命令:create table about(id int(8) primary key,name varchar(10));
在表中加入数据:
命令:insert into about values('xyw1026','laojiang');
退出
命令:exit
JSP连接mysql
在C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps目录下建立子目录myapp
进入C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\myapp目录下
用记事本编写一个文件保存为first.jsp
代码如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<body>
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1"
//first为你的数据库名
Connection conn= DriverManager.getConnection(url);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from first";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {%>
您的第一个字段内容为:<%=rs.getString(1)%>
您的第二个字段内容为:<%=rs.getString(2)%>
<%}%>
<%out.print("数据库操作成功,恭喜你");%>
<%rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
在浏览器中输入:
http://127.0.0.1:8080/myapp/first.jsp
若出现:
id|num
0 |laojiang
数据库操作成功,恭喜你
表示配置成功
进入C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\myapp目录
在myapp目录下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
在WEB-INF下用记事本新建一个文件,命名为web.xml,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>
在myapp下用记事本新建一个测试的jsp页面,文件名为index.jsp,文件内容如下:
<html><body><center>
Now time is: <%=new java.util.Date()%>
</center></body></html>
重启Tomcat
打开浏览器,输入http://localhost:8080/myapp/index.jsp
看到当前时间的话说明成功安装。
建立自己的Servlet:
用记事本新建一个servlet程序,文件名为HelloWorld.java,文件内容如下:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("This is my first Servlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");
}
}
编译
将HelloWorld.java剪切到C:\Program Files\Apache Software Foundation\Tomcat5.5\common\classes目录下
命令行方式下输入:
cd C:\Program Files\Apache Software Foundation\Tomcat5.5\common\classes
javac HelloWorld.java
用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servlet.*
则将C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib目录下的servlet-api.jar文件拷贝并添加到
C:\Program Files\Java\jre1.5.0_04\lib\ext目录中去就可以了
然后在C:\Program Files\Apache Software Foundation\Tomcat5.5\common\classes下会产生一个编译后的servlet文件:HelloWorld.class
用记事本打开C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\ROOT\WEB-INF目录下的web.xml如下所示,添加后的内容如下:
.
.
.
<!-- JSPC servlet mappings start -->
<servlet>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<servlet-class>org.apache.jsp.index_jsp</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>
<!-- JSPC servlet mappings end -->
</web-app>
这段话中的servlet这一段声明了你要调用的Servlet,而servlet-mapping则是将声明的servlet“映射”到/servlet/HelloWorld地址上
启动Tomcat,启动浏览器,输入http://localhost:8080//servlet/HelloWorld 如果看到输出HelloWorld!就说明编写的servlet成功了。
注意:修改了web.xml以及新加了class,都要重启Tomcat
也可以在自己创建的目录下测试如:
将HelloWorld.class拷贝到C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\myapp\WEB-INF\classes目录下
其中classes目录若没有就创建一个
用记事本打开C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\myapp\WEB-INF目录下的web.xml如下所示,修改后的内容如下:
.
.
.
<!-- JSPC servlet mappings start -->
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/HelloWorld</url-pattern>
</servlet-mapping>
<!-- JSPC servlet mappings end -->
</web-app>
启动Tomcat,启动浏览器,输入http://localhost:8080/myapp/servlet/HelloWorld 如果看到输出HelloWorld!就说明编写的servlet成功了。
注意:修改了web.xml以及新加了class,都要重启Tomcat
建立自己的javaBean:
用记事本新建一个java程序,文件名为TestBean.java,文件内容如下:
package test;
public class TestBean{
private String name = null;
public TestBean(String strName_p){
this.name=strName_p;
}
public void setName(String strName_p){
this.name=strName_p;
}
public String getName(){
return this.name;
}
}
编译
将TestBean.java放在c:\test下,使用如下命令编译:
C:\test>javac TestBean.java
然后在c:\Test下会产生一个编译后的bean文件:TestBean.class
将TestBean.class文件剪切到C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\myapp\WEB-INF\classes\test目录下,
若无某些子目录则创建一个
新建一个TestBean.jsp文件,文件内容为:
<%@ page import="test.TestBean" %>
<html><body><center>
<%
TestBean testBean=new TestBean("This is a test java bean.");
%>
Java bean name is: <%=testBean.getName()%>
</center></body></html>
重启Tomcat,启动浏览器,输入http://localhost:8080/myapp/TestBean.jsp 如果看到输出Java bean name is: This is a test java bean
就说明编写的javaBean成功了。
posted @
2007-08-04 10:33 jadmin 阅读(81) |
评论 (0) |
编辑 收藏
1.到http://www.mysql.com下载MySQL数据库服务器和驱动程序Jdbc driver for MySQL
2.安装MySQL数据库,本人下载的是安装版本的,所以直接点Setup.exe就可以了,当然也可以下载.zip解压版本的,不过解压后要设置下环境变量之类的,麻烦~~
3.设置驱动程序路径,本人下载的Jdbc driver for MySQL是mysql-connector-java-5.0.7-bin.jar,将它放到<MySQL_HOME>\,然后在系统环境变量中的classpath加入mysql-connector-java-5.0.7-bin.jar的路径,如我加入的是:C:\Program Files\MySQL\MySQL Server 5.0\mysql-connector-java-5.0.7-bin.jar,OK
4.创建数据库,组合键Win+R,输入cmd后回车,进入命令行模式,键入mysql -uroot -p你设置的密码
create database mydb01;
use mydb01;
create table table1(CD int(8) primary key,NAME varchar(10));
insert into table1 values(1,'name1');
insert into table1 values(2,'name2');
insert into table1 values(3,'name3');
输入命令:select * from table1;如果见到以下内容,则说明数据库创建成功.
+------+-------+
| CD | NAME |
+------+-------+
| 1 | name1 |
| 2 | name2 |
| 3 | name3 |
+------+-------+
5.编写连接数据库的测试代码
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
public class mysqltest {
public static void main(String[] args) {
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
String url ="jdbc:mysql://localhost:3306/mydb01";
Connection conn= DriverManager.getConnection(url,"root","你设置的密码");
Statement stmt=conn.createStatement();
String sql="select * from table1";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
System.out.print(rs.getInt("CD")+"\t");
System.out.println(rs.getString("NAME"));
}
System.out.println("Done");
rs.close();
stmt.close();
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
6.再次进入命令行模式,测试一下是否连接成功
javac mysqltest.java
java mysqltest
posted @
2007-08-04 09:24 jadmin 阅读(46) |
评论 (0) |
编辑 收藏
INSERT、DELETE、UPDATE 三种SQL语句是数据库技术的三大基本语句。 在通常的web开发中对它的处理可以说是无处不在. 如果简单的都用手工来构造这些SQL语句的话, 一方面给我们的开发带来很大的工作量, 另一方面系统灵活性受到很大的限制。那么能不能基于某种规则让系统自动从页面表单中取出元素构造出SQL语句呢? 首先让我们看看一般INSERT、DELETE、UPDATE 三种语句的基本形式:
INSERT INTO table_name (col_1,col_2,col_3,) VALUES (value_1,value_2,value_3 …)
DELETE FROM table_name WHERE col_n=value_n
UPDATE table_name SET col_1=value_1,col_2=value_2,col_3=value_3 WHERE col_x=value_x
|
我们知道,借用j2ee中的request.getParameterNames()方法可以读到表单中的所有元素的名称,有了元素名称借用request.getParameter(elementName)方法可以获取该元素的值。假设在开发中我们让页面元素的名称和底层数据库表的字段名一致。那么在这三种语句中col_n 和 value_n 对我们来说就不是未知的,未知的数据就剩下了 table_name,col_x和value_x 。现在如果我们写一个方法,传入request对象,再把table_name,col_x,value_x作为参数传入方法,那么我们可以轻松的自动构造SQL语句了。
但这样做还是有欠灵活,因为一方面每一次使用该方法我们都得人工的设置table_name,col_x和value_x;另一方面别忘了sql语句中对于字符串的字段需要加单引号和替换字符串中间的单引号,而整型、浮点型、系统函数(如now(),to_date()等数据库函数)等不需要做单引号的处理,这些如果没有好的解决的话,我们的方法将受到非常大的限制。要达到再进一步分离最好的办法就是在表单元素命名上面做文章,我们可以自己定义一套元素命名规则,对不同规则命名的元素做不同的处理--设我们定义元素命名规格如下:
1. table_name,col_x,value_x这类元素,为公共元素。我们规定这类元素名以c_k开头(c=common),我们限制table_name的元素名为c_table,col_x=value_x定义到一起,元素名定为c_where. 当然我们别忘了我们还需要一个元素表示构造什么样(INSERT、DELETE、UPDATE)的SQL语句。我们给这个元素命名c_genre,它的值被限制在INSERT、DELETE、UPDATE这三者之中 。
2. 对于表单中对应数据库字符串类型的元素,在SQL构造中需要做单引号的处理。这类元素我们暂且称他们为字符串型元素。字符串型元素我们规定其名为s_+数据库表字段名 (s=String)。
3. 对于不需要做但引号处理的元素(如integer型、float型、数据库系统函数--如now(),to_date()等等)。我们暂且简单的统称这类元素为整型元素。对于整型元素我们限制其命名规则为i_+数据库表字段名(i=Integer)。
基于上面的规格我们可以非常轻松写一个javabean。代码如下:
/**
* @version: 1.1
* @Time: 2005.03.02
*/
package com.river.page ;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
public class PageUtil {
private HttpServletRequest request = null ;
public PageUtil(){}
public void init(HttpServletRequest _request){
this.request = _request ;
}
public void clear(){
if(this.request != null){
this.request = null ;
}
}
public String get(String elementName){
if(request == null || request.getParameter(elementName) == null){
return "";
}else{
return request.getParameter(elementName);
}
}
public String get(HttpServletRequest _request,String elementName){
init(_request);
return get(elementName);
}
public String getSQL(HttpServletRequest _request){
init(_request);
return getSQL();
}
public String getSQL(){
String sqlstr = "";
String c_table = get("c_table");
String c_genre = get("c_genre");
String c_where = get("c_where");
if(c_genre == null || c_genre.equals("")){
return "the action is null/empty";
}
if(c_table == null || c_table.equals("")){
return "unknow table/empty" ;
}
if(c_genre.equalsIgnoreCase("INSERT")){
java.util.Enumeration arg_names = request.getParameterNames();
String colstr = "",valstr = "";
String arg_name,pre_name,end_name ;
while(arg_names.hasMoreElements()){
arg_name = String.valueOf(arg_names.nextElement());
if(arg_name.length() < 2){
continue;
}
pre_name = arg_name.substring(0,2);
end_name = arg_name.substring(2);
if(pre_name.equalsIgnoreCase("i_")){
colstr = colstr+","+end_name;
if(get(arg_name).equals("")){
valstr = valstr+",NULL";
}else{
valstr = valstr + "," + String.valueOf(get(arg_name));
}
}else if(pre_name.equalsIgnoreCase("s_")){
colstr = colstr+","+end_name;
if(get(arg_name).equals("")){
valstr = valstr+",NULL";
}else{
valstr = valstr+",'"+get(arg_name).replaceAll("'","''")+"'";
}
}
}
if(!colstr.equals("")){
colstr = colstr.substring(1);
valstr = valstr.substring(1);
}
sqlstr = "INSERT INTO "+c_table+" ("+colstr+") VALUES ("+valstr+")";
return sqlstr;
}else if(c_genre.equalsIgnoreCase("UPDATE")){
java.util.Enumeration arg_names = request.getParameterNames();
String colstr = "";
String arg_name,pre_name,end_name ;
while(arg_names.hasMoreElements()){
arg_name = String.valueOf(arg_names.nextElement()).trim();
if(arg_name.length() < 2){
continue;
}
pre_name = arg_name.substring(0,2);
end_name = arg_name.substring(2);
if(pre_name.equalsIgnoreCase("i_")){
if(get(arg_name).equals("")){
colstr += ","+end_name+"=NULL";
}else{
colstr += ","+end_name+"="+get(arg_name);
}
}else if(pre_name.equalsIgnoreCase("s_")){
if(get(arg_name).equals("")){
colstr += ","+end_name+"="+get(arg_name);
}else{
colstr += ","+end_name+"='"+get(arg_name).replaceAll("'","''")+"'";
}
}
}
if(!colstr.equals("")){
colstr = colstr.substring(1);
}
sqlstr = "UPDATE "+c_table+" SET "+colstr;
if(!c_where.equals("")){
sqlstr += " WHERE "+c_where;
}
return sqlstr;
}else if(c_genre.equalsIgnoreCase("DELETE")){
sqlstr = "DELETE FROM "+c_table;
if(c_where != null && !c_where.equals("")){
sqlstr += " WHERE "+c_where;
}
}else{
com.river.debug.Debug.show("unknow action type : "+c_genre);
return null;
}
return sqlstr;
}
public String toString(){
return "version 1.0, date 2005.03.02, author river";
}
}
|
这样我们就可以根据页面元素的命名来指导SQL语句的生成。这样做有很多的明显的好处:
1. 减少编码工作,对于元素很多表单,用不着我们去写一大堆的代码,不用去担心哪个元素落下了,元素名有没有些错,单引号有没有处理。
2. 通用、稳定、易于维护,javabean固有的优点,就不用太多的说明了。
3. 分离表层的表单内容与逻辑层SQL语句的构造。设想一下,如果我们数据库表结构有调整时,那么我们只要修改一下表单就好了,根本就不用理原来写好的逻辑处理。附带着再说一句,设想如果我们再写一个类自动执行SQL,那么对于一些基本的增、删、改操作都可以映射到同一个action里面来处理,且不是很爽?
当然,这样做的缺点也是有的。那就是有一定的性能损耗。特别是碰到表单元素非常多时。但是对于那些不是很"苛刻"的项目这点损耗是值得的。
posted @
2007-08-03 20:59 jadmin 阅读(61) |
评论 (0) |
编辑 收藏
世间人,法无定法,然后知非法法也;
天下事,了犹未了,何妨以不了了之。
道不是道,心亦非心;花开五叶,结果自成.
posted @
2007-08-03 04:03 jadmin 阅读(59) |
评论 (0) |
编辑 收藏
posted @
2007-07-24 03:13 jadmin 阅读(45) |
评论 (0) |
编辑 收藏
=========================http://blog.csdn.net===================================
进入软件开发行业也快一年了,很幸运一进入就加入了一个敏捷开发的团队,敏捷开发的思想确实很好,拥抱变化,最快的做用户需要的功能,越早发现错误,改正错误的代价就越小。最近看到《应用Rails进行敏捷Web开发》这本书,就买了下来,虽说现在一直在从事JAVA的开发工作,对ruby和rails也不了解,不过通过学习一些新的语言,来详细了解敏捷软件开发,岂不是一举两得!要运行书中的Depot项目就要安装ruby和rails,在网上google了一些资料,很顺利的跑起来了,先谢谢网上提供资料的各位了,下面是小弟的学习笔记,记录下来与大家共享。。。。。。。。。。。。。(偶用的是windows,对linux不是很熟悉呀)
Ruby官方网站下载:http://www.ruby-lang.org/en/downloads/
Rails的网站下载:http://rubyforge.org/
1。到http://rubyforge.org/projects/instantrails/ 下载Instant Rails 1.4,解压放到D:\InstantRails里面。
2。在我的电脑->属性->高级->环境变量,新建RUBY_HOME,值为D:\InstantRails\ruby,然后在Path变量值最后追加;%RUBY_HOME%\bin ,保存即可。
3。在DOS下,输入:ruby -v,你就可以看到你所安装的ruby版本;输入:gem -v,你就可以看到你所安装的gem版本。
4。到http://rubyforge.org/projects/rails/下载Rails1.1.6,包含(rails-1.1.6.zip,rails-1.1.6.gem),放到D:\Rails里面。
5。在DOS下,切换到D:\Rails,输入:gem install rails,rails即安装成功,再输入:rails -v,你就可以看到你所安装的rails版本了。
这样整个RubyOnRails的框架就安装好了,按照《应用Rails进行敏捷Web开发》书上的Depot示例操作,很容易就在20分钟就创建一个物品列表的web应用,真实神奇呀,可见Rails的强大呀,就写了那么几行代码呀!
=========================http://www.uusam.com/=================================
1.首先安装Ruby:
One-Click Installer - Windows 1.8.5-21
下载地址:http://rubyforge.org/frs/?group_id=167&release_id=6672
2.安装完毕后现在rubygems:
rubygems - REL_0_9_0
下载地址:http://rubyforge.org/frs/?group_id=126&release_id=5803
解压出来运行 setup.rb 就ok了。
3.安装rails及相关包:
rails - REL 1.1.6
下载地址:http://rubyforge.org/frs/?group_id=307&release_id=6423,选择rails-1.1.6.gem下载。
在控制台运行 gem install rails-1.1.6.gem会提示你相关的插件包,根据提示在下面网址下载以下包,这是我需要的包的。
下载地址:http://rubyforge.vm.bytemark.co.uk/gems/
activesupport-1.3.1.gem
activerecord-1.14.4.gem
actionpack-1.12.5.gem
actionmailer-1.2.5.gem
actionwebservice-1.1.6.gem
先安装每个相关包,如:gem install activerecord-1.14.4.gem
最后运行 gem install rails-1.1.6.gem 就ok了。
对应每个版本的相关包也不一样,请查看你安装的的版本的依赖性。
最后运行rails -v ,偶的是 1.1.6 。
这就安装结束了。
让我们开始ror的旅程吧!
关于Ruby On Rails的介绍见如下链接:
http://hi.baidu.com/jadmin/blog/item/1bf8800140e5cc01738da596.html
posted @
2007-07-24 00:14 jadmin 阅读(137) |
评论 (0) |
编辑 收藏