天若有情

到教堂忏悔,愿主安抚我罪恶的心灵......
posts - 4, comments - 35, trackbacks - 0, articles - 24

2008年7月31日

 

最近感觉了一下学习的速度,总体的体会就是无论做什么事都 要有成功的体会,有了一次成功的体会,以后成功便会容易很多,体会是很重要的,有了体会,就不会感觉陌生,就知道该怎么去做,如何去做。

另外,我们所学的一切,最终的一个衡量标准,就是留在我们大脑里的东西到底有多少,什么工具都不要,我们就光凭自己,看看能有多少东西能留在我们的大脑里。这时我们想到的东西,在我们大脑里的东西,才是真正属于我们的东西,才是我们真正学会了的东西,其它的,都不是,无论你看了多少书,看做了多少实验,都是统统的扯蛋。只有在什么都不用的情况下,在大脑里真正留下的东西都是我们学到的东西。其它的都不是。

也许,到这个时候,你就会有一种感觉,那就是你学到的东西,最终都转换成一种东西―――意识,此时,似乎你的大脑里什么也没有,什么也说不上来,但一遇到问题,你的大脑便会主动联想,生出解决的办法,此时你的大脑中的知识,似乎有一种此时无声胜有声的感觉了。

我曾向一位学得很好的同学请教关于MVC模式方面的知识,我问他:“给讲讲MVC吧?”当时他的第一反应是:“MVC?也没什么好说的!”。于是我就问了他关于MVCStruts的问题,这里的他回答却完会不同,不仅回答了什么是MVC,同时还讲清楚了其中的很多细节。

我想学习的最简单,同是也是最快速的方式就是:

先大体的理解,然后就是把东西放在自己的脑中,简单来说就是记忆。这个记忆,有很多种方式,比如英语,是靠说写来快速记忆,而计算机就要靠多动手来让你记住知识,所以,多动手,多实验是很必要的,也是让你在很短的时间学会知道的方法。

在大概理解的基础上,立即动手,把它放在你的大脑中。然后再应用,反复。直至灵活的应用。这就是学习计算机最好的方法。

那么如何做到快速的大概理解呢?最好的一个方法就是类比,能将学过的东西用我们的话、用现实生活中的通俗易懂的实例说出来,这就是理解了。比如Java模式中的工厂模式,怎么说也说不明白,但是如果用女娲造人也解释,就会明白很多。

理解了以后,就是要动手去做,学习知识,理解只是学习一的半,况且随着时间的推移,你的理解会慢慢的被记忆所谈化,到时候本来学到的东西,后来也变得和没有学过一样,其最后也就只能算是在白白浪费时间。所以,只有真正动手去做出来才,甚至用学到的知识去解决新的问题,才算是真正的学会了知识。

学习最根本的目的就是,将你要学习的知识转换成你的意识。意识这东西。有时候也许只能自己去体会吧,正如,学完JavaJavaEE的内容,你会在你的思想中一下子反应出JavaSEJSPServletJDBCHibernateStrutsMVC等的联系,但却永远都不能用一句话来说明这些东西之间的联系。

快速学习要掌握的另一条规律就是要掌握记忆的规律――这是掌握知识的捷径。

posted @ 2008-08-21 22:39 freedoom 阅读(1765) | 评论 (3)编辑 收藏

在J2EE中,乱码问题是一个令人头痛的问题,本文就J2EE中的乱码做一个小结,以求抛砖引玉。

首先,我们知道产生乱码的原因是因为不同的编码造成的,这就好比你和一个印地安人在说话,假设你完全不懂印第安语,而对方也不懂汉语,那你们所说的话,就会在对方的脑子里产生一个个的问号。那么怎么办呢?通常的做法,就是找一个翻译,在Java中,对编码也是这样的,来看一个例子
方法一:

1<html>
2<body>
3    <form action="demo02.jsp" method="post">
4        用户名:<input type="text" name="uname">
5            <input type="submit" value="go">
6    </form>
7</body>
8</html>
这是一个简单的提交页面Deom01.html

<%@page contentType="text/html;charset=gbk" %>
<html>
<body>

<h1>输入内容为:<%=request.getParameter("uname")%></h1>
</body>
</html>
     
以上是一个对Deom01.html进行处理的JSP页面,其作用是为了取出Demo01的Uname值并显示,

输入内容为:??
      
       当我们在页面Deom01中输入中文并提交好,发现提交后的显示内容为“?”号,这里,就相当于上面的不同语种的人说话一样,产生了“?”号,那么解决的办法,就是通过转换来解决这一问题:

<%@page contentType="text/html;charset=gbk" %>
<html>
<body>
<% 
    
/*String name=request.getParmaeter("uname");//取得uname的值
    byte[] b=name.getBytes("ISO8859-1");//将取得的值转换为Byte数组
    name=new String(b);//将Byte数组重新转换为所需要的格式
    
*/

    String  name
=new String(request.getParameter("uname").getBytes("ISO8859-1"));//这里等同于上面
%>
<h1>输入内容为:<%=uname%></h1>
<%-- <h1>输入内容为:<%=request.getParameter("uname")%></h1> --%>
</body>
</html>


以上通过将取得的uname值转换为Byte数组,再将Byte数组转换为所需要的格式来进行转换,从而解决了乱码问题。

方法二:
设置统一的字符编码
在API中的Javax.servlet.http包下,有一个HttpServletRequest接口中,有这样一个方法
public void setCharacterEncoding(String env)
                 
throws
 UnsupportedEncoding

其作用是设置统一的字符编码
<%@page contentType="text/html;charset=gbk" %>
<html>
<body>
<% 
    
/*String name=request.getParmaeter("uname");//取得uname的值
    byte[] b=name.getBytes("ISO8859-1");//将取得的值转换为Byte数组
    name=new String(b);//将Byte数组重新转换为所需要的格式
    
*/

    
//String  name=new String(request.getParameter("uname").getBytes("ISO8859-1"));//这里等同于上面
    request.setCharacterEncoding("GBK");
    String name=request.getParameter("uname");
%>

<h1>输入内容为:<%=name%></h1>
<%-- <h1>输入内容为:<%=request.getParameter("uname")%></h1> --%>
</body>
</html>


更改后运行,发现结果和以前的一样。

(注:GBK的范围大于GB2312 ,GB2312仅指简体中文,而GBK不仅指简体中文,还包含了繁体中文等中文。)


以上内容参考李兴华老师教程编写,并引用了其列程,在此感谢李兴华老师制作的视频,给了我很大帮助(本人无意作广告,此举真诚感谢李兴华老师的视频,另外,也向初学JAVA的朋友推荐他的视频,还有那些准备上JAVA培训班的同学,希望你们在上培训班之前好好看看李老师的教程,本人是在一家知名培训机构里接受过培训的。)

posted @ 2008-07-31 01:13 freedoom 阅读(1786) | 评论 (2)编辑 收藏