- 自动定时开机的实现
首先在启动计算机时,按“Delete”键进入BIOS界面。在BIOS设置主界面中选择“Power Management Setup”菜单,进入电源管理窗口。默认情况下,“Automatic Power Up(定时开机,有些机器选项为Resume By Alarm)”选项是关闭的,将光标移到该项,用PageUp或PageDown翻页键将“Disabled”改为“Enabled”,而后在“Date (of Month) Alarm”和“Time (hh:mm:ss) Alarm”中分别设定开机的日期和时间。
如果“Date”设为0,则默认为每天定时开机。设置好后按“ESC”键回到BIOS设置主界面,点击“Save Exit Setup”,按“Y”键保存CMOS设置退出,接着机器会重新启动,这时便大功告成了。当然,值得注意的是定时开机需要您的主板支持才行,不过现在大多数主板都有这项功能。另外,不同的主板在设置上会不尽相同,不过都大同小异。
- 定时关机的实现
在我们最长用的系统中,存在这很多的命令在这这命令中是分为两部分的.
一部分是外部命令,另一部分则是内部命令
在系统下我们可以在运行输入 cmd 可以调出带命令提示符窗口在这里我们就
可以输入命令了.首先先给大家介绍一个外部命令远程关机的命令.
首先为了让大家有一个明确的概念先说一下什么是外部命令与内部命令,
外部命令则是系统继承并非DOS下命令.而内部命令则是DOS程序自身的命令了.
是如开启远程关机呢?操作方法:
开始菜单->运行->输入 cmd 这个命令则回出现带命令提示符窗口
然后在此输入: shutdown ? 这样的命令则是查看所有命令在这里你可以
看到的就是这里面包含的所有命令参数.
-i 显示 GUI 界面,必须是第一个选项
-l 注销(不能与选项 -m 一起使用)
-s 关闭此计算机
-r 关闭并重启动此计算机
-a 放弃系统关机
-m file://computername/ 远程计算机关机/重启动/放弃
-t xx 设置关闭的超时为 xx 秒
-c "comment" 关闭注释(最大 127 个字符)
-f 强制运行的应用程序关闭而没有警告
-d [u][p]:xx:yy 关闭原因代码
u 是用户代码
p 是一个计划的关闭代码
xx 是一个主要原因代码(小于 256 的正整数)
yy 是一个次要原因代码(小于 65536 的正整数)
在这里你也可以做到给自己关机也可以给其他用户关机,在这里面有
一个界面模式的方法也是输入: shutdown -i 这个命令将会出现界面
模式方便与操作了!
在这里你可以输入对方的IP地址与关机原因和时间,然后确认,这时
对方的计算机将会执行你所发送的命令 是关机 是注销 还是重新启动
都可以操作的.
这个命令一般都是为管理员方便管理所应用程序,在LAN中是可以使用的.
这个关机的模式和冲击波病毒有点类似,所以假如在遇到一切强制关机的话,
你可以是使用这个命令试验一下可以解决吗?
命令是: shutdown -a 这个是取消命令!
例如,shutdown -s -t 60 -m file://192.168.2.1/ 是一分钟后关闭2.1这台机器
shutdown -a -m file://192.168.2.1/ 取消命令
标签: Windows
1.CSS字体属性简写规则
一般用CSS设定字体属性是这样做的:
font-weight:bold;
font-style:italic;
font-varient:small-caps;
font-size:1em;
line-height:1.5em;
font-family:verdana,sans-serif;
但也可以把它们全部写到一行上去:
font: bold italic small-caps 1em/1.5em verdana,sans-serif;
真不错!只有一点要提醒的:这种简写方法只有在同时指定font-size和font-family属性时才起作用。而且,如果你没有设定font-weight, font-style, 以及 font-varient ,他们会使用缺省值,这点要记上。
2. 同时使用两个类
一般只能给一个元素设定一个类(Class),但这并不意味着不能用两个。事实上,你可以这样:
...
同时给P元素两个类,中间用空格格开,这样所有text和side两个类的属性都会加到P元素上来。如果它们两个类中的属性有冲突的话,后设置的起作用,即在CSS文件中放在后面的类的属性起作用。
补充:对于一个ID,不能这样写
...
也不能这样写3. CSS border的缺省值
通常可以设定边界的颜色,宽度和风格,如:
border: 3px solid #000
这位把边界显示成3像素宽,黑色,实线。但实际上这里只需要指定风格即可。
如果只指定了风格,其他属性就会使用缺省值。一般地,Border的宽度缺省是medium,一般等于3到4个像素;缺省的颜色是其中文字的颜色。如果这个值正好合适的话,就不用设那么多了。
4. CSS用于文档打印
许多网站上都有一个针对打印的版本,但实际上这并不需要,因为可以用CSS来设定打印风格。
也就是说,可以为页面指定两个CSS文件,一个用于屏幕显示,一个用于打印:
《link type='text/css" rel="stylesheet" href="stylesheet.css" media="screen"> 《link type="text/css" rel="stylesheet" href="printstyle.css" media="print">
第1行就是显示,第2行是打印,注意其中的media属性。
但应该在打印 CSS中写什么东西呢?你可以按设计普通CSS的方法来设定它。设计的同时就可以把这个CSS设成显示CSS来检查它的效果。也许你会使用 display: none 这个命令来关掉一些装饰图片,再关掉一些导航按钮。要想了解更多,可以看“打印差异”这一篇。
5. 图片替换技巧
一般都建议用标准的HTML来显示文字,而不要使用图片,这样不但快,也更具可读性。但如果你想用一些特殊字体时,就只能用图片了。
比如你想整个卖东西的图标,你就用了这个图片:
这当然可以,但对搜索引擎来说,和正常文字相比,它们对alt里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的:
Buy widgets
但这样就没有特殊字体了。要想达到同样效果,可以这样设计CSS:
h1 { background: url(widget-image.gif) no-repeat; height: image height text-indent: -2000px }
注意把image height换成真的图片的高度。这里,图片会当作背景显示出来,而真正的文字由于设定了-2000像素这个缩进,它们会出现在屏幕左边2000点的地方,就看不见了。但这对于关闭图片的人来说,可能全部看不到了,这点要注意。
6. CSS box模型的另一种调整技巧
这个Box模型的调整主要是针对IE6之前的IE浏览器的,它们把边界宽度和空白都算在元素宽度上。比如:
#box { width: 100px; border: 5px; padding: 20px }
这样调用它:
这时盒子的全宽应该是150点,这在除IE6之前的IE浏览器之外的所有浏览器上都是正确的。但在IE5这样的浏览器上,它的全宽仍是100点。可以用以前人发明的Box调整方法来处理这种差异。
但用CSS也可以达到同样的目的,让它们显示效果一致。
#box { width: 150px } #box div { border: 5px; padding: 20px }
这样调用:
这样,不管什么浏览器,宽度都是150点了。
7. 块元素居中对齐
如果想做个固定宽度的网页并且想让网页水平居中的话,通常是这样:
#content { width: 700px; margin: 0 auto }
你会使用《div id="content"> 来围上所有元素。这很简单,但不够好,IE6之前版本会显示不出这种效果。改CSS如下:
body { text-align: center } #content { text-align: left; width: 700px; margin: 0 auto }
这会把网页内容都居中,所以在Content中又加入了
text-align: left 。
8. 用CSS来处理垂直对齐
垂直对齐用表格可以很方便地实现,设定表格单元 vertical-align: middle 就可以了。但对CSS来说这没用。如果你想设定一个导航条是2em高,而想让导航文字垂直居中的话,设定这个属性是没用的。
CSS方法是什么呢?对了,把这些文字的行高设为 2em:line-height: 2em ,这就可以了。
9. CSS在容器内定位
CSS的一个好处是可以把一个元素任意定位,在一个容器内也可以。比如对这个容器:
#container { position: relative }
这样容器内所有的元素都会相对定位,可以这样用:
如果想定位到距左30点,距上5点,可以这样:
#navigation { position: absolute; left: 30px; top: 5px }
当然,你还可以这样:
margin: 5px 0 0 30px
注意4个数字的顺序是:上、右、下、左。当然,有时候定位的方法而不是边距的方法更好些。
10. 直通到屏幕底部的背景色
在垂直方向是进行控制是CSS所不能的。如果你想让导航栏和内容栏一样直通到页面底部,用表格是很方便的,但如果只用这样的CSS:
#navigation { background: blue; width: 150px }
较短的导航条是不会直通到底部的,半路内容结束时它就结束了。该怎么办呢?
不幸的是,只能采用欺骗的手段了,给这较短的一栏加上个背景图,宽度和栏宽一样,并让它的颜色和设定的背景色一样。
body { background: url(blue-image.gif) 0 0 repeat-y }
此时不能用em做单位,因为那样的话,一旦读者改变了字体大小,这个花招就会露馅,只能使用px。
标签: MVC-V
1问:Hibernate初始化时总是报错:java.lang.NoClassDefFoundError
Hibernate初始化时出现出错代码:
java.lang.NoClassDefFoundError: net/sf/ehcache/CacheException
答:这是新手常见问题。是因为使用默认设置时,Hibernate文档里指出的Hibernate库不完整,缺少ehcache.jar(用于支持Ehcache的相关文件)。配置中加入以上文件,就可以避免初始化时出现java.lang.NoClassDefFoundError:net/sf/ehcache/CacheException异常。
2问:Hibernate报错:"Not binding factory to JNDI, no JNDI name configured"
运行下列程序:
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration().addClass(Person.class);
......
出现错误码:
12:15:34,250 INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
java.lang.UnsupportedOperationException: The user must supply a JDBC connection
at net.sf.Hibernate.connection.UserSuppliedConnectionProvider.getConnection (UserSuppliedConnectionProvider.java:32)
at net.sf.Hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:289)
at net.sf.Hibernate.impl.SessionImpl.connect(SessionImpl.java:3361)
at net.sf.Hibernate.impl.SessionImpl.connection(SessionImpl.java:3321)
at net.sf.Hibernate.impl.BatcherImpl.prepareQueryStatement(BatcherImpl.java:66)
at net.sf.Hibernate.loader.Loader.prepareQueryStatement(Loader.java:779)
at net.sf.Hibernate.hql.QueryTranslator.iterate(QueryTranslator.java:864)
at net.sf.Hibernate.impl.SessionImpl.iterate(SessionImpl.java:1618)
at net.sf.Hibernate.impl.QueryImpl.iterate(QueryImpl.java:27)
at com.Hibernate.person.TestQueryPerson.main(TestQueryPerson.java:28)
Exception in thread "main"
答:修改main函数,为该程序指定配置文件即可。
public static void main(String[] args) throws Exception {
File file=new File("./Hibernate.cfg.xml");
Configuration conf = new Configuration().configure(file);
......
配置文件如下。
3问:使用开发工具Elipse,运行时总报java.lang.NoClassDefFoundError: org/ Hibernate/Session异常
使用Elipse,所用包是hibernte 3,发现在Action中每次执行到:
session=HibernateSessionFactory.currentSession();
时,出现java.lang.NoClassDefFoundError: org/Hibernate/Session异常,如下:
java.lang.NoClassDefFoundError: org/Hibernate/Session
Hibernate3.Hibernate.ExcuteClass.search(ExcuteClass.java:17)
Hibernate3.Hibernate.ExcuteClass.test3(ExcuteClass.java:13)
Hibernate3.Hibernate.Svlt.doGet(Svlt.java:50)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)[/b]
答:这是初学者常见问题,原因是没有导入hibernate 3.jar包,虽然把hibernate 3.jar写入了Classpath,但部署的时候却没有拷贝到lib下面,可以手动拷贝进入。
4问:执行如下方法时,发生"No CurrentSessionContext configured"错误
执行如下方法时,发生"No CurrentSessionContext configured"错误:
Public static Session currentSession() {
try {
System.out.println("HibernateUtil.currentSession() - start");
return getSessionFactory().getCurrentSession();
} catch (HibernateException ex) {
System.out.println("HibernateUtil.currentSession() - failed due to " + ex);
throw ex;
}
}
答:这个错误是由配置文件引起。在集成Hibernate的环境下(例如Jboss),在session-factory段加入:
在不集成Hibernate的环境下(例如使用JDBC的独立应用程序),在session-factory段加入:
就可以解决这个问题。
5问:移植Jboss 4下配置Hibernate出错
在Tomcat 5下配置Hibernate成功,但移植到Jboss 4下出现了很多问题。已在deploy目录下放置了Hibernate-service.xml和Hibernate.cfg.xml文件,但启动服务器仍然报错 如下。
16:56:54,046 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
Packages waiting for a deployer:
org.Jboss.deployment.DeploymentInfo@24bd343 { url=file:/C:/Downloads/temp/Jboss-
4.0.0/server/default/deploy/Hibernate.cfg.xml }
deployer: null
status: null
state: INIT_WAITING_DEPLOYER
watch: file:/C:/Downloads/temp/Jboss-4.0.0/server/default/deploy/Hibernate.cfg
.xml
altDD: null
lastDeployed: 1113987414046
lastModified: 1113987414046
mbeans:
Incompletely deployed packages:
org.Jboss.deployment.DeploymentInfo@24bd343 { url=file:/C:/Downloads/temp/Jboss-
4.0.0/server/default/deploy/Hibernate.cfg.xml }
deployer: null
status: null
state: INIT_WAITING_DEPLOYER
watch: file:/C:/Downloads/temp/Jboss-4.0.0/server/default/deploy/Hibernate.cfg
.xml
altDD: null
lastDeployed: 1113987414046
lastModified: 1113987414046
mbeans:
答:这是在Jboss中使用Hibernate的常见问题。在Jboss的某个war包中使用Hibernate应该将Hibernate.cfg.xml文件放置到%war_dir%WEB-INF/classes中,但是Hibernate的factory仍然可能会提示Hibernate.cfg.xml not found。此问题解决方法如下。
由于Jboss已经集成了Hibernate,在deploy\lib文件夹中hibernate2.jar的文件已经存在了一个jar包,所以实际的war中可能使用了shar的hibernate2.jar,由于ClassLoader只会在hibernate2.jar的同级及上级目录中寻找hibernate.cfg.xml,所以导致Hibernate并没有去查找%war_dir%WEB-INF/classes中的Hibernate.cfg.xml文件。删除deploy/lib下的hibernate2.jar或者使用绝对路径指定Hibernate.cfg.xml可以解决。
除非有其他需求,否则在Jboss下部署Hibernate与在Tomcat下是一样的,并不需要加其他配置文件。
6问:到底在哪里使用cascade="..."?
答:cascade属性并不是多对多关系一定要用的,用了它只是插入或删除对象时更方便一些,只要在cascade的源头上插入或删除,所有cascade的关系就会被自动插入或删除。其中unsaved-value是个很重要的属性,Hibernate是通过这个属性来判断这个对象应该“save”还是“update”,如果这个对象的id是unsaved-value,那说明这个对象不是persistence object,要save(insert);如果id是非unsaved-value,那说明这个对象是persistence object(数据库中已存在),只要update就行了。
7问:到底在哪里使用inverse="true"
答:inverse属性默认是false,就是说关系的两端都来维护关系。这个意思就是说,如有3个表:Student、Teacher和TeacherStudent,Student对象和Teacher对象是多对多关系,这个关系由TeacherStudent表来表现。
那么什么时候插入或删除TeacherStudent表中的记录呢。用Hibernate时,不会显式的对TeacherStudent表操作,对TeacherStudent的操作是Hibernate自动做的。Hibernate就是hbm文件中指定的是“谁”维护关系,在插入或删除时,就会触发对关系表的操作。前提是“谁”这个对象已经知道这个关系,就是说关系另一头的对象已经set或是add到“谁”这个对象里来。
前面说过inverse默认是false,就是关系的两端都维护关系,对其中任一个操作都会触发对表的操作。当在关系的一头,如Student中的bag或set中用了inverse="true"时,就代表关系是由另一端维护的(Teacher)。就是说当插入Student时,不会操作TeacherStudent表,即使Student已经知道了关系。只有Teacher插入或删除时才会触发对关系表的操作。所以,关系的两头都用inverse="true"是不对的,会导致任何操作都不触发对关系表的操作。当两端都是inverse="false"或是default值时,在代码中对关系显式的维护也是不对的,会导致在关系表中插入两次关系。
8问:Cascade和Inverse有什么区别?
答:可以这样理解,Cascade定义的是关系两端对象到对象的级联关系;而Inverse定义的是关系和对象的级联关系。
9问:在删除操作时报错:net.sf.Hibernate.ObjectDeletedException:deleted object would be re-saved by cascade (remove deleted object from associations)
答:要删除关系的一头时(如,要删除一个已经和Student对象有关联的Teacher对象),当tx.commit()时才会抛出这个异常。防止出现这个异常的方法如下。
在Student端不用cascade。
或是用cascade的话,就显式的删除对像中的关系。
在Teacher端要用cascade。
10问:出现net.sf.Hibernate.HibernateException: identifier of an instance of my. MyObject altered from N to N异常
答:这个异常不是多对多关系中常遇到的,但是这个异常的提示容易让人混淆。这是因为在Java对象中,id定义和hbm文件的不一样。如Java中用long,而hbm中用type= "integer"。
11问:为什么在向数据库中插入长字符串时候部分自动丢失
在向数据库中增加一条新的条目时,发现如果文字(有英文字母,也有汉字)数量特别大,超过1000个,则每次通过Hibernate,向一个String类型的字段中增加数据时,只有几百个字可以增加进去,其他的自动丢失了。
答:这是由于字段长度设置不合理造成的。可以根据字符串实际长度考虑使用Text、LongText、或者Blob等字段类型。不同数据库的字段类型稍有不同,可以参考相关手册。另外需要注意的是一个汉字占用两个字节长度。
12问:为什么采用Hibernate的批量删除方法来删除大批量的记录数据时速度特别慢
答:在使用Hibernate版本2.X时,不推荐采用Hibernate的批量删除方法来删除大量记录。原因是,Hibernate会执行1条查询语句,另外还有满足条件的多条删除语句,而不是一次执行一个删除语句,所以当待删除的数据很多时,会有很大的性能瓶颈。而对于Hibernate 3.0以上的版本,则不存这个问题。
13问:升级Hibernate 3后在导入hbm映射文件时为什么非常非常慢
原先在Hibernate 2中,程序的速度是非常快的。当环境顺利从Hibernate 2升级到Hibernate 3后,发布时在Tomcat的控制台中发现:Hibernate 3装载hbm映射文件时非常慢,差不多10秒钟才能装载一个hbm文件。
答:通过在Hibernate的源代码中设置断点,可以发现执行效率低下的代码在org.hibernate.cfg.Configuration文件中的第240行:
addInputStream( new FileInputStream( xmlFile ) );
而addInputStream函数中又包含:
org.dom4j.Document doc = xmlHelper.createSAXReader( "XML InputStream", errors, entityResolver ).read( new InputSource( xmlInputStream ) );
跟踪org.hibernate.util.XMLHelper中的函数createSAXReader可以得出结论,问题的症结出在这一条语句:
org.dom4j.Document doc = xmlHelper.createSAXReader()
可以判断这是在XML文件装载初始化时发生的错误,仔细检查XML文件,可以发现这是XML的第一行声明dtd的错误,因为以前使用的是Hibernate 2,所以hbm文件的dtd指向的是版本2,而升级Hibernate 3后,没有把老的hbm映射文件换成版本3。在更换为3版本后,此问题得到解决。
14问:为什么Hibernate 3中的HQL无法查询汉字
使用同样的代码和配置文件,在Hibernate 2上完全没有问题,在Hibernate 3中,使用如下HQL查询,无法得到正确的结果集:
String hql = "from story where title like '%汉字%'";
Query q = session.createQuery(hql);
但用下面的HQL查询,却可以得到正确结果集:
String hql = " from story where title like '%english%'";
Query q = session.createQuery(hql);
答:如果采用的是拼接HQL的方式,从Hibernate 2升级到Hibernate 3确实会出现汉字乱码问题。在控制台中可以看到,SQL的汉字部分变成了乱码:
[DEBUG] 2005-08-14 14:33:58 org.hibernate.SQL - "select story0_.content from story as story0_ where story0_.title like '%&–°é—&&?¨& ?'
在Hibernate中,查询时应尽量使用占位符的写法(如下),这样既可以避免乱码问题,又可以避免潜在的SQL注入攻击:
getHibernate().find("from story where title like ? ", "%汉字%")
15问:Hibernate 3中如何获得库表所有字段的名称
答:可以使用以下的程序获得。
Configuration conf = new Configuration();
conf.configure();
Iterator iter = conf.getTableMappings();
while ( iter.hasNext() ) {
Table table = ( Table ) iter.next();
System.out.println(table.getName());
Iterator ics = table.getColumnIterator();
while (ics.hasNext()){
Column col = (Column) ics.next();
System.out.println(col.getName());
}
}
16问:错误代码:ObjectNotFoundException: No row with the given identifier exists
答:在以下几种情况下,该错误可能会发生。
当试图使用session.load()方法装载一个未被代理的对象,或者访问一个超出范围的代理对象时。
当装载一个未被正确取得的映射时。
当未被外键约束的外键字段中含有非法值时。
检查装载使用的主键Id,并验证外键关系,以确定数据库中已经存在相应的约束关系。坚持“在一个Session中只处理一个事务”的原则。因为当在单一Session中使用多个事务时很容易犯错。尤其注意,在一个HibernateException已经抛出后不要再操作Session。
17问:错误代码:InvalidObjectException: Could not find a SessionFactory named: null
答:这个错误在以下几种情况下经常发生。
试图序列化一个已经失效的Hibernate Session,然后在另外一个虚拟机中进行反序列化。
类装载器被重置,例如在未重启的application server或者Web container中重新部署程序。在使用Tomcat时会经常遇到这个问题,这是因为application server中一般使用JNDI来存储SessionFactory,而在Tomcat或其他一些Web容器中,则是通过在context重载时,关闭HttpSession序列化来实现的。这种实现方式会引起这个错误发生。
18问:错误代码:org.hibernate.HibernateException: CGLIB Enhancement failed:
答:Hibernate 3的默认方式是把所有类通过代理方式来进行延迟加载。如果代码中的类有一个私有无参的构造器的话,Hibernate将无法在运行时将项目代码中的类作为子类装载。为了避免这个错误,类中的构造器函数至少应该在包内可见。
19问:为什么在Hibernate中添加、删除、修改一个对象或Collection,但是数据库中实际上没有任何变化
答:这个问题经常会困扰初学者。这是因为如果没有使用Hibernate的自动事务处理,则必需显式的提交事务,操作才会在数据库中执行。
20问:为什么保存一个父对象,而它的关联对象没有自动储存到数据库里
答:关联对象必需显式的调用session.save()(或session.persist()),或者在关联的映射文件中加入cascade="all"或cascade="save-update"(或cascade="persist")才能够自动关联执行。