JAVA3D包功能介紹
摘要: 包 簡(jiǎn)介 ... 閱讀全文
我們知道,在子類(lèi)繼承父類(lèi)之后,如果子類(lèi)與父類(lèi)有同名的字段和方法,那么子類(lèi)中的子段會(huì)代替或隱藏父類(lèi)的子段,說(shuō)明子類(lèi)字段覆蓋了超類(lèi)字段,但可以通過(guò)super關(guān)鍵字去訪問(wèn)超類(lèi)字段。但是,在我們將子類(lèi)對(duì)象向超類(lèi)轉(zhuǎn)型的時(shí)候就會(huì)發(fā)生這個(gè)奇怪的現(xiàn)象,子類(lèi)對(duì)象居然可以看到父類(lèi)曾經(jīng)被覆蓋掉的字段!就正如下面例子中一樣:
關(guān)于超類(lèi)方法重載,子類(lèi)無(wú)法覆蓋其中的任意一個(gè)方法。
經(jīng)過(guò)一個(gè)星期的艱苦奮斗終于解決了這個(gè)問(wèn)題,特將經(jīng)驗(yàn)摘錄下來(lái)備忘。本文將解決以下的幾種亂碼問(wèn)題。
中文存入 mysql 數(shù)據(jù)表出現(xiàn)的亂碼,從 JSP 頁(yè)面讀取 mysql 中文數(shù)據(jù)出現(xiàn)亂碼,以及在 sell 環(huán)境下查看數(shù)據(jù)庫(kù)表中文數(shù)據(jù)出現(xiàn)亂碼。
linux平臺(tái):ubuntu6.10
mysql版本:5.0
瀏覽器:firefox2.0
為了解決中文亂碼的問(wèn)題首先就是要同一字符集,我采用utf-8。
第一步:安裝mysql后,修改配置文件/etc/mysql/my.cnf 找到相應(yīng)項(xiàng)并添加如下字段,如下所示:(注意是添加,配置文件中其他不相關(guān)的內(nèi)容下面并沒(méi)有列出來(lái))
[client]
default-character-set=utf8
[mysqld_safe]
default-character-set=utf8
[mysqld]
default-character-set=utf8
[mysql]
default-character-set=utf8
重新啟動(dòng)mysql服務(wù),進(jìn)入sell終端,進(jìn)入mysql的命令提示符下輸入如下指令:
mysql>show variables like '%char%';
如果出現(xiàn)的列表各項(xiàng)內(nèi)容和以下相同表明配置成功了,
+----------------------+---------------------
| Variable_name | Value
+-----------------------+---------------------
| character_set_client | utf8
| character_set_connection | utf8
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | /usr/share/mysql/charsets/
+---------------------+----------------------
第二步:在要發(fā)送中文或者要讀取中文的JSP頁(yè)面(最好所有頁(yè)面)都添加如下聲明:
<%@page pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=utf-8"%>
<% request.setCharacterEncoding("utf-8"); %>
在<head>標(biāo)簽對(duì)中添加如下:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
注意在servlet中對(duì)請(qǐng)求進(jìn)行響應(yīng)的方法中同樣要有:
response.setContentType("text/html;charset=utf-8");
第三步:(由于不明原因firefox發(fā)送的請(qǐng)求仍然是latin1的時(shí)候執(zhí)行這一步)
在將請(qǐng)求的參數(shù)插入數(shù)據(jù)庫(kù)之前還要再執(zhí)行一次轉(zhuǎn)碼(將latin1編碼轉(zhuǎn)換為utf-8),例如:
String utf8_str = new String( latin_str .getBytes("latin1"),"utf-8");
這一步可以寫(xiě)在一個(gè)過(guò)濾器中,不怕麻煩也可以在每一次在將請(qǐng)求數(shù)據(jù)插入之前都進(jìn)行一次轉(zhuǎn)碼。
另外:在連接數(shù)據(jù)庫(kù)的時(shí)候可以不用加上字符集參數(shù)了,直接用用戶名和密碼連接就可以了,如連接:
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/數(shù)據(jù)庫(kù)名","用戶名","密碼");
摘要: 時(shí)間過(guò)的快么?人的感覺(jué)而已,時(shí)間還是那樣地流過(guò),但人們卻有不同的感受,收獲的越多,感覺(jué)時(shí)間過(guò)的越慢,認(rèn)知的越少,時(shí)間也就過(guò)的越快。有三個(gè)月沒(méi)寫(xiě)點(diǎn)什么東西了,為了讓時(shí)間記住這三個(gè)月都發(fā)生了什么,趁現(xiàn)在還沒(méi)有忘記還是記錄下來(lái)罷,今天心情不好所以廢話也就多點(diǎn)。 ?????? 按時(shí)間順序一個(gè)一個(gè)來(lái)吧。 ... 閱讀全文
關(guān)于ubuntu與xp雙系統(tǒng)的安裝過(guò)程 :
配置ubuntu系統(tǒng)
與window局域網(wǎng)互聯(lián) 。
雙網(wǎng)卡與window實(shí)現(xiàn)共享上網(wǎng),ububtu做主機(jī)
其他注意 :
摘要: DTD和Schema簡(jiǎn)介
DTD和Shema用來(lái)定義將用來(lái)表示數(shù)據(jù)的元素
DTD語(yǔ)法
Schema簡(jiǎn)介
使用 XML 模式,您會(huì)有更多的能力來(lái)定義什么樣的 XML 文檔是有效的
閱讀全文
摘要: 《XML精要》
前言
開(kāi)始學(xué)XML也有個(gè)把星期了,前后看了幾本書(shū)關(guān)于XML基礎(chǔ)的書(shū),感覺(jué)講的甚是凌亂,有些書(shū)甚至干脆直接在網(wǎng)上COPY些資料東抄一點(diǎn)西抄一點(diǎn)最后就出版了(比如《XML語(yǔ)言及應(yīng)用---清華大學(xué)出版社》就干脆直接將網(wǎng)上的《XML初學(xué)進(jìn)階》抄下來(lái),將例子改改就完了)現(xiàn)在中國(guó)大學(xué)治學(xué)的態(tài)度可見(jiàn)一斑,直到本周發(fā)現(xiàn)了一個(gè)IBM的在線XML教程,該教程將XML所有的知識(shí)分解為一個(gè)個(gè)單獨(dú)的講座,每堂課還介紹了所需要的前提知識(shí)以及所要用到到參考資料,而且教程將知識(shí)講的非常的簡(jiǎn)練和精確,但可惜該教程是在2002年左右發(fā)表的了,在網(wǎng)上資源不是很好找而且比較散,所以我決定將我學(xué)的每趟講座的精要和我個(gè)人的讀書(shū)筆記整理出來(lái)形成一個(gè)連載,一來(lái)鞏固我的學(xué)習(xí),二來(lái)也可以供大家參考,取名《XML精要》。言歸正傳,那我就開(kāi)始嘍 閱讀全文
一:語(yǔ)法結(jié)構(gòu):
?????? 嵌入 *.js 文件 <script? language=”javScript” src=”url ”></script>
1.? 定義結(jié)構(gòu):
a)???????? 變量定義: var xx = “xx” 無(wú)須匹配類(lèi)型;
b)??????? 函數(shù)定義: function method(x , y){…} 參數(shù)同樣不用匹配類(lèi)型;
可以通過(guò) arguments.length 屬性來(lái)確定參數(shù)個(gè)數(shù)來(lái)創(chuàng)建不確定參數(shù)的函數(shù)如:
??? function noArguments(){
????????????? var len = arguments.length;
????????????? for(var i=0;i<len;i++){
????????????? ????????????? var fristArgument = noArguments.arguments[i];
??????????????????????????? ………// 通過(guò) ? noArguments.arguments[i] 獲得參數(shù);
}
}
c)??????? 對(duì)象定義:
定義方式一 ? function obj(x,y){
?????? this.x=x;
?????? this.y=y;
?????? this.m1=method1;
?????? this.m2=method2;
?????? function method1(){…..}
function method2(){…..}
}
定義方式二 ? function obj(x,y){
?????? this.x=x;
?????? this.y=y;
?????? this.m1=function method1(){……}
?????? this.m2=function method2(){……}
}
d)??????? 使用對(duì)象:
var obj1 = new obj();
var new_x = obj.x; // 是用屬性的方式 1
var new_y = obj[‘y’]; // 是用屬性的方式 2
二 內(nèi)置對(duì)象:
?????? a) 數(shù)組對(duì)象( Array ):
???????????????????? var newArry =new Arry(n);
???????????????????? var newArry =new Arry(“one”,”two”,”there”,”four”);
?????? 注:屬性和方法不再列出。
??????
b) 字符串對(duì)象( String ):
???????????????????? var newStr =”xxx”;
???????????????????? var newStr=new String(“xxx”);
?????? 對(duì)字符串的比較直接使用 ”= =”
??????
?????? c) 數(shù)學(xué)對(duì)象( Math )
????????????? 注意:使用數(shù)學(xué)對(duì)象時(shí)不需要?jiǎng)?chuàng)建該對(duì)象,直接使用即可;
????????????? 例如: Math.PI; // 屬性的使用
Math.abs(x);// 方法的使用;
d) 日期對(duì)象( Date )
??????? var date1 =new Date();
????????????? var date2 =new Date(“ 日期子串 ”);
????????????? var date3 =new Date( 年,月,日, [ 時(shí),分,秒,毫秒 ]);
????????????? var date4 =new Date( 毫秒 );
?
當(dāng)使用JSP頁(yè)面將中文數(shù)據(jù)添加到MySql數(shù)據(jù)庫(kù)中的時(shí)候發(fā)現(xiàn)變?yōu)閬y碼,或者從mysql中讀取中文的時(shí)候出現(xiàn)亂碼,這些問(wèn)題根源都是由于字符編碼不一致造成的。要知道病源是什么我們才能對(duì)癥下藥,所以我將問(wèn)題產(chǎn)生的過(guò)程簡(jiǎn)單描述一下(如有不對(duì)望高人賜教)
?我們以一個(gè)從form表單讀取數(shù)據(jù)并寫(xiě)入mysql數(shù)據(jù)庫(kù)的例子來(lái)講解;
HTML頁(yè)面參數(shù)—(以瀏覽器的編碼方式發(fā)送)—》JSP頁(yè)面—(以JSP定義的編碼方式被編譯)—》被JSP引擎編譯為*.class文件——》在JSP容器中運(yùn)行——》傳遞給Mysql數(shù)據(jù)庫(kù)—(以數(shù)據(jù)庫(kù)的編碼方式讀取數(shù)據(jù)并存儲(chǔ))—》讀取Mysql—(以數(shù)據(jù)庫(kù)的編碼方式讀取)—》JSP頁(yè)面接受后在瀏覽器中顯示(以瀏覽器編碼方式解碼顯示);
注意:這里的“瀏覽器編碼”“JSP頁(yè)面編碼”“JSP頁(yè)面輸出編碼”“JSP頁(yè)面輸入編碼”“數(shù)據(jù)庫(kù)的編碼”可能存在潛在的不一直,當(dāng)它們中的任意一個(gè)不相同的時(shí)候就會(huì)出現(xiàn)亂碼;就好像傳話游戲一樣,張三要把話傳給李四,李四把他聽(tīng)到的傳給王五,要讓王五知道張三說(shuō)的什么就需要他們?nèi)齻€(gè)人使用的相同語(yǔ)言,如果李四是個(gè)火星人,他當(dāng)然聽(tīng)不懂張三說(shuō)什么,然后他還不厚道的對(duì)王五說(shuō)火星話(亂碼),結(jié)果王五就只能聽(tīng)到亂碼了。(比喻比較汗~~^_^!)
好了,現(xiàn)在我們就依次把各個(gè)編碼方式改為相同就可以了;
//-------------------------瀏覽器編碼-----------------
<html>
? <head><meta http-equiv="Content-Type" content="text/html; charset=GB2312"></head>
</html>
//---------------------------JSP頁(yè)面-------------------
<%@ page pageEncoding="GB2312"%>??????????????????????????? //JSP頁(yè)面編碼:
<%@ page contentType="text/html;charset=gb2312"%>????//JSP頁(yè)面輸出編碼:
<% request.setCharacterEncoding("gb2312");?%>?????????????? //JSP頁(yè)面輸入編碼:
//------------------------MySql編碼-------------------
Connection connect = java.sql.DriverManager.getConnection(
"jdbc:mysql://localhost/mydb?user=登陸帳號(hào)&password=你的密碼&useUnicode=true&characterEncoding=gb2312");
//-------------------------------------------------------
注意:gb2312的寫(xiě)法(紅色部分) 在瀏覽器和數(shù)據(jù)庫(kù)中的寫(xiě)法要區(qū)分!
以上配置測(cè)試成功!(tomcat5.5+MySql5.0)
//另外看了網(wǎng)上的很多文章,比如通過(guò)函數(shù)轉(zhuǎn)碼啊~~改配置文件啊~~都不如這樣來(lái)的簡(jiǎn)便且成功率高!
推薦!
運(yùn)行環(huán)境 tomcat5.5+MySql5.0
編寫(xiě)一個(gè)簡(jiǎn)單的HTML表單:
<%@ %>指令塊。定義JSP文件的全局屬性,該指令不能作用動(dòng)態(tài)包含文件;
<%@ page
???
language="java"
???
extends="指定父類(lèi)"
???
import="導(dǎo)入JAVA類(lèi)" ??
???
session="false||true是否使用session對(duì)象"
???
buffer="定義緩沖區(qū)大小默認(rèn)8kb"
???
autoFlush="false||true自動(dòng)清除緩沖區(qū)"
???
isThreadSafe="false||true是否處理多請(qǐng)求"
???
info="定義相關(guān)信息.txt"
???
errorPage="url指定錯(cuò)誤頁(yè)"
???
contentType="編碼方式"
???
isErroPage="false||true是否為處理異常頁(yè)"
%>?
<%@ include
file
="URL指定要包含的另外一個(gè)JSP文件,*.jspf,*.htmlf"%>
<%@ taglib
uri
="" prefix=""%>
常用的JSP動(dòng)作元素
1
???
<jsp:useBean
???????
id="指定該bean對(duì)象名"
???????
scope="page||request||session||application bean的作用域"
???????
class="bean的class文件名,注意不能與beanName屬性一起使用"
???????
beanName="*.class或*.ser或bean包的名字,緊當(dāng)bean不存在于指定???????????? 的作用域時(shí)才使用 "
???????
type="與class或beanName一起使用,指定要實(shí)例化的bean的類(lèi)或接口"
???
>
???
<jsp:setProperty name="" property="" value="">實(shí)例話bean的初始特性值。
???
</jsp:/useBean>
2??
???
<jsp:setProperty
???????
name="對(duì)應(yīng)<jsp:useBean>中的id"
???????
property="*||bean屬性名 通過(guò)request參數(shù)設(shè)定bean屬性值"
???????
value="為bean屬性值指定值,需要指定bean屬性名"
???
/>
3??
???
<jsp:getProperty
???????
name="對(duì)應(yīng)<jsp:useBean>中的id"
???????
property="對(duì)應(yīng)想要獲得的屬性值名"
???
/>
4
???
<jsp:include>
???????
page="要包含文件的相對(duì)地址"
???????
flush="true||false 是否清空緩沖區(qū)"
???????
<jsp:param name="" value="" 可以傳遞一個(gè)參數(shù)/>
???
</jsp:include>
5
???
<jsp:forward page="URL或者一個(gè)表達(dá)式,用于將請(qǐng)求的頁(yè)面轉(zhuǎn)向其他頁(yè)面">
???????
<jsp:param name="" value="">可以傳遞參數(shù);
???
</jsp:forward>
6??
???
<jsp:param
name="" value="">
<%! %>
變量和方法聲明塊,要使用“;”結(jié)尾
<%? %>
腳本塊 可以聲明局部變量 但是不能定義方法!
<%= %>
表達(dá)式 注意內(nèi)部不能使用“;”