??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品国产九九九,caoporn国产精品免费视频,精华区一区二区三区 http://www.aygfsteel.com/clin8888/记录Ҏ(gu)的地?/description>zh-cn Wed, 18 Jun 2025 15:22:41 GMT Wed, 18 Jun 2025 15:22:41 GMT 60 Android学习W记之Android包、ADB介绍 http://www.aygfsteel.com/clin8888/archive/2011/03/09/346003.htmlworld_eyes world_eyes Wed, 09 Mar 2011 02:25:00 GMT http://www.aygfsteel.com/clin8888/archive/2011/03/09/346003.html http://www.aygfsteel.com/clin8888/comments/346003.html http://www.aygfsteel.com/clin8888/archive/2011/03/09/346003.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/346003.html http://www.aygfsteel.com/clin8888/services/trackbacks/346003.html 在Android的应用程序开发中Q通常使用的是 Java 语言Q除了要熟?zhn)?/span>Java 语言的基外,q需要了?/span>Android 提供?/span>Java 扩展功能?/span>
一、重要包描述
Android.appQ提供高层的E序模型、提供基本的q行环境?/span>
Android.contentQ包含对各种的设备上的数据进行访问和发布的类?/span>
Android.databaseQ通过内容提供者浏览和操作数据库?/span>
Android.graphicsQ底层的囑Ş库,包含d、颜色过滤、点、矩形,可以它们直接绘制到屏幕上?/span>
Android.locationQ定位和服务的相关类?/span>
Android.mediaQ提供了一些管理音频视频的媒体接口的相关类?/span>
Android.net提供了关于网l访问的c,过通常?/span>java.net.* 接口?/span>
Android.osQ提供了pȝ服务Q消息传输, IPC 机制?/span>
Android.openglQ提供了 OpenGL 的工兗?/span>
Android.providerQ提供类讉K Android 的内Ҏ(gu)供者?/span>
Android.telephonyQ提供与拨打?sh)话相关?/span>API 交互
Android.viewQ提供基本的用户界面接口框架?/span>
Android.utilQ涉及工h的Ҏ(gu)Q例如时间日期型的操作?/span>
Android.webkitQ默认浏览器操作接口?/span>
Android.widgetQ包含各U?/span>U 元素Q在应用E序的屏q中使用?/span>
二、Android的相x件类型概q?/span>
Java文g --- 应用E序源文?/span>
Android的应用必M?/span>Java 来开发?/span>
Class文g ---Java ~译后的目标文g?/span>
不想J2SE,java ~译?/span>class 文gq接可以运行, Android q_上的 class 文g不能直接?/span>Android q_上运行。由?/span>google 使用了自q Dalvik 来运行应用,所以这里的 class 也肯定不能在 Android Dalvik 上运行, Android ?/span>class 文g实际上只是编译过E的中间目标文gQ需要链接成 Dex 文g才能q行?/span>Dalvik 上?/span>
Dex文g ---Android q_上的可执行文件?/span>
Dalvik执行的ƈ非是 Java 字节码,而是另一U字节码Q?/span>dex 格式的字节码Q?/span>Java 字节?/span>->dex 字节码)?/span>Dalvik 可以执行许多 VM 而不会占用太多的 Resource.
APK 文g ---Android 上的安装文g
APK?/span>Android 安装包的扩展名,一?/span>Android 安装包包含了与某个应用程序相关的所有文Ӟ APK 文g?/span>AndroidMainfest.xml 文g、应用程序代码( DEX Q文件、资源文件和其他文g打成一个压~包。一个工E只能打q一?/span>.apk 文g?/span>
三?span style="font-family: Times New Roman">Android ADB 工具的?/span>
ADB?/span>Android 提供的一个通用调试工具Q借助q个工具Q我们管理手机模拟器的状态?/span>
1.ADB功能操作
快速更新设备或手机模拟器的代码Q如应用?span style="font-family: Times New Roman">Androidpȝ升?/span>
在设备上q行shell 命o
理讑֤或手机模拟器上的预定接口
在设备或手机模拟器上复制、粘贴文?/p>
2.ADB的常用操?/span>
安装应用到模拟器
adb install app.apk
Android没有提供一个卸载应用的命oQ只能手动删除:
Adb shell
Cd data/app
Rm.app.apk
q入讑֤或模拟器?span style="font-family: Times New Roman">shell
Adb shell
通过以上命oQ可以进入设备或模拟器的shell 环境中,在这?/span>shell 中,你可以执行各U?/span>Linux 的命令,另外如果只想执行一?/span>shell 命oQ可以采用以下方式:
Adb shell[command]
如:
Adb shell emesg
会打印出内核的调试信?/p>
发布端口
可以讄L的端口号Q作Z机箱模拟器或讑֤的请求端口。如Q?/p>
Adb forward tcp Q?/span>5555 tcp Q?/span>8000
复制文g
复制一个文件或目录到设备或模拟器上Q?/p>
Adb push
如:
Adb push test.txt/tmp/test.txt
Adb pull
如:
Adb pull /Android/lib/libwebcore.os
搜烦/ {待模拟器、设备实?/span>
取得当前q行的模拟器、设备的实例列表及每个实例的状态或{待正在q行的设?/p>
Adb devices
Adb wait-for-device
查看debug 报告
Adb bugreport
记录无线通信日志
无线通信日志非常多,在运行时没必要记录,可以通过命o讄记录
Adb shell
Logcat -b radio
获取讑֤ID 和序列号
Adb get-product
Adb get-serialno
讉K数据?span style="font-family: Times New Roman">SQLite3
Adb shell
Sqlite3
]]>IIS+PHP环境下出现HTTP 500服务器内部错误——请查权限设|?/title> http://www.aygfsteel.com/clin8888/archive/2010/06/08/323033.htmlworld_eyes world_eyes Tue, 08 Jun 2010 02:19:00 GMT http://www.aygfsteel.com/clin8888/archive/2010/06/08/323033.html http://www.aygfsteel.com/clin8888/comments/323033.html http://www.aygfsteel.com/clin8888/archive/2010/06/08/323033.html#Feedback 1 http://www.aygfsteel.com/clin8888/comments/commentRss/323033.html http://www.aygfsteel.com/clin8888/services/trackbacks/323033.html 转蝲来的Q遇到这样问题的朋友应该不多Q我是配|好环境了,也装了个PHP的CMS试q了QPHPMYADMINq行也正常,但是q行另外一?
PHP|站E序出现HTTP 500服务器内部错误,q好扑ֈ了解军_法!
感谢Oliver 分nQ原?
地址Q?a >http://tech.flyingcat.cn/?p=212
在IIS +
PHP的环境下安装phpmyadmin或wordpress的时候经怼发生一个奇怪的现象Q例如:phpmyadmin安装的web文gҎ(gu)目录的话
打开昄HTTP 500服务器内部错误,但将|站攑ֈ一个子目录下就没问题?br />
q个问题的原因在于phpmyadmin和wordpress{程序的index.php文g中都用到了require(./xxx.php)q样的语
句?/p>
解决办法1
把里面的require(./xxx.php)Ҏ(gu) require(xxx.php)?/p>
解决办法2
l网站的上目录赋予iis用户L限?/p>
]]> 氓软g如何改IE主页 http://www.aygfsteel.com/clin8888/archive/2010/06/04/322789.htmlworld_eyes world_eyes Fri, 04 Jun 2010 10:04:00 GMT http://www.aygfsteel.com/clin8888/archive/2010/06/04/322789.html http://www.aygfsteel.com/clin8888/comments/322789.html http://www.aygfsteel.com/clin8888/archive/2010/06/04/322789.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/322789.html http://www.aygfsteel.com/clin8888/services/trackbacks/322789.html l常有朋友在安装某种Y件后QIE主页被篡改,而你在ie选项里改回来后,再打开又时主页又变成了另外一个网址。这说明q个氓软g在注册表里还
有别?
H,q些可能位置都有哪些呢?我们Ҏ(gu)有限l验Q先列出最重要的这几条Q期待朋友们补充更多的发现。点d始-q行Q输入regedit回RQ依ơ找到如
下位|——当ӞW者推荐用Registry Workshop软gQ可以直接粘
贴以下地址回RQƈ该地址d到收藏夹Q以后旧的不用再找,新的也可见者收藏?/p>
1、internet选项对应的注册表|
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainStart Page
q项的值和ie选项里的主页是同步的Q可以先试试?a target="_blank">convert
swf to avi
2、绑定ieȝ序运行参敎ͼ
HKEY_CLASSES_ROOTApplicationsiexplore.exeshellopencommand
q项的正常值是”C:Program FilesInternet ExplorerIEXPLORE.EXE”
%1Q流氓Y件将自己的网址附加在后面当作一个运行参敎ͼ那么打开ieȝ序时׃自动跌{到该|址Q这招够狠?/p>
3?l定ieH体控gieframe.dll主页命oQ?/strong>
HKEY_CLASSES_ROOTCLSID{871C5380-42A0-1069-A2EA-08002B30309D}shellOpenHomePageCommand
q项的默认值是”C:Program FilesInternet
Exploreriexplore.exe”Q同P氓|址可能附加在后面,拦截主页?/p>
4、绑定ie快捷方式q行目标Q?/strong>
q有一U在注册表里无论如何也搜索不刎ͼ却远在天边近在眼前的手段Q就是修改了ie
快捷方式属性里的运行目标。注意是快捷方式Q不是桌面默认显C的ie图标。正常的ie快捷方式有四U?/p>
可以看出上面三个ie快捷方式依次是由桌面ie图标创徏、由开始菜单顶端ie图标创徏、由pȝ盘ieȝ序创建的Q当然如果你隐藏了扩展名Q第三个
快捷 方式没?exe后缀Q,flv
player W四U是在开始按钮右边快速启动栏上的“启动Internet Explorer”图标。右键查看这些快h式属?/p>
W者快速启动栏已删除启动ie的图标,搁笔q思,q求而来Q故上面H口略显异域。这两个 快捷方式Q目标默认值都?#8221;C:Program
FilesInternet
Exploreriexplore.exe”Q这下病毒又有空可钻了,只要把自q|址q加到后面,那么你经q个图标打开ieӞ׃立即跛_它的|?
址Q真是无所不用其极?/p>
所以笔者徏议,如果主页被篡改ƈ改不回来了,请先右键?
启动ie时所打开的快h式,看属?#8220;目标”后面有无q加|址Q有则删之;不行的话去注册表里查看那些可能位置Q?/p>
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMainStart Page
HKEY_CLASSES_ROOTApplicationsiexplore.exeshellopencommand
HKEY_CLASSES_ROOTCLSID{871C5380-42A0-1069-A2EA-08002B30309D}shellOpenHomePageCommand
看值的后面有没?#8220;ַ”Q这些网址有时可能是ؕ码,全部剪掉Q?a target="_blank">swf to mov?
复默认|主页改回来
了。这样只是暂时堵住,若想d杜绝Q请先卸载新安装的流氓YӞ以后也莫乱逛网站或接受推荐下蝲安装那些你以为是发现新天地其实可
能早已臭名昭著的流氓。当Ӟ如果你熟(zhn)了更多的篡改主伎俩,׃用有q些虑了。笔者再ơ推荐注册表理软gRegistry
WorkshopQ^时多U篏自己?发现Q保?#8220;与毒p”Q将病毒氓的伎俩尽收囊中。那么以后就可以高枕无忧了?/p>
]]> tomcat 二域名 ׃nsession Ҏ(gu) http://www.aygfsteel.com/clin8888/archive/2010/06/04/322775.htmlworld_eyes world_eyes Fri, 04 Jun 2010 09:17:00 GMT http://www.aygfsteel.com/clin8888/archive/2010/06/04/322775.html http://www.aygfsteel.com/clin8888/comments/322775.html http://www.aygfsteel.com/clin8888/archive/2010/06/04/322775.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/322775.html http://www.aygfsteel.com/clin8888/services/trackbacks/322775.html
Tomcat下,不同的二U域名,Session默认是不׃n的,因ؓCookie名称为JSESSIONID的Cookie根域是默认是没设|的Q访?
不同的二U域名,其Cookie重新生成,而session是Ҏ(gu)q个Cookie来生成的Q所以在不同的二U域名下生成的Session也不一栗?
扑ֈ了其原因Q就可根据这个原因对Tomcat在生成Session时进行相应的修改(注:本文针对Tomcat 6.0)?
单个web目q行在tomcat上但是却使用多个子域名,如:
- site.com
- www.site.com
- sub1.site.com
- sub2.site.com
- etc.
q样会导致session的不能共享,在网l上查找的ƈ却最快的解决办法?/p>
解决办法Q?/p>
Usage:
- compile CrossSubdomainSessionValve & put it in a
.jar file
- put that .jar file in $CATALINA_HOME/lib directory
- include a <Valve
className="org.three3s.valves.CrossSubdomainSessionValve"/>
in
$CATALINA_HOME/conf/server.xml
package org.three3s.valves;
import java.io. * ;
import javax.servlet. * ;
import javax.servlet.http. * ;
import org.apache.catalina. * ;
import org.apache.catalina.connector. * ;
import org.apache.catalina.valves. * ;
import org.apache.tomcat.util.buf. * ;
import org.apache.tomcat.util.http. * ;
/**
* <p>
* Replaces the domain of the session cookie generated by Tomcat with a domain
* that allows that session cookie to be shared across subdomains. This valve
* digs down into the response headers and replaces the Set-Cookie header for
* the session cookie, instead of futilely trying to modify an existing Cookie
* object like the example at http://www.esus.be/blog/?p=3. That approach does
* not work (at least as of Tomcat 6.0.14) because the
* <code>org.apache.catalina.connector.Response.addCookieInternal</code> method
* renders the cookie into the Set-Cookie response header immediately, making
* any subsequent modifying calls on the Cookie object ultimately pointless.
* </p>
*
* <p>
* This results in a single, cross-subdomain session cookie on the client that
* allows the session to be shared across all subdomains. However, see the
* { @link getCookieDomain(Request)} method for limits on the subdomains.
* </p>
*
* <p>
* Note though, that this approach will fail if the response has already been
* committed. Thus, this valve forces Tomcat to generate the session cookie and
* then replaces it before invoking the next valve in the chain. Hopefully this
* is early enough in the valve-processing chain that the response will not have
* already been committed. You are advised to define this valve as early as
* possible in server.xml to ensure that the response has not already been
* committed when this valve is invoked.
* </p>
*
* <p>
* We recommend that you define this valve in server.xml immediately after the
* Catalina Engine as follows:
*
* <pre>
* <Engine name="Catalina" >
* <Valve
* className="org.three3s.valves.CrossSubdomainSessionValve"/>
* </pre>
*
* </p>
*/
public class CrossSubdomainSessionValve extends ValveBase {
public CrossSubdomainSessionValve() {
super ();
info = " org.three3s.valves.CrossSubdomainSessionValve/1.0 " ;
}
@Override
public void invoke(Request request, Response response) throws IOException, ServletException {
// this will cause Request.doGetSession to create the session cookie if
// necessary
request.getSession( true );
// replace any Tomcat-generated session cookies with our own
Cookie[] cookies = response.getCookies();
if (cookies != null ) {
for ( int i = 0 ; i < cookies.length; i ++ ) {
Cookie cookie = cookies[i];
// System.out.println("CrossSubdomainSessionValve: Cookie name is "
// + cookie.getName());
if (Globals.SESSION_COOKIE_NAME.equals(cookie.getName())) replaceCookie(request, response, cookie);
}
}
// process the next valve
getNext().invoke(request, response);
}
/**
* Replaces the value of the response header used to set the specified
* cookie to a value with the cookie's domain set to the value returned by
* <code>getCookieDomain(request)</code>
*
* @param request
* @param response
* @param cookie
* cookie to be replaced.
*/
protected void replaceCookie(Request request, Response response, Cookie cookie) {
// copy the existing session cookie, but use a different domain
Cookie newCookie = new Cookie(cookie.getName(), cookie.getValue());
// System.out.println("CrossSubdomainSessionValve: CookiePath is " +
// cookie.getPath());
if (cookie.getPath() != null ) newCookie.setPath(cookie.getPath());
String domain = getCookieDomain(request);
if ( ! " .piaoyoo.com " .equals(domain)) domain = request.getServerName();
// System.out.println("CrossSubdomainSessionValve: CookieDomain is " +
// domain);
newCookie.setDomain(domain);
newCookie.setMaxAge(cookie.getMaxAge());
newCookie.setVersion(cookie.getVersion());
// System.out.println("CrossSubdomainSessionValve: CookieComment is " +
// cookie.getComment());
if (cookie.getComment() != null ) newCookie.setComment(cookie.getComment());
newCookie.setSecure(cookie.getSecure());
// if the response has already been committed, our replacement strategy
// will have no effect
if (response.isCommitted()) System.out.println( " Error CrossSubdomainSessionValve: response was already committed! " );
// find the Set-Cookie header for the existing cookie and replace its
// value with new cookie
MimeHeaders headers = response.getCoyoteResponse().getMimeHeaders();
for ( int i = 0 , size = headers.size(); i < size; i ++ ) {
if (headers.getName(i).equals( " Set-Cookie " )) {
MessageBytes value = headers.getValue(i);
if (value.indexOf(cookie.getName()) >= 0 ) {
StringBuffer buffer = new StringBuffer();
ServerCookie.appendCookieValue(buffer, newCookie.getVersion(), newCookie.getName(), newCookie.getValue(),
newCookie.getPath(), newCookie.getDomain(), newCookie.getComment(), newCookie.getMaxAge(), newCookie
.getSecure());
// System.out.println("CrossSubdomainSessionValve: old Set-Cookie value: "
// + value.toString());
// System.out.println("CrossSubdomainSessionValve: new Set-Cookie value: "
// + buffer);
// System.out.println("-----------------------------");
value.setString(buffer.toString());
}
}
}
}
/**
* Returns the last two parts of the specified request's server name
* preceded by a dot. Using this as the session cookie's domain allows the
* session to be shared across subdomains. Note that this implies the
* session can only be used with domains consisting of two or three parts,
* according to the domain-matching rules specified in RFC 2109 and RFC
* 2965.
*
* <p>
* Examples:
* </p>
* <ul>
* <li>foo.com => .foo.com</li>
* <li>www.foo.com => .foo.com</li>
* <li>bar.foo.com => .foo.com</li>
* <li>abc.bar.foo.com => .foo.com - this means cookie won't work on
* abc.bar.foo.com!</li>
* </ul>
*
* @param request
* provides the server name used to create cookie domain.
* @return the last two parts of the specified request's server name
* preceded by a dot.
*/
protected String getCookieDomain(Request request) {
String cookieDomain = request.getServerName();
String[] parts = cookieDomain.split( " \\. " );
if (parts.length >= 2 ) cookieDomain = parts[parts.length - 2 ] + " . " + parts[parts.length - 1 ];
return " . " + cookieDomain;
}
public String toString() {
return ( " CrossSubdomainSessionValve[container= " + container.getName() + ' ] ' );
}
}
]]> [转]IIS 被挂马,解决一?/title> http://www.aygfsteel.com/clin8888/archive/2010/06/04/322758.htmlworld_eyes world_eyes Fri, 04 Jun 2010 08:04:00 GMT http://www.aygfsteel.com/clin8888/archive/2010/06/04/322758.html http://www.aygfsteel.com/clin8888/comments/322758.html http://www.aygfsteel.com/clin8888/archive/2010/06/04/322758.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/322758.html http://www.aygfsteel.com/clin8888/services/trackbacks/322758.html
一台服务器几乎所有网站打开|页 甚至HTML|页 都出C
<i*f*r*a*m*e src="http://xxx.xx.htm" height=0
width=0></<i*f*r*a*m*e>
q种样式的代?有的在头部 有的在尾?部分杀毒Y件打开会报?
打开HTML或ASP PHP面 在源码中怎么也找不到q段代码
分析原因
首先怀疑ARP挂马Q用ԌQԌ的工具又没有发现有arpƺ骗
而且arpƺ骗一般不会每ơ都被插入代码,而是时有时无
而且使用http://127.0.0.1
或?a href="http://localhost/" target="_blank">http://localhost
讉K的时候也可以扑ֈq段代码
arpƺ骗的可能排除?br />
然后想到可能是JS被篡改,或者是其它的包含文Ӟ查找后没有发现被改的面
q新建的HTML面览的时候也会被插入q段代码Q那只能是通过QテQx上去的了?br />
备䆾iis数据然后重装iisQ代码消失,备份的iis恢复Q问题又来了?br />
仔细LQ问题应该出在IIS的配|文件上Q打开配置文gQ没有发现那D代码?br />
那很有可能是调用了某个文Ӟq个怎么查啊Q忽然想起了大名鼎鼎的Filemon
本地载了一个上传到服务器上Q,打开FilemonQ数据太多了Q过滤掉一些没有用?br />
只留下iis的进E,数据q是很多Q看来服务器上的站点q是挺多人在讉K的?br />
x所有站?Z一个测试站点anky 目录为D:\www\ 在下面徏了一个空白页面test.htm
讉K一下这个页面代码被插进来了Q再看一下Filemon 奇怪怎么dC:\Inetpub\wwwroot\iisstart.htm
打开C:\Inetpub\wwwroot\iisstart.htm一看,里面ph着
<<i*f*r*a*m*e src="http://xx.xxx.jj.htm" height=0
width=0></<i*f*r*a*m*e>
把代码删除了留空Q访问test.htm 正常了,把C:\Inetpub\wwwroot\iisstart.htm删除了再讉K
test.htm 出现 “d数据脚文g出错”问题出q里了,看来是调用了
q个文g?br />
把C:\Inetpub\wwwroot\iisstart.htm清空正怺Q这h么行,解决问题当然要连Ҏ(gu)掉?br />
continue
有没有可能是扩展造成的,到扩展中查了一遍全部都是正常的
当然 通过ISAPI 挂马的也是存在的
左想x最后还是觉得配|文件有问题
打开配置文gQ配|文件在%windir%\system32\inetsrv\Metabase.xml
用记事本打开Q查找iisstart.htm 扑ֈ一行,开始以为是默认站点Q后来一想不对啊
默认站点都删除了Q再仔细一看这句代码ؓ
DefaultDocFooter="FILE:C:\Inetpub\wwwroot\iisstart.htm"
删除掉这一行,问题d解决了?br />
==========================================================================
现象Q不是讉K服务器上的Q何网,p404的页面也会在<html>后加?
<<i*f*r*a*m*e SRc=http://xxx.xxx.com/k.htm width=1 height=1
frameborder=0></<i*f*r*a*m*e>,挂马的位|在html标记左右,上面q段恶意代码Q它会每隔几U?
加入代码Q也是说在输出具体的东西之前就被挂了,有时有有时又没有Q不是网|代码问题Q也没有在网|代码中加入恶意代码,即重装服务器,格式化重
分区q第一个硬盘,放上ȝ站没多久一样再会出现这U情c?
首先排除了|站被入늚可能,因ؓ首页能加在那个位|只能是title的地?用js控制也不大可?然后ȝ了php.ini的设|也没有M的异
?而且q个插入的代码有的时候出现有的时候不出现,说明不是|站的问题了.打开同服务器的其他网站也有这个情况发?而且状况一一?查ƈ且搜索挂?
的关键字之后定不是|站E序的问?
那么剩下的要么是IIS自己Z问题,要么是网l的问题,因ؓ数据是处理没有问?q个q序输?而且即是html都会出问?,l过一个一个排?
最后基本可以确定就是arpƺ骗ƺ骗数据报走?然后中间Z改一些定义的关键?因ؓ是网l层ơ有问题(所以重做系l是没有用的).
目的Q通过arpƺ骗来直接挂?
优点:可以直接通过arpƺ骗来挂?
通常的arpƺ骗的攻L式是在同一vlan?控制一C机来监听密码,或者结合ssh中间人攻L监听ssh1的密?
但这样存在局限?
1.理员经怸登陆,那么要很久才能监听到密码
2.目标L只开放了80端口,和一个管理端??0上只有静态页?那么很难利用.而管理端?如果?389l端,或者是ssh2,那么非常隄?
到密?
优点:
1.可以不用获得目标L的权限就可以直接在上面挂?
2.非常隐蔽,不改动Q何目标主机的面或者是配置,在网l传输的q程中间直接插入挂马的语?
3.可以最大化的利用arpƺ骗,从而只要获取一台同一vlan下主机的控制?可以最大化战果.
原理Qarp中间人攻击,实际上相当于做了一ơ代理?
正常时? A---->B ,A是访问的正常客户,B是要d的服务器,C是被我们控制的主?
arp中间人攻L? A---->C---->B
B---->C---->A
实际?C在这里做了一ơ代理的作用
那么HTTPh发过来的时?C判断下是哪个客户端发q来的包,转发lB,然后Bq回HTTP响应的时?在HTTP响应包中,插入一D|马的代码,?
?lt;qz?q?gt;...之类,再将修改q的包返回的正常的客户A,pvC一个挂马的作用.在这个过E中,B是没有Q何感觉的,直接d
的是正常的客户A,如果A是管理员或者是目标单位,q接挂上马?
什么是ARPQ?
英文原义QAddress Resolution Protocol
中文释义Q(RFC-826Q地址解析协议 局域网中,|络中实际传输的?#8220;?#8221;Q里面是有目标L的MAC地址的。所?#8220;地址解析”是L?br />
发送前将目标IP地址转换成目标MAC地址的过E。ARP协议的基本功能就是通过目标讑֤的IP地址Q查询目标设备的MAC地址以保证通信的顺利进
行?nbsp;
注解Q简单地_ARP协议主要负责局域网中的32为IP地址转换为对应的48位物理地址Q即|卡的MAC地址Q比如IP地址?92.168.0.1
|卡MAC地址?0-03-0F-FD-1D-2B。整个{换过E是一C机先向目标主机发送包含IP地址信息的广播数据包Q即ARPhQ然后目标主
机向该主机发送一个含有IP地址和MAC地址数据包,通过MAC地址两个L可以实现数据传输了?nbsp;
应用Q在安装了以太网|络适配器的计算Z都有专门的ARP~存Q包含一个或多个表,用于保存I(y)P地址以及l过解析的MAC地址。在Windows中要?
看或者修改ARP~存中的信息Q可以用arp命o来完成,比如在Windows XP的命令提C符H口中键?#8220;arp -a”?#8220;arp
-g”可以查看ARP~存中的内容Q键?#8220;arp -d
IPaddress”表示删除指定的IP地址(IPaddress表示IP地址Q。arp命o的其他用法可以键?#8220;arp /?”查看到?br />
============================================================================
解决Ҏ(gu)如下Q?br />
联系机房Q用拨网U的排除法,扑և同\由内中了cM47555病毒的机器,隔离。杀毒?br />
其他机器Q遇到这U情况,重装pȝ是没用的?
Asion? ARP和挂?有很q学问
来源Q?a >http://i.mop.com/Noisa/blog/2008/03/13/6264338.html
]]> (?Javascript的IE和Firefox兼容性汇~?/title> http://www.aygfsteel.com/clin8888/archive/2009/04/11/265037.htmlworld_eyes world_eyes Sat, 11 Apr 2009 10:25:00 GMT http://www.aygfsteel.com/clin8888/archive/2009/04/11/265037.html http://www.aygfsteel.com/clin8888/comments/265037.html http://www.aygfsteel.com/clin8888/archive/2009/04/11/265037.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/265037.html http://www.aygfsteel.com/clin8888/services/trackbacks/265037.html 微Y关于IE、Firefox、Opera和Safari的JavaScript兼容性研I曾l发表过一份草?可以点击下蝲?/span>JScript Deviations from ES3 ?/span> 以下为网上的一些搜集和整理(FF代表Firefox)
集合cd象问?/span>
现有代码中存在许?document.form.item("itemName") q样的语句,不能?FF 下运?br />
解决Ҏ(gu)Q?br />
改用 document.form.elements["elementName"]
说明:IE?可以使用()或[]获取集合cd?Firefox?只能使用[]获取集合cd?
解决Ҏ(gu):l一使用[]获取集合cd?
window.event
现有问题Q?br />
使用 window.event 无法?FF 上运?br />
解决Ҏ(gu)Q?br />
FF ?event 只能在事件发生的现场使用Q此问题暂无法解冟뀂可以这样变通:
原代?可在IE中运?Q?br />
<input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit()"/>
<script language="javascript">
function gotoSubmit() {
alert(window.event); // use window.event
}
</script>
C?可在IE和FF中运?Q?br />
<input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit(event)"/>
<script language="javascript">
function gotoSubmit(e) {
e = e? e : (window.event ? window.event : null);
alert(e);
}
</script>
此外Q如果新代码中第一行不改,与老代码一L(fng)话(?gotoSubmit 调用没有l参敎ͼQ则仍然只能在IE中运行,但不会出错。所以,q种Ҏ(gu) tpl 部分仍与老代码兼宏V?/p>
HTML 对象?id 作ؓ对象名的问题
现有问题Q?br />
?IE 中,HTML 对象?ID 可以作ؓ document 的下属对象变量名直接使用。在 FF 中不能?br />
解决Ҏ(gu)Q?br />
?getElementById("idName") 代替 idName 作ؓ对象变量使用?/p>
用idName字符串取得对象的问题
现有问题Q?br />
在IE中,利用 eval(idName) 可以取得 id ?idName ?HTML 对象Q在FF 中不能?br />
解决Ҏ(gu)Q?br />
?getElementById(idName) 代替 eval(idName)?/p>
变量名与?HTML 对象 id 相同的问?/span>
现有问题Q?br />
?FF 中,因ؓ对象 id 不作?HTML 对象的名Uͼ所以可以用与 HTML 对象 id 相同的变量名QIE 中不能?br />
解决Ҏ(gu)Q?br />
在声明变量时Q一律加?var Q以避免歧义Q这样在 IE 中亦可正常运行?br />
此外Q最好不要取?HTML 对象 id 相同的变量名Q以减少错误?/p>
event.x ?event.y 问题
现有问题Q?br />
在IE 中,event 对象?x, y 属性,FF中没有?br />
解决Ҏ(gu)Q?br />
在FF中,与event.x {效的是 event.pageX。但event.pageX IE中没有?br />
故采?event.clientX 代替 event.x。在IE 中也有这个变量?br />
event.clientX ?event.pageX 有微妙的差别Q当整个面有滚动条的时候)Q不q大多数时候是{效的?br />
如果要完全一P可以E麻烦些Q?br />
mX = event.x ? event.x : event.pageX;
然后?mX 代替 event.x
其它Q?br />
event.layerX ?IE ?FF 中都有,具体意义有无差别未试验?/p>
关于frame
现有问题Q?br />
?IE?可以用window.testFrame取得该frameQFF中不?br />
解决Ҏ(gu)Q?br />
在frame的用方面FF和ie的最主要的区别是Q?br />
如果在frame标签中书写了以下属性:
<frame src="/xx.htm" id="frameId" name="frameName" />
那么ie可以通过id或者name讉Kq个frame对应的window对象
而FF只可以通过name来访问这个frame对应的window对象
例如如果上述frame标签写在最上层的window里面的htm里面Q那么可以这栯?br />
IEQ?window.top.frameId或者window.top.frameName来访问这个window对象
FFQ?只能q样window.top.frameName来访问这个window对象
另外Q在FF和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签
q且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内?br />
也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内?/p>
父结点的问题
在FF中没?parentElement parentElement.children 而用 parentNode parentNode.childNodes
childNodes的下标的含义在IE和FF中不同,FF使用DOM规范QchildNodes中会插入I白文本节点?br />
一般可以通过node.getElementsByTagName()来回避这个问题。当html中节点缺失时QIE和FF对parentNode的解释不同,例如
<form>
<table>
<input/>
</table>
</form>
FF中input.parentNode的gؓform, 而IE中input.parentNode的gؓI?br />
FF中节Ҏ(gu)有removeNodeҎ(gu)Q必M用如下方?node.parentNode.removeChild(node)
const 问题
现有问题Q?br />
?IE 中不能?const 关键字。如 const constVar = 32; 在IE中这是语法错误?br />
解决Ҏ(gu)Q?br />
不?const Q以 var 代替?/p>
body 对象
FF的body在body标签没有被浏览器完全d之前存在,而IE则必dbody完全被读入之后才存在
URLencoding
在js中如果书写urlq接写&不要?amp;例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
frm.action = url那么很有可能url不会被正常显CZ至于参数没有正确的传到服务器
一般会服务器报错参数没有找?br />
当然如果是在tpl中例外,因ؓtpl中符合xml规范Q要?amp;书写?amp;
一般F(xin)F无法识别js中的&
nodeName ?tagName 问题
现有问题Q?br />
在FF中,所有节点均?nodeName |?textNode 没有 tagName 倹{在 IE 中,nodeName 的用好象有问题
解决Ҏ(gu)Q?br />
使用 tagNameQ但应检其是否为空?/p>
元素属?/span>
IE?input.type属性ؓ只读Q但是FF下可以修?br />
document.getElementsByName() ?document.all[name] 的问?br />
?IE 中,getElementsByName()、document.all[name] 均不能用来取得多个具有相同name的div 元素集合?/p>
兼容firefox?outerHTMLQFF中没有outerHtml的方?/span>
if (window.HTMLElement) {
HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML) {
var r=this.ownerDocument.createRange();
r.setStartBefore(this);
var df=r.createContextualFragment(sHTML);
this.parentNode.replaceChild(df,this);
return sHTML;
});
HTMLElement.prototype.__defineGetter__("outerHTML",function() {
var attr;
var attrs=this.attributes;
var str="<"+this.tagName.toLowerCase();
for (var i=0;i<attrs.length;i++) {
attr=attrs[i];
if(attr.specified)
str+=" "+attr.name+'="'+attr.value+'"';
}
if(!this.canHaveChildren)
return str+">";
return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
});
HTMLElement.prototype.__defineGetter__("canHaveChildren",function() {
switch(this.tagName.toLowerCase()) {
case "area":
case "base":
case "basefont":
case "col":
case "frame":
case "hr":
case "img":
case "br":
case "input":
case "isindex":
case "link":
case "meta":
case "param":
return false;
}
return true;
});
}
自定义属性问?/span>
说明:IE?可以使用获取常规属性的Ҏ(gu)来获取自定义属?也可以用getAttribute()获取自定义属?FF?只能使用getAttribute()获取自定义属?
解决Ҏ(gu):l一通过getAttribute()获取自定义属?
event.srcElement问题
说明:IE?even对象有srcElement属?但是没有target属?Firefox?even对象有target属?但是没有srcElement属?
解决Ҏ(gu):使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
window.location.href问题
说明:IE或者Firefox2.0.x?可以使用window.location或window.location.href;Firefox1.5.x?只能使用window.location.
解决Ҏ(gu):使用window.location来代替window.location.href.
模态和非模态窗口问?/span>
说明:IE?可以通过showModalDialog和showModelessDialog打开模态和非模态窗?Firefox下则不能.
解决Ҏ(gu):直接使用window.open(pageURL,name,parameters)方式打开新窗?br />
如果需要将子窗口中的参C递回父窗?可以在子H口中用window.opener来访问父H口. 例如Qvar parWin = window.opener; parWin.document.getElementById("Aqing").value = "Aqing";
事g委托Ҏ(gu)
IEQdocument.body.onload = inject; //Function inject()在这之前已被实现
FFQdocument.body.onload = inject();
如果要加传递参敎ͼ可以做个闭包
(function(arg){
document.body.onload=function(){inject(arg);};
})(arg)
innerText在IE中能正常工作Q但是innerText在FireFox中却不行.
解决Ҏ(gu):
if(navigator.appName.indexOf("Explorer") > -1){
document.getElementById('element').innerText = "my text";
} else{
document.getElementById('element').textContent = "my text";
}
FF中类?obj.style.height = imgObj.height 的语句无?/span>
解决Ҏ(gu)Q?br />
obj.style.height = imgObj.height + 'px';
IE,FF以及其它览器对?table 标签的操作都各不相同Q在ie中不允许对table和tr的innerHTML赋|使用js增加一个trӞ使用appendChileҎ(gu)也不用
解决Ҏ(gu)Q?br />
//向tableq加一个空行:
var row = otable.insertRow(-1);
var cell = document.createElement("td");
cell.innerHTML = " ";
cell.className = "XXXX";
row.appendChild(cell);
样式部分
-----------------------------------------------------------------------------------------------------------
cursor:hand VS cursor:pointer
FF不支持handQ但ie支持pointer
解决Ҏ(gu): l一使用pointer
padding 问题
padding 5px 4px 3px 1px FireFox无法解释?
必须Ҏ(gu) padding-top:5px; padding-right:4px; padding-bottom:3px; padding-left:1px;
消除ulol{列表的~进?br />
样式应写?list-style:none;margin:0px;padding:0px;
其中margin属性对IE有效Qpadding属性对FireFox有效
CSS透明
IEQfilter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)
FFQopacity:0.6
CSS圆角
IEQ不支持圆角
FFQ?-moz-border-radius:4pxQ或?moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;
CSS双线凹凸Ҏ(gu)
IEQborder:2px outset;
FFQ?-moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;
]]>
linux apache mod_rewrite ~译配置 (URL重写) http://www.aygfsteel.com/clin8888/archive/2009/04/01/263299.htmlworld_eyes world_eyes Wed, 01 Apr 2009 02:53:00 GMT http://www.aygfsteel.com/clin8888/archive/2009/04/01/263299.html http://www.aygfsteel.com/clin8888/comments/263299.html http://www.aygfsteel.com/clin8888/archive/2009/04/01/263299.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/263299.html http://www.aygfsteel.com/clin8888/services/trackbacks/263299.html 环境Qdebian4 apache2.0.63
1:apache 安装
./configure --prefix=/usr/local/apache2
make
make install
2Q基本apache操作
cd /usr/local/apache2/bin
sudo ./apachectl start
sudo ./apachectl stop
sudo ./apachectl restart
sudo ./apachectl configtest
3:~译安装mod_rewrite
cd apache下蝲源目?br />
find ./ -name mod_rewrite.c
q入 mod_rewrite.c 目录
sudo /usr/local/apache2/bin/apxs -i -a -c mod_rewrite.c
参数说明Q?/p>
-i : 执行安装操作,so 安装?modules目录
-a: 在httpd.conf中激z该模块
-c: 执行~译操作
##?* ?*/*的请求都转向?/new/index.htm , 同时览器显C的是前者的链接?br />
RewriteEngine On
RewriteRule ^/.*(/(.*))?$ /new/index.htm [L,PT]
附:RewriteRule 参数
RewriteRule Pattern Substitution [flags]
Pattern是一个作用于当前URL的perl兼容的正则表辑ּ?当前URL"是指该规则生效时ȝURL的倹{它可能与被h的URL截然不同Q因为其他规则可能在此之前已l发生匹配ƈ对它做了改动?/p>
Substitution是当原始URL与Pattern相匹配时Q用来替?或替?的字W串。除了纯文本Q还可以包含Q?br />
对Pattern的反向引?$N)
Ҏ(gu)后匹配的RewriteCond的反向引?%N)
规则条g试字符?%{VARNAME})中的服务器变?
映射函数调用(${mapname:key|default})
[flags]标记作ؓRewriteRule指o的第三个参数Q是一个包含以逗号分隔的下列标记的列表Q?/p>
'chain|C'(链接下一规则)
此标C当前规则与下一个规则相链接。它产生q样的效果:如果一个规则被匚wQ则l箋处理其后l规则,也就是这个标C起作用;如果该规则不被匹配,则其 后规则被跌。比如,在一个目录规则中执行一个外部重定向Ӟ你可能需要删?.www"(此处不应该出?.www")?
'cookie|CO=NAME:VAL:domain[:lifetime[:path]]'(讄cookie)
在客L(fng)讄一个cookie。cookie的名U是NAMEQ值是VAL。domain是该cookie的域Q比?.apache.org'Q可选的lifetime是cookie的有效期(分钟)Q可选的path是cookie的\径?
'env|E=VAR:VAL'(讄环境变量)
此标记将环境变量VAR的gؓVALQVAL可以包含可扩展的正则表达式反向引?$N?N)。此标记可以多次使用以设|多个变量。这些变量可以在其后 许多情况下被间接引用Q通常是在XSSI(<!--#echo var="VAR"-->)或CGI($ENV{'VAR'})中,也可以在后的RewriteCond指o的CondPattern参数中?q?{ENV:VAR}引用。用它可以C从URL中剥ȝ信息?
'forbidden|F'(强制止URL)
强制止当前URLQ也是立即反馈一个HTTP响应?03(被禁止的)。用这个标讎ͼ可以链接若干个RewriteConds来有条g地阻塞某些URL?
'gone|G'(强制废弃URL)
强制当前URL为已废弃Q也是立即反馈一个HTTP响应?10(已废弃的)。用这个标讎ͼ可以标明面已经被废弃而不存在了?
'handler|H=Content-handler'(强制指定内容处理?
制定目标文g的内容处理器为Content-handler。例如,用来模拟mod_alias模块的ScriptAlias指oQ以强制映射文g夹内的所有文仉?cgi-script"处理器处理?
'last|L'(l尾规则)
立即停止重写操作Qƈ不再应用其他重写规则。它对应于Perl中的last命o或C语言中的break命o。这个标记用于阻止当前已被重写的URL被后l规则再ơ重写。例如,使用它可以重写根路径的URL('/')为实际存在的URL(比如Q?/e/www/')?
'next|N'(从头再来)
重新执行重写操作(从第一个规则重新开?。此时再ơ进行处理的URL已经不是原始的URL了,而是l最后一个重写规则处理过的URL。它对应于Perl 中的next命o或C语言中的continue命o。此标记可以重新开始重写操?立即回到循环的开?。但是要心Q不要制造死循环Q?
'nocase|NC'(忽略大小?
它Pattern忽略大小写,也就是在Pattern与当前URL匚wӞ'A-Z'?a-z'没有区别?
'noescape|NE'(在输Z不对URIq行转义)
此标记阻止mod_rewrite寚w写结果应用常规的URI转义规则?一般情况下Q特D字W?'%', '$', ';'{?会被转义为等值的十六q制~码('%25', '%24', '%3B'{?。此标记可以Lq样的{义,以允许百分号{符号出现在输出中,比如Q?/p>
RewriteRule /sqnote/(.*) /bar?arg=P1\%3d$1 [R,NE]
可以?/sqnote/zed转向C个安全的h'/bar?arg=P1=zed'?
'nosubreq|NS'(不对内部子请求进行处?
在当前请求是一个内部子hӞ此标记强刉写引擎蟩q该重写规则。比如,在mod_include试图搜烦目录默认文g(index.xxx) ӞApache会在内部产生子请求。对于子hQ重写规则不一定有用,而且如果整个规则集都起作用,它甚臛_能会引发错误。所以,可以用这个标记来排除 某些规则?br />
使用原则Q如果你为URLd了CGI脚本前缀Q以强制它们由CGI脚本处理Q但对子h处理的出错率(或者资源开销)很高Q在q种情况下,可以使用q个标记?
'proxy|P'(强制Z?
此标C替换成分被内部地强制作ؓ代理h发送,q立即中断重写处理,然后把处理移交给mod_proxy模块。你必须保此替换串是一个能够被 mod_proxy处理的有效URI(比如以http://hostname开?Q否则将得到一个代理模块返回的错误。用这个标讎ͼ可以把某些远E成 分映到本地服务器域名空_从而增ZProxyPass指o的功能?
注意Q要使用q个功能Q必dl启用了mod_proxy模块?br />
'passthrough|PT'(UMl下一个处理器)
此标记强刉写引擎将内部request_recl构中的uri字段讄为filename字段的|q个小的修改得RewriteRule指o的输 够被(从URI转换到文件名?Alias, ScriptAlias, Redirect{指令进行后l处理[原文QThis flag is just a hack to enable post-processing of the output of RewriteRule directives, using Alias, ScriptAlias, Redirect, and other directives from various URI-to-filename translators.]。D一个能说明其含义的例子Q?如果要将/abc重写?defQ?然后再用mod_alias?def转换?ghiQ可以这P
RewriteRule ^/abc(.*) /def$1 [PT]
Alias /def /ghi
如果省略了PT标记Q虽然将uri=/abc/...重写为filename=/def/...的部分运作正常,但是后箋的mod_alias在试囑ְURI转换到文件名时会遭遇失效?
注意Q如果需要合用多个将URI转换到文件名的模块时Q就必须使用q个标记。。此处合用mod_alias和mod_rewrite是个典型的例子?br />
'qsappend|QSA'(q加查询字符?
此标记强刉写引擎在已有的替换字W串中追加一个查询字W串Q而不是简单的替换。如果需要通过重写规则在请求串中增加信息,可以用这个标记?
'redirect|R [=code]'(强制重定?
若Substitution以http://thishost[:thisport]/(使新的URL成ؓ一个URI)开_可以强制性执行一个外部重?向。如果没有指定codeQ则产生一个HTTP响应?02(临时性移?。如果需要用在300-400范围内的其他响应代码Q只需在此指定卛_(或 用下列符号名UC一Qtemp(默认), permanent, seeother)。用它可以把规范化的URL反馈l客L(fng)Q如?/~"重写?/u/"Q或始终?u/user加上斜杠Q等{?br />
注意Q在使用q个标记Ӟ必须保该替换字D|一个有效的URL。否则,它会指向一个无效的位置Qƈ且要CQ此标记本n只是对URL加上 http://thishost[:thisport]/前缀Q重写操作仍然会l箋q行。通常Q你q会希望停止重写操作而立即重定向Q那么就q需要?'L'标记?
'skip|S=num'(跌后规则)
此标记强刉写引擎蟩q当前匹配规则之后的num个规则。它可以模拟if-then-elsel构Q最后一个规则是then从句Q而被跌的skip=N个规则是else从句。注意:它和'chain|C'标记是不同的Q?/p>
]]>C# 日期格式?/title> http://www.aygfsteel.com/clin8888/archive/2009/01/17/251689.htmlworld_eyes world_eyes Sat, 17 Jan 2009 07:41:00 GMT http://www.aygfsteel.com/clin8888/archive/2009/01/17/251689.html http://www.aygfsteel.com/clin8888/comments/251689.html http://www.aygfsteel.com/clin8888/archive/2009/01/17/251689.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/251689.html http://www.aygfsteel.com/clin8888/services/trackbacks/251689.html 日期转化一
Z辑ֈ不同的显C效果有Ӟ我们需要对旉q行转化Q默认格式ؓQ?007-01-03 14:33:34 Q要转化为其他格式,要用到DateTime.ToString的方?String, IFormatProvider)Q如下所C:
using System;
using System.Globalization;
String format="D";
DateTime date=DataTime,Now;
Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo));
l果输出
Thursday, June 16, 2005
参数format格式详细用法Q?br />
格式字符 兌属?说明
d ShortDatePattern
D LongDatePattern
f 完整日期和时_长日期和短时_
F FullDateTimePatternQ长日期和长旉Q?
g 常规Q短日期和短旉Q?
G 常规Q短日期和长旉Q?
m、M MonthDayPattern
r、R RFC1123Pattern
s 使用当地旉?SortableDateTimePatternQ基?ISO 8601Q?
t ShortTimePattern
T LongTimePattern
u UniversalSortableDateTimePattern 用于昄通用旉的格?
U 使用通用旉的完整日期和旉Q长日期和长旉Q?
y、Y YearMonthPattern
下表列出了可被合q以构造自定义模式的模式。这些模式是区分大小写的Q例如,识别“MM”Q但不识?#8220;mm”。如果自定义模式包含I白字符或用单引hh的字W,则输出字W串也包含这些字W。未定义为格式模式的一部分或未定义为格式字W的字符按其原义复制?br />
格式模式 说明
d 月中的某一天。一位数的日期没有前导零?
dd 月中的某一天。一位数的日期有一个前导零?
ddd 周中某天的羃写名Uͼ?AbbreviatedDayNames 中定义?
dddd 周中某天的完整名Uͼ?DayNames 中定义?
M 月䆾数字。一位数的月份没有前导零?
MM 月䆾数字。一位数的月份有一个前导零?
MMM 月䆾的羃写名Uͼ?AbbreviatedMonthNames 中定义?
MMMM 月䆾的完整名Uͼ?MonthNames 中定义?
y 不包含纪元的q䆾。如果不包含U元的年份小?10Q则昄不具有前导零的年份?
yy 不包含纪元的q䆾。如果不包含U元的年份小?10Q则昄h前导零的q䆾?
yyyy 包括U元的四位数的年份?
gg 时期或纪元。如果要讄格式的日期不h兌的时期或U元字符Ԍ则忽略该模式?
h 12 时制的时。一位数的小时数没有前导零?
hh 12 时制的时。一位数的小时数有前导零?
H 24 时制的时。一位数的小时数没有前导零?
HH 24 时制的时。一位数的小时数有前导零?
m 分钟。一位数的分钟数没有前导零?
mm 分钟。一位数的分钟数有一个前导零?
s U。一位数的秒数没有前导零?
ss U。一位数的秒数有一个前导零?
f U的数_ֺZ位。其余数字被截断?
ff U的数_ֺZ位。其余数字被截断?
fff U的数_ֺZ位。其余数字被截断?
ffff U的数_ֺ为四位。其余数字被截断?
fffff U的数_ֺZ位。其余数字被截断?
ffffff U的数_ֺ为六位。其余数字被截断?
fffffff U的数_ֺZ位。其余数字被截断?
t ?AMDesignator ?PMDesignator 中定义的 AM/PM 指示的W一个字W(如果存在Q?
tt ?AMDesignator ?PMDesignator 中定义的 AM/PM 指示(如果存在Q?
z 时区偏移量(“+”?#8220;-”后面仅跟时Q。一位数的小时数没有前导零。例如,太^z标准时间是“-8”?
zz 时区偏移量(“+”?#8220;-”后面仅跟时Q。一位数的小时数有前导零。例如,太^z标准时间是“-08”?
zzz 完整时区偏移量(“+”?#8220;-”后面跟有时和分钟)。一位数的小时数和分钟数有前导零。例如,太^z标准时间是“-08:00”?
: ?TimeSeparator 中定义的默认旉分隔W?
/ ?DateSeparator 中定义的默认日期分隔W?
% c 其中 c 是格式模式(如果单独使用Q。如果格式模式与原义字符或其他格式模式合qӞ则可以省?#8220;%”字符?
\ c 其中 c 是Q意字W。照原义昄字符。若要显C反斜杠字符Q请使用“\\”?
只有上面W二个表中列出的格式模式才能用于创徏自定义模式;在第一个表中列出的标准格式字符不能用于创徏自定义模式。自定义模式的长度至ؓ两个字符Q例如,
DateTime.ToString( "d") q回 DateTime |“d”是标准短日期模式?
DateTime.ToString( "%d") q回月中的某天;“%d”是自定义模式?
DateTime.ToString( "d ") q回后面跟有一个空白字W的月中的某天;“d”是自定义模式?
比较方便的是,上面的参数可以随意组?q且不会出错,多试?肯定会找C要的旉格式
如要得到2005q?6?q样格式的时?br />
可以q样?
date.ToString("yyyyqMM?, DateTimeFormatInfo.InvariantInfo)
日期转化?/strong>
DateTime dt = DateTime.Now;
Label1.Text = dt.ToString();//2005-11-5 13:21:25
Label2.Text = dt.ToFileTime().ToString();//127756416859912816
Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816
Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25
Label5.Text = dt.ToLongDateString().ToString();//2005q?1??br />
Label6.Text = dt.ToLongTimeString().ToString();//13:21:25
Label7.Text = dt.ToOADate().ToString();//38661.5565508218
Label8.Text = dt.ToShortDateString().ToString();//2005-11-5
Label9.Text = dt.ToShortTimeString().ToString();//13:21
Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
Label1.Text = dt.Year.ToString();//2005
Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00
Label3.Text = dt.DayOfWeek.ToString();//Saturday
Label4.Text = dt.DayOfYear.ToString();//309
Label5.Text = dt.Hour.ToString();//13
Label6.Text = dt.Millisecond.ToString();//441
Label7.Text = dt.Minute.ToString();//30
Label8.Text = dt.Month.ToString();//11
Label9.Text = dt.Second.ToString();//28
Label10.Text = dt.Ticks.ToString();//632667942284412864
Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864
Label1.Text = dt.ToString();//2005-11-5 13:47:04
Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04
Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04
Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
Label8.Text = dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
Label9.Text = dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
Label10.Text = dt.CompareTo(dt).ToString();//0
Label11.Text = dt.Add(?).ToString();//问号Z个时间段
Label1.Text = dt.Equals("2005-11-6 16:11:04").ToString();//False
Label2.Text = dt.Equals(dt).ToString();//True
Label3.Text = dt.GetHashCode().ToString();//1474088234
Label4.Text = dt.GetType().ToString();//System.DateTime
Label5.Text = dt.GetTypeCode().ToString();//DateTime
Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//14:06
Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005q?1?br />
Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005q?1??br />
Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期?2005 11 05
Label7.Text = dt.GetDateTimeFormats('D')[3].ToString();//星期?2005q?1??br />
Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11??br />
Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005q?1??14:06
Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
Label1.Text = string.Format("{0:d}",dt);//2005-11-5
Label2.Text = string.Format("{0:D}",dt);//2005q?1??br />
Label3.Text = string.Format("{0:f}",dt);//2005q?1??14:23
Label4.Text = string.Format("{0:F}",dt);//2005q?1??14:23:23
Label5.Text = string.Format("{0:g}",dt);//2005-11-5 14:23
Label6.Text = string.Format("{0:G}",dt);//2005-11-5 14:23:23
Label7.Text = string.Format("{0:M}",dt);//11??br />
Label8.Text = string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
Label9.Text = string.Format("{0:s}",dt);//2005-11-05T14:23:23
Label10.Text string.Format("{0:t}",dt);//14:23
Label11.Text = string.Format("{0:T}",dt);//14:23:23
Label12.Text = string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
Label13.Text = string.Format("{0:U}",dt);//2005q?1??6:23:23
Label14.Text = string.Format("{0:Y}",dt);//2005q?1?br />
Label15.Text = string.Format("{0}",dt);//2005-11-5 14:23:23
Label16.Text = string.Format("{0:yyyyMMddHHmmssffff}",dt);
CQ比较两旉大小
1、比较时间大的实验
string st1="12:13";
string st2="14:14";
DateTime dt1=Convert.ToDateTime(st1);
DateTime dt2=Convert.ToDateTime(st2);
DateTime dt3=DateTime.Now;
if(DateTime.Compare(dt1,dt2)>0)
msg.Text=st1+">"+st2;
else
msg.Text=st1+"<"+st2;
msg.Text+="\r\n"+dt1.ToString();
if(DateTime.Compare(dt1,dt3)>0)
msg.Text+="\r\n"+st1+">"+dt3.ToString();
else
msg.Text+="\r\n"+st1+"<"+dt3.ToString();
2、计两个时间差值的函数Q返回时间差的绝对|
private string DateDiff(DateTime DateTime1,DateTime DateTime2)
{
string dateDiff=null;
try
{
TimeSpan ts1=new TimeSpan(DateTime1.Ticks);
TimeSpan ts2=new TimeSpan(DateTime2.Ticks);
TimeSpan ts=ts1.Subtract(ts2).Duration();
dateDiff=ts.Days.ToString()+"?
+ts.Hours.ToString()+"时"
+ts.Minutes.ToString()+"分钟"
+ts.Seconds.ToString()+"U?;
}
catch
{
}
return dateDiff;
}
3、实现计DateTime1Q?6天=DateTime2的功?/font>
TimeSpan ts=new TimeSpan(40,0,0,0);
DateTime dt2=DateTime.Now.Subtract(ts);
msg.Text=DateTime.Now.ToString()+"-"+ts.Days.ToString()+"天\r\n";
msg.Text+=dt2.ToString();
׃工作需要,学习了一D|间的donet。觉得跟java各有千秋
]]> Window、document、formQ属性、方法、事Ӟ收藏 http://www.aygfsteel.com/clin8888/archive/2009/01/17/251687.htmlworld_eyes world_eyes Sat, 17 Jan 2009 07:38:00 GMT http://www.aygfsteel.com/clin8888/archive/2009/01/17/251687.html http://www.aygfsteel.com/clin8888/comments/251687.html http://www.aygfsteel.com/clin8888/archive/2009/01/17/251687.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/251687.html http://www.aygfsteel.com/clin8888/services/trackbacks/251687.html Window H口对象
--q回|它打开的窗口对象?br />
----var newWindow = open('','_blank');
--属?br />
----name H口的名Uͼ由打开它的q接Q?lt;a target="...">Q或框架(<frame name="...">Q或某一个窗口调用的 open() Ҏ(gu)Q见下)军_。一般我们不会用q个属性?br />
----status 指窗口下方的“状态栏”所昄的内宏V通过?status 赋|可以改变状态栏的显C?br />
----opener 用法Qwindow.openerQ返回打开本窗口的H口对象。注意:q回的是一个窗口对象。如果窗口不是由其他H口打开的,?Netscape 中这个属性返?nullQ在 IE 中返?#8220;未定?#8221;QundefinedQ。undefined 在一定程度上{于 null。注意:undefined 不是 JavaScript 常数Q如果你企图使用“undefined”Q那q的返?#8220;未定?#8221;了?br />
----self 指窗口本w,它返回的对象?window 对象是一模一L(fng)。最常用的是“self.close()”Q放?lt;a>标记中:“<a href="javascript:self.close()">关闭H口</a>”?br />
----parent q回H口所属的框架对象?br />
----top q回占据整个览器窗口的最端的框枉对象?br />
--Ҏ(gu)
----open() 打开一个窗口。用法:open(<URL字符?gt;, <H口名称字符?gt;, <参数字符?gt;);
------参数字符?br />
--------top=# H口剙d屏幕剙的像素数
--------left=# H口左端d屏幕左端的像素数
--------width=# H口的宽?
--------height=# H口的高?
--------menubar=... H口有没有菜单,取值yes或no
--------toolbar=... H口有没有工hQ取值yes或no
--------location=... H口有没有地址栏,取值yes或no
--------directories=... H口有没有连接区Q取值yes或no
--------scrollbars=... H口有没有滚动条Q取值yes或no
--------status=... H口有没有状态栏Q取值yes或no
--------resizable=... H口l不l调整大,取值yes或no
----close() 关闭一个已打开的窗口?br />
----blur() 使焦点从H口U走Q窗口变?#8220;非活动窗?#8221;?br />
----focus() 是窗口获得焦点,变ؓ“zdH口”。不q在 Windows 98Q该Ҏ(gu)只能使窗口的标题栏和d栏上的相应按钮闪烁,提示用户该窗口正在试图获得焦炏V?br />
----scrollTo() 用法Q[<H口对象>.]scrollTo(x, y)QɽH口滚动Q文档从左上角数v?x, y)Ҏ(gu)动到H口的左上角?br />
----scrollBy() 用法Q[<H口对象>.]scrollBy(deltaX, deltaY)QɽH口向右滚动 deltaX 像素Q向下滚?deltaY 像素。如果取负|则向相反的方向滚动?br />
----resizeTo() 用法Q[<H口对象>.]resizeTo(width, height)QɽH口调整大小到宽 width 像素Q高 height 像素?br />
----resizeBy() 用法Q[<H口对象>.]resizeBy(deltaWidth, deltaHeight)QɽH口调整大小Q宽增大 deltaWidth 像素Q高增大 deltaHeight 像素。如果取负|则减?br />
----alert() 用法Qalert(<字符?gt;)Q弹Z个只包含“定”按钮的对话框Q显C?lt;字符?gt;的内容,整个文档的读取、Script 的运行都会暂停,直到用户按下“定”?br />
----confirm() 用法Qconfirm(<字符?gt;)Q弹Z个包?#8220;定”?#8220;取消”按钮的对话框Q显C?lt;字符?gt;的内容,要求用户做出选择Q整个文档的d、Script 的运行都会暂停。如果用h?#8220;定”Q则q回 true |如果按下“取消”Q则q回 false 倹{?br />
----prompt() 用法Qprompt(<字符?gt;[, <初始?gt;])Q弹Z个包?#8220;认”“取消”和一个文本框的对话框Q显C?lt;字符?gt;的内容,要求用户在文本框输入一些数据,整个文档的读取、Script 的运行都会暂停。如果用h?#8220;认”Q则q回文本框里已有的内容,如果用户按下“取消”Q则q回 null 倹{如果指?lt;初始?gt;Q则文本框里会有默认倹{?br />
--事g
----onload
----onunload
----onresize
----onblur
----onfocus
----onerror
document 文档对象 描述当前H口或指定窗口对象的文档。它包含了文档从<head>?lt;/body>的内宏V?br />
--用法Qdocument Q当前窗口) ?<H口对象>.document Q指定窗口)
--属性:
----cookie 关于 cookie 请参?#8220;使用框架?Cookies”一章?br />
----lastModified 当前文档的最后修Ҏ(gu)期,是一?Date 对象?br />
----referrer 如果当前文档是通过点击q接打开的,?referrer q回原来?URL?br />
----title ?lt;head>标记里用<title>...</title>定义的文字。在 Netscape 里本属性不接受赋倹{?br />
----fgColor ?lt;body>标记?text 属性所表示的文本颜艌Ӏ?br />
----bgColor ?lt;body>标记?bgcolor 属性所表示的背景颜艌Ӏ?br />
----linkColor ?lt;body>标记?link 属性所表示的连接颜艌Ӏ?br />
----alinkColor ?lt;body>标记?alink 属性所表示的活动连接颜艌Ӏ?br />
----vlinkColor ?lt;body>标记?vlink 属性所表示的已讉Kq接颜色?br />
--Ҏ(gu)
----open() 打开文档以便 JavaScript 能向文档的当前位|(指插?JavaScript 的位|)写入数据。通常不需要用q个Ҏ(gu)Q在需要的时?JavaScript 自动调用?br />
----write(); writeln() 向文档写入数据,所写入的会当成标准文档 HTML 来处理。writeln() ?write() 的不同点在于Qwriteln() 在写入数据以后会加一个换行。这个换行只是在 HTML 中换行,具体情况能不能够是显C出来的文字换行Q要看插?JavaScript 的位|而定。如?lt;pre>标记中插入,q个换行也会体现在文档中?br />
----clear() 清空当前文档?br />
----close() 关闭文档Q停止写入数据。如果用?write[ln]() ?clear() Ҏ(gu)Q就一定要?close() Ҏ(gu)来保证所做的更改能够昄出来?/p>
forms[]; Form 表单对象
--用法
----document.forms[] 是一个数l,包含了文档中所有的表单Q?lt;form>Q。要引用单个表单Q可以用 document.forms[x]Q但是一般来_Z都会q样做:?lt;form>标记中加?#8220;name="..."”属性,那么直接?#8220;document.<表单?gt;”可以引用了?br />
--属?br />
----name q回表单的名Uͼ也就?lt;form name="...">属性?br />
----action q回/讑֮表单的提交地址Q也是<form action="...">属性?br />
----method q回/讑֮表单的提交方法,也就?lt;form method="...">属性?br />
----target q回/讑֮表单提交后返回的H口Q也是<form target="...">属性?br />
----encoding q回/讑֮表单提交内容的编码方式,也就?lt;form enctype="...">属性?br />
----length q回该表单所含元素的数目?br />
--Ҏ(gu)
----reset() 重置表单。这与按?#8220;重置”按钮是一L(fng)?br />
----submit() 提交表单。这与按?#8220;提交”按钮是一L(fng)?br />
--事g
----onreset
----onsubmit
Javascript文档对象l构
览器对?nbsp; navigator
屏幕对象 screen
H口对象 window
历史对象 history
地址对象 location
框架对象 frames[]; Frame
文档对象 document
q接对象 anchors[]; links[]; Link
Java程序对?nbsp; applets[]
插g对象 embeds[]
囄对象 images[]; Image
表单对象 forms[]; Form
按钮对象 Button
复选框对象 Checkbox
表单元素对象 elements[]; Element
隐藏对象 Hidden
密码输入区对?nbsp; Password
单选域对象 Radio
重置按钮对象 Reset
选择区(下拉菜单、列表)对象 Select
选择对?nbsp; options[]; Option
提交按钮对象 Submit
文本框对?nbsp; Text
多行文本输入区对?nbsp; Textarea
]]> jquery-autoComplete 处理q回的json对象问题 http://www.aygfsteel.com/clin8888/archive/2008/12/16/246745.htmlworld_eyes world_eyes Tue, 16 Dec 2008 14:57:00 GMT http://www.aygfsteel.com/clin8888/archive/2008/12/16/246745.html http://www.aygfsteel.com/clin8888/comments/246745.html http://www.aygfsteel.com/clin8888/archive/2008/12/16/246745.html#Feedback 0 http://www.aygfsteel.com/clin8888/comments/commentRss/246745.html http://www.aygfsteel.com/clin8888/services/trackbacks/246745.html ׃目中需要autocompleteQ且目中一直用jquer的框架。所以l选用jquery 的插件jquery-autocompleteQ看到jquery-autocomplete自带的demo感觉很是Ҏ(gu)但是在用中却没有想象中的那么顺手?
关于Jquery-autocomplete处理response中是Json对象时当成字W串处理。查了一些资料终于找到处理方法先看代码:
$("#fromCity").autocomplete("../searchCity.do", {
multiple: true,
width:150,
max:50,
max:50,
multipleSeparator: '',
dataType: 'json',
是在出来绑定中d一个对q回的json对象q行解析函数?/span>
]]>
վ֩ģ壺
ͨ |
|
|
ͨ |
ء |
Զ |
|
Ƽ |
|
|
|
|
¡ |
|
ӯ |
|
|
ѽ |
ɽ |
|
|
ͬ |
ء |
|
|
|
|
|
Դ |
|
ƽ |
|
|
|
|
|
|
|
|
|
ƽ |