我用的qq2012透明皮肤下载 为什么在和别人视频的时候占用内存超大啊。124M了,请问哪位大侠知道优化的

国强幸福彼岸 超大三房 124m
39万 无营业税
国强幸福彼岸
国强幸福彼岸
国强幸福彼岸
国强幸福彼岸
中层(共33层)
我叫卢忠兴,现在是合肥柏年房产营销有限公司的一名普通经纪人,本人很喜欢、热爱这份工作。每成交一单都会让我充满自豪和成就感。网络是虚拟的,不敢肯定我的每一个客户都在我这里购买到心仪的房源,但我能肯定我的每一个客户都会记住我的热情和专业度!同时本人承诺所发布的房源均真实有效。但是每个人的可信度和专业度是拭目可见的,感谢您对我的支持与信赖
怎样的小区内容对您有帮助?
客服热线/ 虚假信息举报:400-620-9008&&&&
Copyright &
All Rights Reserved勒紧皮带向前冲 阅读(967) |
&1/**&*//**&&
&2&*&@param&input&&
&3&*&@return&&
&4&*&@throws&Exception&&
&6public&static&String&encryptData(String&input)&throws&Exception&{&&&
&8&&&&SecureRandom&sr&=&new&SecureRandom();&&&
&9&&&&byte&rawKeyData[]&=&"ABCDEFGH".getBytes();&&&
<span style="color: #&&&&DESKeySpec&dks&=&new&DESKeySpec(rawKeyData);&&&
<span style="color: #&&
<span style="color: #&&&&SecretKeyFactory&keyFactory&=&SecretKeyFactory.getInstance("DES");&&&
<span style="color: #&&&&SecretKey&key&=&keyFactory.generateSecret(dks);&&&
<span style="color: #&&
<span style="color: #&&&&Cipher&c&=&Cipher.getInstance("DES");&&&
<span style="color: #&&&&c.init(Cipher.ENCRYPT_MODE,&key,&sr);&&&
<span style="color: #&&&&byte[]&cipherByte&=&c.doFinal(input.getBytes());&&&
<span style="color: #&&&&String&dec&=&new&BASE64Encoder().encode(cipherByte);&&&
<span style="color: #&&&&return&&&&
<span style="color: #&&
<span style="color: #}&&&
<span style="color: #&&
<span style="color: #/**&*//**&&
<span style="color: #&*&&#64;param&input&&
<span style="color: #&*&&#64;return&&
<span style="color: #&*&&#64;throws&Exception&&
<span style="color: #&*/&&
<span style="color: #public&static&String&decryptData(String&input)&throws&Exception&{&&&
<span style="color: #&&&&byte[]&dec&=&new&BASE64Decoder().decodeBuffer(input);&&&
<span style="color: #&&
<span style="color: #&&&&SecureRandom&sr&=&new&SecureRandom();&&&
<span style="color: #&&&&byte&rawKeyData[]&=&"ABCDEFGH".getBytes();&&&
<span style="color: #&&
<span style="color: #&&&&DESKeySpec&dks&=&new&DESKeySpec(rawKeyData);&&&
<span style="color: #&&
<span style="color: #&&&&SecretKeyFactory&keyFactory&=&SecretKeyFactory.getInstance("DES");&&&
<span style="color: #&&
<span style="color: #&&&&SecretKey&key&=&keyFactory.generateSecret(dks);&&&
<span style="color: #&&
<span style="color: #&&&&Cipher&c&=&Cipher.getInstance("DES");&&&
<span style="color: #&&&&c.init(Cipher.DECRYPT_MODE,&key,&sr);&&&
<span style="color: #&&&&byte[]&clearByte&=&c.doFinal(dec);&&&
<span style="color: #&&
<span style="color: #&&&&return&new&String(clearByte);&&&
<span style="color: #&&
<span style="color: #}&&
<span style="color: #
注:转自 /blog/145803
勒紧皮带向前冲 阅读(160) |
&&1&import&java.text.DateF
&&2&import&java.util.*;
&&4&public&class&JspCalendar&{
&&5&&&&&Calendar&calendar&=&null;
&&7&&&&&public&JspCalendar()&{
&&8&&&&&&&&&calendar&=&Calendar.getInstance();
&&9&&&&&&&&&Date&trialTime&=&new&Date();
&10&&&&&&&&&calendar.setTime(trialTime);
&13&&&&&public&int&getYear()&{
&14&&&&&&&&&return&calendar.get(Calendar.YEAR);
&17&&&&&public&String&getMonth()&{
&18&&&&&&&&&int&m&=&getMonthInt();
&19&&&&&&&&&String[]&months&=&new&String[]&{&"January",&"February",&"March",
&20&&&&&&&&&&&&&&&&&"April",&"May",&"June",&"July",&"August",&"September",
&21&&&&&&&&&&&&&&&&&"October",&"November",&"December"&};
&22&&&&&&&&&if&(m&&&12)
&23&&&&&&&&&&&&&return&"Unknown&to&Man";
&25&&&&&&&&&return&months[m&-&1];
&29&&&&&public&String&getDay()&{
&30&&&&&&&&&int&x&=&getDayOfWeek();
&31&&&&&&&&&String[]&days&=&new&String[]&{&"Sunday",&"Monday",&"Tuesday",
&32&&&&&&&&&&&&&&&&&"Wednesday",&"Thursday",&"Friday",&"Saturday"&};
&34&&&&&&&&&if&(x&&&7)
&35&&&&&&&&&&&&&return&"Unknown&to&Man";
&37&&&&&&&&&return&days[x&-&1];
&41&&&&&public&int&getMonthInt()&{
&42&&&&&&&&&return&1&+&calendar.get(Calendar.MONTH);
&45&&&&&public&String&getDate()&{
&46&&&&&&&&&return&getMonthInt()&+&"/"&+&getDayOfMonth()&+&"/"&+&getYear();
&50&&&&&public&String&getTime()&{
&51&&&&&&&&&return&getHour()&+&":"&+&getMinute()&+&":"&+&getSecond();
&54&&&&&public&int&getDayOfMonth()&{
&55&&&&&&&&&return&calendar.get(Calendar.DAY_OF_MONTH);
&58&&&&&public&int&getDayOfYear()&{
&59&&&&&&&&&return&calendar.get(Calendar.DAY_OF_YEAR);
&62&&&&&public&int&getWeekOfYear()&{
&63&&&&&&&&&return&calendar.get(Calendar.WEEK_OF_YEAR);
&66&&&&&public&int&getWeekOfMonth()&{
&67&&&&&&&&&return&calendar.get(Calendar.WEEK_OF_MONTH);
&70&&&&&public&int&getDayOfWeek()&{
&71&&&&&&&&&return&calendar.get(Calendar.DAY_OF_WEEK);
&74&&&&&public&int&getHour()&{
&75&&&&&&&&&return&calendar.get(Calendar.HOUR_OF_DAY);
&78&&&&&public&int&getMinute()&{
&79&&&&&&&&&return&calendar.get(Calendar.MINUTE);
&82&&&&&public&int&getSecond()&{
&83&&&&&&&&&return&calendar.get(Calendar.SECOND);
&86&&&&&public&static&void&main(String&args[])&{
&87&&&&&&&&&JspCalendar&db&=&new&JspCalendar();
&88&&&&&&&&&p("date:&"&+&db.getDayOfMonth());
&89&&&&&&&&&p("year:&"&+&db.getYear());
&90&&&&&&&&&p("month:&"&+&db.getMonth());
&91&&&&&&&&&p("time:&"&+&db.getTime());
&92&&&&&&&&&p("date:&"&+&db.getDate());
&93&&&&&&&&&p("Day:&"&+&db.getDay());
&94&&&&&&&&&p("DayOfYear:&"&+&db.getDayOfYear());
&95&&&&&&&&&p("WeekOfYear:&"&+&db.getWeekOfYear());
&96&&&&&&&&&p("era:&"&+&db.getEra());
&97&&&&&&&&&p("ampm:&"&+&db.getAMPM());
&98&&&&&&&&&p("DST:&"&+&db.getDSTOffset());
&99&&&&&&&&&p("ZONE&Offset:&"&+&db.getZoneOffset());
100&&&&&&&&&p("TIMEZONE:&"&+&db.getUSTimeZone());
103&&&&&private&static&void&p(String&x)&{
104&&&&&&&&&System.out.println(x);
107&&&&&public&int&getEra()&{
108&&&&&&&&&return&calendar.get(Calendar.ERA);
111&&&&&public&String&getUSTimeZone()&{
112&&&&&&&&&String[]&zones&=&new&String[]&{&"Hawaii",&"Alaskan",&"Pacific",
113&&&&&&&&&&&&&&&&&"Mountain",&"Central",&"Eastern"&};
115&&&&&&&&&return&zones[10&+&getZoneOffset()];
118&&&&&public&int&getZoneOffset()&{
119&&&&&&&&&return&calendar.get(Calendar.ZONE_OFFSET)&/&(60&*&60&*&1000);
122&&&&&public&int&getDSTOffset()&{
123&&&&&&&&&return&calendar.get(Calendar.DST_OFFSET)&/&(60&*&60&*&1000);
126&&&&&public&int&getAMPM()&{
127&&&&&&&&&return&calendar.get(Calendar.AM_PM);
勒紧皮带向前冲 阅读(141) |
[java]比较两个日期之间的天数&script
src="http://blog.csdn.net/count.aspx?ID=438390&Type=Rank"&&/script&
1.import&java.text.SimpleDateF&&&&
2.import&java.util.D&&&&
1.public&class&Tmp&{&&&&
1.public&static&void&main(&String&argv[]&)&throws&Exception&{&&&&
1.long&DAY&=&24L&*&60L&*&60L&*&1000L;&&&&
1.SimpleDateFormat&df&=&new&SimpleDateFormat(&"MM.dd.yyyy"&);&&&&
2.Date&d1&=&df.parse(&"01.01.2001"&);&&&&
3.Date&d2&=&df.parse(&"01.03.2001"&);&&&&
4.System.out.println(&"The&number&days&between:"&);&&&&
5.System.out.println(&d1&);&&&&
6.System.out.println(&"and:"&);&&&&
7.System.out.println(&d2&);&&&&
8.System.out.println(&"is:&"&+&((&d2.getTime()&-&d1.getTime()&)&/&DAY&));&&&&
勒紧皮带向前冲 阅读(375) |
1、这里说用css实现,下面是我摸索的全过程。
一日,漫无目的的浏览css手册,发现了text-overflow属性可以截取字符串,就来用用,用了n次都不成功,怀疑需要与其他属性连用,就找类似属性进行组合使用,最后发现需要和overflow连用。
&div style="overflow:width:200text-overflow:ellipsis"&打开抗敌素可打开撒开绿灯撒恺撒棵扩大上爱迪生啊撒大可&/div&
勒紧皮带向前冲 阅读(252) |
&a href="" onClick="this.style.behavior='url(#default#homepage)';this.setHomePage('');return(false);" style="behavior: url(#default#homepage)" &设置为我的首页&/a&
加入收藏夹
&#183;&A href="javascript:window.external.addFavorite('','网易科技')"&& target="_self"&加入到我的收藏夹&/A&
勒紧皮带向前冲 阅读(270) |
在WEB开发中,城市-省份是和日历一样需要我们特别处理的用户信息,我们希望自己的程序能够更人性化一些,既方便网友的输入,又尽可能的采集到合法有效的信息,这个时候就需要借助一些插件。
城市输入插件我先后用过很多款了,因为涉及二级联动,调用一般都比较复杂,这里推荐一个非常简洁的工具,只需要一个JS文件,HTML页面的代码也比较干净:
演示地址:
在北京卖场的活动中测试通过,不存在跨域等问题。
另外,也顺便测试了快乐笛子(site:http://www.happyshow.org/)编写的日历输入插件,共同的特点就是简洁,但功能一点也没有缩水,特别值得推荐的是它可以快捷输入年份与月份,比如,你要输入12-23-1994,只要双击年份和月份,就可以从下拉列表中选择1994和12,而不用一页一页的翻
转自:/?action=show&id=206
js文件可在我的文件中下载
勒紧皮带向前冲 阅读(1573) |
&&&& 摘要: &&1&script&language="JavaScript"&type="text/JavaScript"&
&&2//&日期选择
&&3//&By&Ziyue(http://www./)
&&4var&months&n...&&
勒紧皮带向前冲 阅读(356) |
17:09:31 原文地址:
1。每天11:00点前睡觉,每天7:30点前起床;
2。每天提醒自己,不要忘记梦想;
3。有时间多看书,多学习,做一个有文学素养的 人,不要把时间浪费在滑稽怪诞的事情上;
4。多锻炼身体,身体垮了什么都没有了,男人女人要对自己好一点;
5。努力学习赚钱的本领,钱是一个人活着的根本,是做人的尊严;
6。常回家看看老妈,常给姐姐哥哥电话,亲情是最珍贵的感情;
7。要学会做个倾听者,要多听听别人的感受,从中获得教训;
8。要学会玩,学会有品位的玩;
9。工作上的烦恼,不要带回家,解决不了任何问题,带回来会平添更多烦恼;
10。做工作的有心人;
11。学会奉承领导,多摆笑脸,不做恶人,三缄其口,三思而后行;
12。学会推拖事情,人善被人欺,马善被人骑;
13。不和没素养的人交往,免得受其影响;
14。不与小气的人交往,吃亏的总是自己;
15。对装B的人要一棒子打死,让他(她)下次再也牛不起来!
16。不与已婚人或者已经同居的人谈感情,多半是浪费口舌,最后没什么收获,反而打击自己的生活激情;
17。要寻找与自己有共同价值观的人,爱自己的人,好好珍惜,好好保护,终了一生;
18。不要把感情浪费在没有希望的人身上,看重外在的人永远都是弱智,只有在伤痕累累时才明白,真正爱她的人原来一直在她身边关注她,而她却一直以为幸福很遥远;
19。不要过分将就一个人,过分将就不是爱情,是犯贱;
20。现实一点,爱情在现实面前总是那么苍白,浪漫的爱情不属于男人,属于女人;
21。做婚姻的有心人,好好准备步入婚姻,好好准备做一个好丈夫好妻子;
22。做生活的有心人,用心准备营造一个美好的家庭,一个安全温馨的家庭;
23。不要老是想做救世主,就算是救世主,也没必要去拯救世人。可怜之人,必有可恨之处,而且都是犹大;
24。不要轻易借钱给别人,借钱的人,许多都不想还钱;
25。要明白读过很多书的人不一定有很多知识,没上过学的人却不一定是文盲;
26。不要以貌取人,特别是女人,漂亮的也许是个魔鬼,
丑陋的却可能是天使,上天总是公平的;
27。要做回自己,为自己活着;
28。要会装扮自己,邋遢不是一个酷的表现,是没教养的结果;
29。走自己的路,让NB说破嘴皮吧;
30。赚别人的钱,让贫穷见鬼去吧
勒紧皮带向前冲 阅读(97) |
ConvertUtils,这个工具类的职能是在字符串和指定类型的实例之间进行转换。
目前支持的类型有:
java.lang.BigDecimal
java.lang.BigInteger
boolean and java.lang.Boolean
byte and java.lang.Byte
char and java.lang.Character
java.lang.Class
double and java.lang.Double
float and java.lang.Float
int and java.lang.Integer
long and java.lang.Long
short and java.lang.Short
java.lang.String
java.io.File
java.net.URL
java.sql.Date
java.sql.Time
java.sql.Timestamp
总体提供两类功能:
1.&&&&&&&& 将字符串转换为指定类型;
2.&&&&&&&& 注册、注销和查询类型转换器;
convert(java.lang.Object&value)
将任意的实例转变为String,用法非常简单。在尝试的过程中,感觉与调用实例上的toString()方法的效果一样,不知道是不是在这个方法内仅仅是调用了传入实例的toString()方法。
ps:需要读源代码才能清楚。
convert(java.lang.String&value, java.lang.Class&clazz)
将字符串value转换为clazz的一个实例;如果失败的话,就以String的形式返回value。
convert(java.lang.String[]&values, java.lang.Class&clazz)
这个方法是对前一方法的加强版,将数组中的每个value都进行转换,最后以Object返回。(数组也是Object啊)
()和(java.lang.Class&clazz)
注销转换器,前者将所有的转换器注销掉,后者只注销对应于clazz的转换器。注销在这里不是彻底删除了,而是将转换器变为默认的转换器(apache commons提供的)。
(java.lang.Class&clazz)
获取指定类型clazz的转换器.
(&converter, java.lang.Class&clazz)
为指定类型clazz注册转换器converter。如果clazz已经存在一个对应的转换器,那么converter,将覆盖原来的转换器。也就是说,我们可以为String,Double创建自定义的类型转换器,并在注册后进行使用。
ps:apache的类定义明确,描述非常清楚,所以就不贴出例子了。当然这只是到达可以正常使用的阶段,如果要进行改造或者创建自己的ConvertUtils,那可能需要更多的时间,因为还要去参考ConvertUtilsBean,这里就不详述了。
以下为使用convertUtils的一个DATE类型的例子(该例子来源于尚学堂视屏)
1.定义converter
&1package&com.bjsxt.oa.
&3import&java.text.ParseE
&4import&java.text.SimpleDateF
&5import&java.util.D
&7import&mons.beanutils.C
&9public&class&UtilDateConverter&implements&Converter&{
<span style="color: #&&&&
<span style="color: #&&&&private&static&SimpleDateFormat&format&=&new&SimpleDateFormat("yyyy-MM-dd");
<span style="color: #
<span style="color: #&&&&public&Object&convert(Class&type,&Object&value)&{
<span style="color: #&&&&&&&&if&(value&==&null)&{
<span style="color: #&&&&&&&&&&&&return&
<span style="color: #&&&&&&&&}
<span style="color: #&&&&&&&&if&(value&instanceof&Date)&{
<span style="color: #&&&&&&&&&&&&return&
<span style="color: #&&&&&&&&}
<span style="color: #&&&&&&&&if&(value&instanceof&String)&{
<span style="color: #&&&&&&&&&&&&try&{
<span style="color: #&&&&&&&&&&&&&&&&return&format.parse((String)value);
<span style="color: #&&&&&&&&&&&&}&catch&(ParseException&e)&{
<span style="color: #&&&&&&&&&&&&&&&&e.printStackTrace();
<span style="color: #&&&&&&&&&&&&}
<span style="color: #&&&&&&&&}
<span style="color: #&&&&&&&&return&null;
<span style="color: #&&&&}
<span style="color: #
<span style="color: #}
<span style="color: #
2.使用convertUilts注册converter
&1package&com.bjsxt.oa.
&3import&java.util.D
&5import&javax.servlet.ServletE
&6import&javax.servlet.http.HttpS
&8import&mons.beanutils.ConvertU
<span style="color: #public&class&UtilDateConverterInitServlet&extends&HttpServlet&{
<span style="color: #
<span style="color: #&&&&&#64;Override
<span style="color: #&&&&public&void&init()&throws&ServletException&{
<span style="color: #&&&&&&&&&ConvertUtils.register(new&UtilDateConverter(),&Date.class);
<span style="color: #&&&&}
<span style="color: #
<span style="color: #}
<span style="color: #
3.在web.xml中配置servlet
<span style="color: #&&servlet&
<span style="color: #&&&&&servlet-name&utilDateConverter&/servlet-name&
<span style="color: #&&&&&servlet-class&com.bjsxt.oa.web.UtilDateConverterInitServlet&/servlet-class&
<span style="color: #&&&&&load-on-startup&<span style="color: #&/load-on-startup&
<span style="color: #&&&/servlet&&&
勒紧皮带向前冲 阅读(1548) |
mons.beanutils.BeanUtils
一、简介:
BeanUtils提供对 Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很 多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。
二、用法:
BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyProperties()方法。该方法定义如下:
public static void copyProperties(java.lang.Object dest,java.lang.Object orig)
&&& throws java.lang.IllegalAccessException,
&&&&&&&&&& java.lang.reflect.InvocationTargetException
如 果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm,例如 Teacher和TeacherForm。我们一般会在Action里从ActionForm构造一个PO对象,传统的方式是使用类似下面的语句对属性逐 个赋值:
//得到TeacherForm
TeacherForm teacherForm=(TeacherForm)
//构造Teacher对象
Teacher teacher=new Teacher();
teacher.setName(teacherForm.getName());
teacher.setAge(teacherForm.getAge());
teacher.setGender(teacherForm.getGender());
teacher.setMajor(teacherForm.getMajor());
teacher.setDepartment(teacherForm.getDepartment());
//持久化Teacher对象到数据库
HibernateDAO=;
HibernateDAO.save(teacher);
而使用BeanUtils后,代码就大大改观了,如下所示:
//得到TeacherForm
TeacherForm teacherForm=(TeacherForm)
//构造Teacher对象
Teacher teacher=new Teacher();
BeanUtils.copyProperties(teacher,teacherForm);
//持久化Teacher对象到数据库
HibernateDAO=;
HibernateDAO.save(teacher);
如 果Teacher和TeacherForm间存在名称不相同的属性,则BeanUtils不对这些属性进行处理,需要程序员手动处理。例如 Teacher包含modifyDate(该属性记录最后修改日期,不需要用户在界面中输入)属性而TeacherForm无此属性,那么在上面代码的 copyProperties()后还要加上一句:
teacher.setModifyDate(new Date());
怎 么样,很方便吧!除BeanUtils外还有一个名为PropertyUtils的工具类,它也提供copyProperties()方法,作用与 BeanUtils的同名方法十分相似,主要的区别在于后者提供类型转换功能,即发现两个JavaBean的同名属性为不同类型时,在支持的数据类型范围 内进行转换,而前者不支持这个功能,但是速度会更快一些。BeanUtils支持的转换类型如下:
&&&&& * java.lang.BigDecimal
&&&&& * java.lang.BigInteger
&&&&& * boolean and java.lang.Boolean
&&&&& * byte and java.lang.Byte
&&&&& * char and java.lang.Character
&&&&& * java.lang.Class
&&&&& * double and java.lang.Double
&&&&& * float and java.lang.Float
&&&&& * int and java.lang.Integer
&&&&& * long and java.lang.Long
&&&&& * short and java.lang.Short
&&&&& * java.lang.String
&&&&& * java.sql.Date
&&&&& * java.sql.Time
&&&&& * java.sql.Timestamp
这里要注意一点,java.util.Date是不被支持的,而它的子类java.sql.Date是被支持的。因此如果对象包含时间类型的属性,且希望被转换的时候,一定要使用java.sql.Date类型。否则在转换时会提示argument mistype异常。
三、优缺点:
Apache Jakarta Commons项目非常有用。我曾在许多不同的项目上或直接或间接地使用各种流行的commons组件。其中的一个强大的组件就是BeanUtils。我 将说明如何使用BeanUtils将local实体bean转换为对应的value 对象:
BeanUtils.copyProperties(aValue, aLocal)
上 面的代码从aLocal对象复制属性到aValue对象。它相当简单!它不管local(或对应的value)对象有多少个属性,只管进行复制。我们假设 local对象有100个属性。上面的代码使我们可以无需键入至少100行的冗长、容易出错和反复的get和set方法调用。这太棒了!太强大了!太有用 了!
现在,还有一个坏消息:使用BeanUtils的成本惊人地昂贵!我做了一个简单的测试,BeanUtils所花费的时间要超过取数 据、将其复制到对应的 value对象(通过手动调用get和set方法),以及通过串行化将其返回到远程的客户机的时间总和。所以要小心使用这种威力!
该文章的原文地址为:
勒紧皮带向前冲 阅读(2314) |
(1)用文本编辑器打开&Tomcat主目录&/conf目录下的Server.xml文件,使用&#8220;查找&#8221;菜单查找内容为&#8220;&/Host&&#8221;的行,紧接该行下面增加一对&Host&&/Host&标签。参照前面的&Host&标签的属性设置情况,设置新增的&Host&标签的属性,并在它里面嵌套一个设置该WEB站点根目录的&Context&元素,最终的内容如下:
&Host&name=""&debug="0"&appBase="d:\site1"&
&Context&path=""&docBase="."&debug="0"/&
这样,将创建一个新的WEB站点。上面的&Context&元素的docBase属性值被设置为一个点(.),即表示使用&Host&元素的appBase属性中所设置的路径作为这个&Context&所映射的目录。
&&&&(2)在上面新增的&Host&&/Host&标签对下面再增加一对&Host&&/Host&标签,并将它设置为如下形式:
&Host&name="www."&debug="0"&appBase="d:\site2"&
&Context&path=""&docBase="."&debug="0"/&
这又创建了一个新的WEB站点,该站点的主机名称为www.,根目录对应的本地文件系统目录为d:\site2。
&&&&(3)在d:盘下创建名称为site1和site2两个目录,并在这两个目录中分别创建一个名为test.html的文件,在d:\site1\test.html文件中写入如下一行内容:
这是d:\site1目录中的test.html文件
在d:\site2\test.html文件中写入如下一行内容:
这是d:\site2目录中的test.html文件
&&&&(4)用记事本程序打开c:\winnt\System32\Drivers\Etc\Hosts文件,可以看到有如下一行内容:
127.0.0.1&&&&&&&localhost
紧接这行文本的下面,用它复制出两行文本,并将这两行文本中的localhost分别修改成和www.,这样,就使用Hosts文件为当前计算机设置了多个主机名。如果要用和www.这个两主机名访问其他计算机上的WEB站点,则应将127.0.0.1修改成其他计算机的实际IP地址。保存Hosts文件后,Hosts文件的内容如下:
127.0.0.1&&&&&&&&&&&&&&&&&&localhost
202.104.125.154&&&&&&&
202.104.125.154&&&&&&&www.
其中202.104.125.154为您服务器的固定IP地址。
在命令行窗口中执行&#8220;ping&&#8221;和&#8220;ping&www.&#8221;命令,查看该主机名是否被正确解析到了相应的IP地址上。建立site1和site2与计算机IP地址的映射后,在IE浏览器地址栏中输入http://localhost:8080/test.html、:8080/test.html和http://www.:8080/test.html,可以看到浏览器将显示出各自站点中的test.html网页文件的内容。
如需不要后面的8080端口号,可直接把tomcat端口号设置为80即可。
&&&(5)设置域名&&&&www.&的解析IP地址都为202.104.125.154(即您服务器的IP地址)。
可见,使用主机名的方式在同一台WEB服务器上创建多个虚拟主机后,在WEB浏览器中使用主机名访问Web服务器时,Web服务器将选择与该主机名关联的WEB站点进行响应。通过这种方式,多个WEB站点可以共享同一个IP地址和相同的端口号,唯一不足的就是WEB浏览不能通过IP地址去访问这些WEB站点。基于主机名的虚拟主机是目前Internet上的大多数虚拟主机业务提供商所通常采用的方式。只要找出几个小型公司或个人的网站,如果在WEB浏览器地址栏中输入&#8220;http://主机名&#8221;可以访问到该WEB站点,接着在命令行窗口中执行&#8220;ping&主机名&#8221;,查看到该域名对应的IP地址,然后在WEB浏览器地址栏中输入&#8220;http://IP地址&#8221;时,却无法访问这个WEB站点了,那么,这个WEB站点就是一个基于主机名的虚拟主机,它与其他一些WEB站点共享一台WEB服务器,而不是自己独享一台WEB服务器。
注意:当使用安全套接字层&(SSL)&时,不能使用主机头字段来实现虚拟主机,这是因为使用SSL的HTTP请求有加密保护。主机头字段是加密内容的一部分,不能被解释和路由到正确的站点。
勒紧皮带向前冲 阅读(418) |
&&&& 摘要: &
&&& 开发工具:MyEclipse 6.0 ,Tomcat 5.5 ,JDK 1.5& ,MySQL 5.0 ;开发准备:下载Struts 2.0和Hibernate 3.2,大家可Struts和Hibernate的官方网站下载这两个框架。我们先来总览一下开发完成后的包—类图:
&&&
&nbsp...&&
勒紧皮带向前冲 阅读(65) |
&&&& 摘要: &
&&& 开发工具:MyEclipse 6.0 ,Tomcat 5.5 ,JDK 1.5& ,MySQL 5.0 ;开发准备:下载Struts 2.0和Hibernate 3.2,大家可Struts和Hibernate的官方网站下载这两个框架。我们先来总览一下开发完成后的包—类图:
&&&
&nbsp...&&
勒紧皮带向前冲 阅读(60) |
专注移动通信,嵌入式,IC设计,硬件研发,手机研发等当今最热门的技术领域的讨论与资料共享
52RD研发论坛 - /bbs
本文来自:我爱研发网() 详细出处:/bbs/Detail_RD.BBS__1_1.html
勒紧皮带向前冲 阅读(273) |
什么是ThreadLocal?
顾名思义它是local variable(线程局部变量)。它的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是每一个线程都可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。
To keep state with a thread (user-id, transaction-id, logging-id)
To cache objects which you need frequently
ThreadLocal类
它 主要由四个方法组成initialValue(),get(),set(T),remove(),其中值得注意的是initialValue(),该方法 是一个protected的方法,显然是为了子类重写而特意实现的。该方法返回当前线程在该线程局部变量的初始值,这个方法是一个延迟调用方法,在一个线 程第1次调用get()或者set(Object)时才执行,并且仅执行1次。ThreadLocal中的确实实现直接返回一个null:
ThreadLocal的原理
ThreadLocal是如何做到为每一个线程维护变量的副本的呢?其实实现的思路很简单,在ThreadLocal类中有一个Map,用于存储每一个线程的变量的副本。比如下面的示例实现:
public class ThreadLocal
private Map values = Collections.synchronizedMap(new HashMap());
public Object get()
Thread curThread = Thread.currentThread();
Object o = values.get(curThread);
if (o == null && !values.containsKey(curThread))
o = initialValue();
values.put(curThread, o);
 public void set(Object newValue)
values.put(Thread.currentThread(), newValue);
 public Object initialValue()
ThreadLocal 的使用
使用方法一:
Hibernate的文档时看到了关于使ThreadLocal管理多线程访问的部分。具体代码如下
1.&&public static final ThreadLocal session = new ThreadLocal();
2.&&public static Session currentSession() {
3.&&&&&&Session s = (Session)session.get();
4.&&&&&&//open a new session,if this session has none
5.&& if(s == null){
6.&&&&&&s = sessionFactory.openSession();
7.&&&&&&session.set(s);
我们逐行分析
1。 初始化一个ThreadLocal对象,ThreadLocal有三个成员方法 get()、set()、initialvalue()。
&&&&如果不初始化initialvalue,则initialvalue返回null。
3。 session的get根据当前线程返回其对应的线程内部变量,也就是我们需要的net.sf.hibernate.Session(相当于对应每个数据 库连接).多线程情况下共享数据库链接是不安全的。ThreadLocal保证了每个线程都有自己的s(数据库连接)。
5。如果是该线程初次访问,自然,s(数据库连接)会是null,接着创建一个Session,具体就是行6。
6。创建一个数据库连接实例 s
7。保存该数据库连接s到ThreadLocal中。
8。如果当前线程已经访问过数据库了,则从session中get()就可以获取该线程上次获取过的连接实例
以上转自 橄榄树& /mojiedao/blog/item/0ceeab99e7a0ad086f068c09.html
勒紧皮带向前冲 阅读(91) |
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
&at org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplicationContextUtils.java:86)
&at org.springframework.web.struts.DelegatingActionUtils.findRequiredWebApplicationContext(DelegatingActionUtils.java:148)
&at org.springframework.web.struts.DelegatingActionProxy.getWebApplicationContext(DelegatingActionProxy.java:146)
&at org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:125)
&at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:109)
&at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
&at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
&at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
&at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
&at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
&at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
&at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
&at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
&at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
&at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
&at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
&at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
&at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
&at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
&at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
&at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
&at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
&at java.lang.Thread.run(Unknown Source)
该错误表明你在web.xml中没配置spring环境
勒紧皮带向前冲 阅读(175) |
1、拷贝pager-taglib.jar包
2、在JSP页面中使用taglib指令引入pager-taglib标签库
3、使用pager-taglib标签库进行分页处理
pg:pager【这个标签用来设置分页的总体参数】重要参数说明:
&& &url:分页的链接根地址,pager标签会在这个链接的基础上附加分页参数
&& &items:总记录数,pager标签正是根据这个值来计算分页参数的
&& &maxPageItems:每页显示的行数,默认为10
&& &maxIndexPages:在循环输出页码的时候,最大输出多少个页码,默认是10
pg:first【第一页的标签】重要参数说明:
&& &export变量的意义:
&& &pageUrl - 分页链接URL地址(最重要的export参数)
&& &pageNumber - 页码
&& &firstItem - 首页第一行的索引值
&& &lastItem - 首页最后一行的索引值
pg:pre【上一页标签】重要参数说明:
&& &export变量的意义:
&& &pageUrl - 分页链接URL地址(最重要的export参数)
&& &pageNumber - 页码
&& &firstItem - 前页第一行的索引值
&& &lastItem - 前页最后一行的索引值
pg:next【下一页标签】重要参数说明:
&& &export变量的意义:
&& &pageUrl - 分页链接URL地址(最重要的export参数)
&& &pageNumber - 页码
&& &firstItem - 下页第一行的索引值
&& &lastItem - 下页最后一行的索引值
pg:last重要参数说明:
&& &export变量的意义:
&& &pageUrl - 分页链接URL地址(最重要的export参数)
&& &pageNumber - 页码
&& &firstItem - 尾页第一行的索引值
&& &lastItem - 尾页最后一行的索引值
pg:pages【这个标签用来循环输出页码信息】重要参数说明:
&& &export变量的意义:
&& &pageUrl - 分页链接URL地址(最重要的export参数)
&& &pageNumber - 页码
&& &firstItem - pageNumber这个页码指定的那一页的第一行的索引值
&& &lastItem - pageNumber这个页码指定的那一页的最后一行的索引值
pager-taglib-2.0下载
勒紧皮带向前冲 阅读(250) |
Log日志:主要用于记录程序运行的情况,以便于程序在部署之后的排错调试等等!也有利于将这些信息进行持久化(如果不将日志信息保存到文件或数据库,则信息便会丢失)
Java&Logging&API
需JDK1.4版本以上才能支持。
java.util.logging.*&包是JDK的日志记录API。
l&logger&&用来记录日志的对象
l&log&level&&日志等级:从FINEST到SEVERE级别
n&请参考JDK文档
l&handler&&日志输出处理器,即用来将格式化后的日志信息输出,J2SE提供了下面的处理器
n&StreamHandler&&将信息输出到一个OutputStream对象
n&ConsoleHandler&&将信息输出到控制台
n&FileHandler&&将信息输出到文件
n&还有Socket处理器和内存处理器等
l&Formater&&用来对日志信息进行格式化
n&SimpleFormater&&简单的格式化输出
n&XmlFormater&&Xml格式化输出
l&logManager&&日志管理器,它包含有那些被命名的logger,以及从配置文件中读取来的一些控制信息
og4j比JDK&Logging更加成熟。og4j是事实上&日志记录标准。
三大概念:logger/appender/layout
l&logger&&使用这个对象来进行输出
l&appender&&使用这个对象来定义输出到哪里去
l&layout&&使用这个对象来定义输出的格式
log4j的级别(level)
基本配置与使用
只需要将log4j.jar包放到类路径中,并且保证在类路径根目录下有一个log4j.properties文件即可。og4j.properties文件是对log4j的配置。&
在log4j.properties中,可以配置logger/appender/layout/level等内容。
l&了解如何配置logger
n&log4j.rootLogger&=&[级别],[使用哪个appender]
n&log4j.logger.[logger的名称]=[级别],[使用哪个appender]
l&了解如何配置appender
n&og4j.appender.[appender的名称]=[appender类名]
n&og4j.appender.[appender的名称].[appender的属性名]=[appender的属性值]
u&如:对于ConsoleAppender来说,可以配置它的target属性为System.out,而对于FileAppender来说,可以配置它的File属性为一个文件名
l&了解如何配置layout
n&og4j.appender.[appender的名称].layout=[layout类名]
n&og4j.appender.[appender的名称].layout.[layout的属性名]=[layout的属性值]
n&最常见的是PatternLayout
Commons&log
通用Log处理,它是一个接口抽象,底层的实现可以自动替换:
如果当前存在log4j,则使用log4j来实现
否则,使用JDK&LOG来实现
否则,使用其自身的简单实现
勒紧皮带向前冲 阅读(54) |
1 借助spring
web.xml中增加
&1&filter&&&&
&2&filter-name&Set&Character&Encoding&/filter-name&&&&
&3&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&&&&
&4&init-param&&&&
&5&&&&&param-name&encoding&/param-name&&&&
&6&&&&&param-value&utf8&/param-value&&&&
&7&/init-param&&&&
&8&/filter&&&&
&9&filter-mapping&&&&
<span style="color: #&&&&&filter-name&Set&Character&Encoding&/filter-name&&&&
<span style="color: #&&&&&url-pattern&/*&/url-pattern&&&&
<span style="color: #&/filter-mapping&
<span style="color: #
<span style="color: #
配置文件即可,如果不用spring怎么办呢?有办法啊
&1&filter&
&2&&&&filter-name&encodingFilter&/filter-name&
&3&&&&filter-class&mons.filter.ChineseFilter&/filter-class&
&4&&&&init-param&
&5&&&&&param-name&encoding&/param-name&
&6&&&&&param-value&UTF-8&/param-value&
&7&&&&/init-param&
&8&&&&init-param&
&9&&&&&param-name&forceEncoding&/param-name&
<span style="color: #&&&&&param-value&true&/param-value&
<span style="color: #&&&&/init-param&
<span style="color: #&/filter&
<span style="color: #&filter-mapping&
<span style="color: #&&&&filter-name&encodingFilter&/filter-name&
<span style="color: #&&&&url-pattern&/*&/url-pattern&
<span style="color: #&/filter-mapping&
<span style="color: #
<span style="color: #
配置文件,然后呢,转码的过滤器就要自己写咯
&1package&com.
&3import&java.io.IOE
&4import&javax.servlet.F
&5import&javax.servlet.FilterC
&6import&javax.servlet.FilterC
&7import&javax.servlet.ServletE
&8import&javax.servlet.ServletR
&9import&javax.servlet.ServletR
<span style="color: #import&javax.servlet.http.HttpS
<span style="color: #import&javax.servlet.http.HttpServletR
<span style="color: #import&javax.servlet.http.HttpServletR
<span style="color: #
<span style="color: #/**&*//**
<span style="color: #*&
<span style="color: #*&创建人:金鑫
<span style="color: #*&创建时间:&下午03:27:03
<span style="color: #*&类作用:中文转码过滤器
<span style="color: #*
<span style="color: #*/
<span style="color: #&#64;SuppressWarnings("serial")
<span style="color: #public&class&ChineseFilter&extends&HttpServlet&implements&Filter
<span style="color: #{
<span style="color: #private&FilterConfig&filterC
<span style="color: #
<span style="color: #public&void&init(FilterConfig&filterConfig)&throws&ServletException
<span style="color: #{
<span style="color: #&&&this.filterConfig&=&filterC
<span style="color: #}
<span style="color: #
<span style="color: #public&void&doFilter(ServletRequest&request,&ServletResponse&response,&FilterChain&filterChain)
<span style="color: #{
<span style="color: #&&&try
<span style="color: #&&&{
<span style="color: #&&&&String&encoding&=&filterConfig.getInitParameter("encoding");
<span style="color: #&&&&//从WEB.xml配置文件中取出参数,这样我们可以通过配置修改编码格式.
<span style="color: #&&&&request.setCharacterEncoding(encoding);//设置请求的编码格式
<span style="color: #
<span style="color: #&&&&filterChain.doFilter(request,&response);
<span style="color: #&&&}
<span style="color: #&&&catch&(ServletException&sx)
<span style="color: #&&&{
<span style="color: #&&&&filterConfig.getServletContext().log(sx.getMessage());
<span style="color: #&&&}
<span style="color: #&&&catch&(IOException&iox)
<span style="color: #&&&{
<span style="color: #&&&&filterConfig.getServletContext().log(iox.getMessage());
<span style="color: #&&&}
<span style="color: #}
<span style="color: #
<span style="color: #public&void&destroy()
<span style="color: #{
<span style="color: #}
<span style="color: #
<span style="color: #protected&void&doGet(HttpServletRequest&arg0,&HttpServletResponse&arg1)&throws&ServletException,&IOException
<span style="color: #{
<span style="color: #&&&super.doGet(arg0,&arg1);
<span style="color: #}
<span style="color: #
<span style="color: #protected&void&doPost(HttpServletRequest&arg0,&HttpServletResponse&arg1)&throws&ServletException,&IOException
<span style="color: #{
<span style="color: #&&&super.doPost(arg0,&arg1);
<span style="color: #}
<span style="color: #
<span style="color: #/**&*//**
<span style="color: #*&&#64;function&验证数据是否为空,如果为空则转换
<span style="color: #*&&#64;param&param
<span style="color: #*&&#64;return&String
<span style="color: #*/
<span style="color: #public&String&checkNull(String&param)
<span style="color: #{
<span style="color: #&&&if&(param&==&null&||&param.equals(""))
<span style="color: #&&&{
<span style="color: #&&&&return&"";
<span style="color: #&&&}
<span style="color: #&&&else
<span style="color: #&&&{
<span style="color: #&&&&return&
<span style="color: #&&&}
<span style="color: #}
<span style="color: #}
<span style="color: #
<span style="color: #
OK,完美解决掉啦。
其实解决乱码很简单的,就是通过过滤器来实现的,呵呵很简单吧?
本文来自&#8220;&#8221;url:/%C7%E0%B5%BA%BD%F0%F6%CE/blog/item/a726f59922ed57.html
勒紧皮带向前冲 阅读(126) |
getCurrentSession()与openSession()的区别?
&* 采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()
&& 创建的session则不会
&* 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()
&& 创建的session必须手动关闭
使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
&* 如果使用的是本地事务(jdbc事务)
&&property name="hibernate.current_session_context_class"&thread&/property&
&* 如果使用的是全局事务(jta事务)
&&property name="hibernate.current_session_context_class"&jta&/property&&
勒紧皮带向前冲 阅读(414) |
最近学习spring,看尚学堂的视屏在做AOP的一个demo调试时发现报
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userManager' defined in class path resource [applicationContext-bean.xml]: Initializ nested exception is java.lang.IllegalArgumentException: error at ::0 can't find referenced pointcut allAddMethod
在网上收了下,发现是spring的版本与java的版本不一致的原因。因此自己重新下了spring的包,运行通过。
勒紧皮带向前冲 阅读(243) |
1、struts国际化的配置
&* 在struts-config.xml文件中加入:&message-resources parameter="MessageResources" /&
2、提供不同版本的国际化资源文件,中文需要采用native2ascii转换成unicode
3、在jsp中采用&bean:message&标签来读取国际化消息文本
4、了解利用struts默认将locale放到session中的特性,完成采用编程的方式切换语言设置
&* 参见:ChangeLanguageAction.java
5、消息文本的国际化处理,共有三个步骤:
&* 创建国际化消息
&* 传递国际化消息
&* 显示国际化消息
如何创建国际化消息?
&理解ActionMessage和ActionMessages两个对象的区别
如何传递国际化消息?
&* 调用saveMessage()传递普通消息,调用saveErrors传递错误消息
如何显示国际化消息?
&通过&html:messages&标签显示消息(可以显示普通消息和错误消息)
&通过&html:errors&显示消息(只能显示错误消息)&
当将国际化资源文件放入到一个包时,在struts-config.xml文件中加入:&message-resources parameter="包名.MessageResources" /&
ChangeLanguageAction.java
&1import&java.util.L
&3import&javax.servlet.http.HttpServletR
&4import&javax.servlet.http.HttpServletR
&6import&org.apache.struts.G
&7import&org.apache.struts.action.A
&8import&org.apache.struts.action.ActionF
&9import&org.apache.struts.action.ActionF
<span style="color: #import&org.apache.struts.action.ActionM
<span style="color: #
<span style="color: #public&class&ChangeLanguageAction&extends&Action&{
<span style="color: #
<span style="color: #&&&&&#64;Override
<span style="color: #&&&&public&ActionForward&execute(ActionMapping&mapping,&ActionForm&form,
<span style="color: #&&&&&&&&&&&&HttpServletRequest&request,&HttpServletResponse&response)
<span style="color: #&&&&&&&&&&&&throws&Exception&{
<span style="color: #&&&&&&&&String&lang&=&request.getParameter("lang");
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&Locale&currentLocale&=&Locale.getDefault();&
<span style="color: #&&&&&&&&if&("zh".equals(lang))&{
<span style="color: #&&&&&&&&&&&&currentLocale&=&new&Locale("zh",&"CN");
<span style="color: #&&&&&&&&}else&if("en".equals(lang))&{
<span style="color: #&&&&&&&&&&&&currentLocale&=&new&Locale("en",&"US");
<span style="color: #&&&&&&&&}
<span style="color: #&&&&&&&&//request.getSession().setAttribute(Globals.LOCALE_KEY,&currentLocale);
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&this.setLocale(request,&currentLocale);
<span style="color: #&&&&&&&&return&mapping.findForward("index");
<span style="color: #&&&&}
<span style="color: #
<span style="color: #}
勒紧皮带向前冲 阅读(762) |
1、了解缺省Locale是由操作系统决定的,Locale是由语言和国家代码组成
2、国际化资源文件是由baseName+locale组成,如:MessageBundle_en_US.properties
baseName是任意合法的文件名
3、native2ascii命令的位置和用法
&* 位置:JAVA_HOME/bin
&* 使用native2ascii.exe& o.properties MessagesBundle_zh_CN.properties
&1package&com.bjsxt.i18n;
&3import&java.text.MessageF
&4import&java.util.L
&5import&java.util.ResourceB
&7public&class&I18nSample&{
&9&&&&public&static&void&main(String[]&args)&{
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&Locale&defaultLocale&=&Locale.getDefault();//获取默认的本地化
<span style="color: #&&&&&&&&System.out.println("default&country="&+&defaultLocale.getCountry());
<span style="color: #&&&&&&&&System.out.println("default&language="&+&defaultLocale.getLanguage());
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&//Locale&currentLocale&=&new&Locale("en",&"US");//通过初始化指定语言和国际本地化
<span style="color: #&&&&&&&&//Locale&currentLocale&=&new&Locale("zh",&"CN");
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&Locale&currentLocale&=&new&Locale("ja",&"JP");
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&ResourceBundle&rb&=&ResourceBundle.getBundle("res.MessagesBundle",&currentLocale);//获取本地化配置
<span style="color: #&&&&&&&&//System.out.println(rb.getString("k1"));//通过配置文件中的key显示
<span style="color: #&&&&&&&&//System.out.println(rb.getString("k2"));
<span style="color: #&&&&&&&&
<span style="color: #&&&&&&&&MessageFormat&mf&=&new&MessageFormat(rb.getString("k1"));//通过站位符显示指定的信息
<span style="color: #&&&&&&&&System.out.println(mf.format(new&Object[]{"Tom"}));//对占位符填充
<span style="color: #&&&&&&&&//System.out.println(mf.format(new&Object[]{"张三"}));
<span style="color: #&&&&}
<span style="color: #}
<span style="color: #
o.properties文件
<span style="color: #k1=你好,{<span style="color: #}
<span style="color: #k2=再见
缺省的properties文件MessagesBundle.properties
<span style="color: #k1=hello,{<span style="color: #}
<span style="color: #k2=good&bye
英文文件MessagesBundle_en_US.properties
<span style="color: #k1=hello,{<span style="color: #}
<span style="color: #k2=good&bye
中文文件MessagesBundle_zh_CN.properties
<span style="color: #k1=\u4f60\u597d,{<span style="color: #}
<span style="color: #k2=\u518d\u89c1
<span style="color: #
勒紧皮带向前冲 阅读(477) |
转自 /blog/225596
关键字: oracle的rownum原理和使用
Oracle的rownum原理和使用
在Oracle中,要按特定条件查询前N条记录,用个rownum就搞定了。
select * from emp where rownum &= 5
而且书上也告诫,不能对rownum用"&",这也就意味着,如果你想用
select * from emp where rownum & 5
则是失败的。要知道为什么会失败,则需要了解rownum背后的机制:
1 Oracle executes your query.
2 Oracle fetches the first row and calls it row number 1.
3 Have we gotten past row number meets the criteria? If no, then Oracle discards the row, If yes, then Oracle return the row.
4 Oracle fetches the next row and advances the row number (to 2, and then to 3, and then to 4, and so forth).
5 Go to step 3.
了解了原理,就知道rownum&不会成功,因为在第三步的时候查询出的行已经被丢弃,第四步查出来的rownum仍然是1,这样永远也不会成功。
同样道理,rownum如果单独用=,也只有在rownum=1时才有用。
对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。
举例说明:
例如表:student(学生)表,表结构为:
ID   &&& char(6)      --学号
name    VARCHAR2(10)   --姓名
create table student (ID char(6), name VARCHAR2(100));
insert into sale values('200001',&#8216;张一&#8217;);
insert into sale values('200002',&#8216;王二&#8217;);
insert into sale values('200003',&#8216;李三&#8217;);
insert into sale values('200004',&#8216;赵四&#8217;);
(1) rownum 对于等于某值的查询条件
如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信息,使用rownum=2结果查不到数据。因为rownum都是从1开始,但是1以上的自然数在rownum做等于判断是时认为都是false条件,所以无法查到rownum = n(n&1的自然数)。
SQL& select rownum,id,name from student where rownum=1;(可以用在限制返回记录条数的地方,保证不出错,如:隐式游标)
SQL& select rownum,id,name from student where rownum=1;
&&& ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
&&&&&&&& 1 200001 张一
SQL& select rownum,id,name from student where rownum =2;
&&& ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
(2)rownum对于大于某值的查询条件
&& 如果想找到从第二行记录以后的记录,当使用rownum&2是查不出记录的,原因是由于rownum是一个总是从1开始的伪列,Oracle 认为rownum& n(n&1的自然数)这种条件依旧不成立,所以查不到记录
SQL& select rownum,id,name from student where rownum &2;
ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
那如何才能找到第二行以后的记录呀。可以使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来,这是因为rownum不是某个表的列,如果不起别名的话,无法知道rownum是子查询的列还是主查询的列。
SQL&select * from(select rownum no ,id,name from student) where no&2;
&&&&&&& NO ID&&&& NAME
---------- ------ ---------------------------------------------------
&&&&&&&& 3 200003 李三
&&&&&&&& 4 200004 赵四
SQL& select * from(select rownum,id,name from student)where rownum&2;
&&& ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
(3)rownum对于小于某值的查询条件
如果想找到第三条记录以前的记录,当使用rownum&3是能得到两条记录的。显然rownum对于rownum&n((n&1的自然数)的条件认为是成立的,所以可以找到记录。
SQL& select rownum,id,name from student where rownum &3;
&&& ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
1 200001 张一
&&&&&&& 2 200002 王二
综上几种情况,可能有时候需要查询rownum在某区间的数据,那怎么办呀从上可以看出rownum对小于某值的查询条件是人为true的,rownum对于大于某值的查询条件直接认为是false的,但是可以间接的让它转为认为是true的。那就必须使用子查询。例如要查询rownum在第二行到第三行之间的数据,包括第二行和第三行数据,那么我们只能写以下语句,先让它返回小于等于三的记录行,然后在主查询中判断新的rownum的别名列大于等于二的记录行。但是这样的操作会在大数据集中影响速度。
SQL& select * from (select rownum no,id,name from student where rownum&=3 ) where no &=2;
&&&&&&& NO ID&&&& NAME
---------- ------ ---------------------------------------------------
&&&&&&&& 2 200002 王二
&&&&&&&& 3 200003 李三
(4)rownum和排序
Oracle中的rownum的是在取数据的时候产生的序号,所以想对指定排序的数据去指定的rowmun行数据就必须注意了。
SQL& select rownum ,id,name from s
&&& ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
&&&&&&&& 3 200003 李三
&&&&&&&& 2 200002 王二
&&&&&&&& 1 200001 张一
&&&&&&&& 4 200004 赵四
可以看出,rownum并不是按照name列来生成的序号。系统是按照记录插入时的顺序给记录排的号,rowid也是顺序分配的。为了解决这个问题,必须使用子查询
SQL& select rownum ,id,name from (select * from student order by name);
&&& ROWNUM ID&&&& NAME
---------- ------ ---------------------------------------------------
&&&&&&&& 1 200003 李三
&&&&&&&& 2 200002 王二
&&&&&&&& 3 200001 张一
&&&&&&&& 4 200004 赵四
这样就成了按name排序,并且用rownum标出正确序号(有小到大)
勒紧皮带向前冲 阅读(127) |
今天在写hql删除语句是想通过in来实现删除多条数据,但是发现hql语句的delete使用
where中使用in会报错Operand should contain %d column(s)"。
另外在设置了二级缓存时,如果策略为read-only时,通过hql的delete通过id删除一条记录时,可以。但如果是通过session.load/get通过id先将记录查询出来,在session.delete的话,会出错。将策略改为read-write。即可。
勒紧皮带向前冲 阅读(436) |
读取 Cookie 集合,遍历集合找到所需的 Cookie ,如果找到保存进 Session ,否则跳转到登录页面;
所需资源:
ReadCookieAction.java- 读取 Cookie 集合,如果找到对应 Cookie ,写入 Session ;
Login.jsp- 登录用页面;
LoginSubmit.java- 记录登录信息,并写入 Session ;
LoginOk.jsp- 读取 Session ,并显示。
读 Cookie 的方法 :
Cookie[] cookies = request.getCookies();
if (cookies != null ) {
&&&&for ( int i=0; i&cookies. length ; i++) {
&&&&&&&Cookie cookie = cookies[i];
&&&&&&&if (cookie.getName().equals( "userInfo" )) {
&&&&&&&&&&&String value = cookie.getValue();
&&&&&&&&&&&String[] info = value.split( "_" );
&&&&&&&&&&&UserForm userForm = new UserForm();
&&&&&&&&&&&userForm.setUserName(info[0]);
&&&&&&&&&&&userForm.setUserPassword(info[1]);
&&&&&&&&&&&request.getSession().setAttribute( "userForm" , userForm);
&&&&&&&&&&&return mapping.findForward( "ok" );
写 Cookie 的方法:
Cookie c = new Cookie( "userInfo" ,userForm.getUserName()+ "_" +userForm.getUserPassword());
c.setComment( "A test cookie" );
c.setMaxAge(120);
response.addCookie(c);
勒紧皮带向前冲 阅读(589) |
&&&& 摘要: &&1&%@&page&language="java"&contentType="text/&charset=GB18030"
&&2&&&&pageEncoding="GB18030"%&
&&3&%@&taglib...&&
勒紧皮带向前冲 阅读(132) |
在采用struts框架项目中,我们通常将模块分类,放在模块的文件夹中。这样在页面中访问时需加上文件目录名路径方可。但是我们可以通过在struts-config中配置Action时加上一个虚拟的目录名,使虚拟的目录名和模块的文件目录名同名,通过访问Action时就可自动进入该目录下,这样访问时就不需再文件目录路径了。
例:一个文件管理系统中有用户管理模块,将其放入指定的模块文件夹下,如图:
在struts-config.xml文件中配置Action的path,如图:
在页面访问时,设置连接如:&a href="user/list.do" title="请点击访问用户管理系统"&用户管理系统&/a&
当点击后,在地址栏中显示的地址如图:
这样就进入user目录下。再在访问改目录下的文件时,就不需加什么目录名了。
勒紧皮带向前冲 阅读(218) |

我要回帖

更多关于 qq2012透明皮肤下载 的文章

 

随机推荐