posted @ 2009-09-27 08:54 saobaolu| 編輯 收藏
現(xiàn)將一應(yīng)用貼出
FileUploadServlet.java
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.Iterator;
6 import java.util.List;
7
8 import javax.servlet.ServletException;
9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import org.apache.commons.fileupload.FileItem;
14 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
15 import org.apache.commons.fileupload.servlet.ServletFileUpload;
16
17 @SuppressWarnings("serial")
18 public class FileUploadServlet extends HttpServlet {
19 private String uploadPath = "D:\\temp"; // 上傳文件的目錄
20 private String tempPath = "d:\\temp\\buffer\\"; // 臨時(shí)文件目錄
21 File tempPathFile;
22
23 @SuppressWarnings("unchecked")
24 public void doPost(HttpServletRequest request, HttpServletResponse response)
25 throws IOException, ServletException {
26 try {
27 // Create a factory for disk-based file items
28 DiskFileItemFactory factory = new DiskFileItemFactory();
29
30 // Set factory constraints
31 factory.setSizeThreshold(4096); // 設(shè)置緩沖區(qū)大小,這里是4kb
32 factory.setRepository(tempPathFile);// 設(shè)置緩沖區(qū)目錄
33
34 // Create a new file upload handler
35 ServletFileUpload upload = new ServletFileUpload(factory);
36
37 // Set overall request size constraint
38 upload.setSizeMax(4194304); // 設(shè)置最大文件尺寸,這里是4MB
39
40 List<FileItem> items = upload.parseRequest(request);// 得到所有的文件
41 Iterator<FileItem> i = items.iterator();
42 while (i.hasNext()) {
43 FileItem fi = (FileItem) i.next();
44 String fileName = fi.getName();
45 if (fileName != null) {
46 File fullFile = new File(fi.getName());
47 File savedFile = new File(uploadPath, fullFile.getName());
48 fi.write(savedFile);
49 }
50 }
51 System.out.print("upload succeed");
52 } catch (Exception e) {
53 // 可以跳轉(zhuǎn)出錯(cuò)頁面
54 e.printStackTrace();
55 }
56 }
57
58 public void init() throws ServletException {
59 File uploadFile = new File(uploadPath);
60 if (!uploadFile.exists()) {
61 uploadFile.mkdirs();
62 }
63 File tempPathFile = new File(tempPath);
64 if (!tempPathFile.exists()) {
65 tempPathFile.mkdirs();
66 }
67 }
68 }
2 File:<br>
3 <input type="file" name="myfile"><br>
4 <br>
5 <input type="submit" name="submit" value="Commit">
6 </form>
一般來說,要使用apache fileUpload這個(gè)插件,一般要導(dǎo)入兩個(gè)jar包
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
如果這個(gè)io包沒有導(dǎo)入貌似便會(huì)報(bào)錯(cuò)。
點(diǎn)擊下載這兩個(gè)包的最新版。
/Files/chenglu/java/FileUpLoad.zip
posted @ 2009-09-23 12:08 saobaolu| 編輯 收藏
一般的,會(huì)報(bào)servlet錯(cuò)誤:
getOutputStream() has already been called for this response
但是這個(gè)程序不會(huì)報(bào)錯(cuò),原因是把里面的空格都刪除
-------------------------------------------------------------
在tomcat中jsp編譯成servlet之后在函數(shù)_jspService(HttpServletRequest request, HttpServletResponse response)的最后
有一段這樣的代碼
finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
這里是在釋放在jsp中使用的對(duì)象,會(huì)調(diào)用response.getWriter(),因?yàn)檫@個(gè)方法是和
response.getOutputStream()相沖突的!所以會(huì)出現(xiàn)以上這個(gè)異常。
然后當(dāng)然是要提出解決的辦法,其實(shí)挺簡(jiǎn)單的(并不是和某些朋友說的那樣--
將jsp內(nèi)的所有空格和回車符號(hào)所有都刪除掉),
在使用完輸出流以后調(diào)用以下兩行代碼即可:
out.clear();
out = pageContext.pushBody();
分割線內(nèi)為引用~

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

posted @ 2009-09-22 14:52 saobaolu| 編輯 收藏
只有DML如insert,delete,update,select才能執(zhí)行。
SQL語言共分為四大類:數(shù)據(jù)查詢語言DQL,數(shù)據(jù)操縱語言DML,
數(shù)據(jù)定義語言DDL,數(shù)據(jù)控制語言DCL
數(shù)據(jù)查詢語言DQL Q = Query
數(shù)據(jù)操縱語言DML M = Manipulation
事務(wù)控制語言TCL C = Control
數(shù)據(jù)定義語言DDL D = Definition
數(shù)據(jù)控制語言DCL(自動(dòng)提交事務(wù))
最近在用java搞數(shù)據(jù)庫(kù)的應(yīng)用,進(jìn)行create table操作的過程中一直有Exception異常。不懂。遂記錄此條筆記。
posted @ 2009-09-22 08:45 saobaolu| 編輯 收藏
<s:a xhref=""></s:a>-----超鏈接,類似于html里的<a></a>
<s:act
<s:actionerror/>-----如果act
<s:actionmessage/>-----如果act
<s:append></s:append>-----添加一個(gè)值到list,類似于list.add();
<s:autocompleter></s:autocompleter>-----自動(dòng)完成<s:combobox>標(biāo)簽的內(nèi)容,這個(gè)是ajax
B:
<s:bean name=""></s:bean>-----類似于struts1.x中的,JavaBean的值
C:
<s:checkbox></s:checkbox>-----復(fù)選框
<s:checkboxlist list=""></s:checkboxlist>-----多選框
<s:combobox list=""></s:combobox>-----下拉框
<s:component></s:component>-----圖像符號(hào)
D:
<s:date/>-----獲取日期格式
<s:datetimepicker></s:datetimepicker>-----日期輸入框
<s:debug></s:debug>-----顯示錯(cuò)誤信息
<s:div></s:div>-----表示一個(gè)塊,類似于html的<div></div>
<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----雙下拉框
E:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----這3個(gè)標(biāo)簽一起使用,表示條件判斷
F:
<s:fielderror></s:fielderror>-----顯示文件錯(cuò)誤信息
<s:file></s:file>-----文件上傳
<s:form act
G:
<s:generator separator="" val=""></s:generator>----和<s:iterator>標(biāo)簽一起使用
H:
<s:head/>-----在<head></head>里使用,表示頭文件結(jié)束
<s:hidden></s:hidden>-----隱藏值
I:
<s:i18n name=""></s:i18n>-----加載資源包到值堆棧
<s:include value=""></s:include>-----包含一個(gè)輸出,servlet或jsp頁面
<s:inputtransferselect list=""></s:inputtransferselect>-----獲取form的一個(gè)輸入
<s:iterator></s:iterator>-----用于遍歷集合
L:
<s:label></s:label>-----只讀的標(biāo)簽
M:
<s:merge></s:merge>-----合并遍歷集合出來的值
O:
<s:optgroup></s:optgroup>-----獲取標(biāo)簽組
<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右選擇框
P:
<s:param></s:param>-----為其他標(biāo)簽提供參數(shù)
<s:password></s:password>-----密碼輸入框
<s:property/>-----得到'value'的屬性
<s:push value=""></s:push>-----value的值push到棧中,從而使property標(biāo)簽的能夠獲取value的屬性
R:
<s:radio list=""></s:radio>-----單選按鈕
<s:reset></s:reset>-----重置按鈕
S:
<s:select list=""></s:select>-----單選框
<s:set name=""></s:set>-----賦予變量一個(gè)特定范圍內(nèi)的值
<s:sort comparator=""></s:sort>-----通過屬性給list分類
<s:submit></s:submit>-----提交按鈕
<s:subset></s:subset>-----為遍歷集合輸出子集
T:
<s:tabbedPanel id=""></s:tabbedPanel>-----表格框
<s:table></s:table>-----表格
<s:text name=""></s:text>-----I18n文本信息
<s:textarea></s:textarea>-----文本域輸入框
<s:textfield></s:textfield>-----文本輸入框
<s:token></s:token>-----攔截器
<s:tree></s:tree>-----樹
<s:treenode label=""></s:treenode>-----樹的結(jié)構(gòu)
U:
<s:updownselect list=""></s:updownselect>-----多選擇框
<s:url></s:url>-----創(chuàng)建url
posted @ 2009-09-16 07:58 saobaolu| 編輯 收藏
A)都是先進(jìn)先出
B)都是先進(jìn)后出
C)只允許在端點(diǎn)處插入和刪除元素
D)沒有共同點(diǎn)
2)已知二叉樹后序遍歷序列是dabec,中序遍歷序列是debac,它的前序遍歷序列是
A)acbed
B)decab
C)deabc
D)cedba
3)鏈表不具有的特點(diǎn)是 B
A)不必事先估計(jì)存儲(chǔ)空間
B)可隨機(jī)訪問任一元素
C)插入刪除不需要移動(dòng)元素
D)所需空間與線性表長(zhǎng)度成正比
5)為了提高測(cè)試的效率,應(yīng)該 D
A)隨機(jī)選取測(cè)試數(shù)據(jù)
B)取一切可能的輸入數(shù)據(jù)作為測(cè)試數(shù)據(jù)
C)在完成編碼以后制定軟件的測(cè)試計(jì)劃
D)集中對(duì)付那些錯(cuò)誤群集的程序
算法的時(shí)間復(fù)雜度是指算法執(zhí)行過程中所需要的基本運(yùn)算次數(shù)
posted @ 2009-09-12 21:34 saobaolu| 編輯 收藏
在這里,你可以下載到中文語言版本,不過一位Python大牛告訴我,讀英文原版的更好。
這位Python大牛是一位受人尊敬的創(chuàng)業(yè)者 藍(lán)弩的創(chuàng)始人之一。 http://www.lanoo.cc
posted @ 2009-09-11 10:28 saobaolu| 編輯 收藏
posted @ 2009-09-11 08:51 saobaolu| 編輯 收藏
棧是一種數(shù)據(jù)結(jié)構(gòu),它按照先進(jìn)后出的原則存儲(chǔ)數(shù)據(jù),先進(jìn)入的數(shù)據(jù)被壓入棧底,最后的數(shù)據(jù)在棧頂,需要讀數(shù)據(jù)的時(shí)候從棧頂開始彈出數(shù)據(jù)(最后一個(gè)數(shù)據(jù)被第一個(gè)讀出來)。
棧是只能在某一端插入和刪除的特殊線性表。用桶堆積物品,先堆進(jìn)來的壓在底下,隨后一件一件往堆。取走時(shí),只能從上面一件一件取。堆和取都在頂部進(jìn)行,底部一般是不動(dòng)的。
棧就是一種類似桶堆積物品的數(shù)據(jù)結(jié)構(gòu),進(jìn)行刪除和插入的一端稱棧頂,另一堆稱棧底。插入一般稱為進(jìn)棧(PUSH),刪除則稱為退棧(POP)。 棧也稱為后進(jìn)先出表(LIFO表)。
1、進(jìn)棧(PUSH)算法
①若TOP≥n時(shí),則給出溢出信息,作出錯(cuò)處理(進(jìn)棧前首先檢查棧是否已滿,滿則溢出;不滿則作②);
②置TOP=TOP+1(棧指針加1,指向進(jìn)棧地址);
③S(TOP)=X,結(jié)束(X為新進(jìn)棧的元素);
2、退棧(POP)算法
①若TOP≤0,則給出下溢信息,作出錯(cuò)處理(退棧前先檢查是否已為空棧, 空則下溢;不空則作②);
②X=S(SOP),(退棧后的元素賦給X);
③TOP=TOP-1,結(jié)束(棧指針減1,指向棧頂)。
棧可以用來在函數(shù)調(diào)用的時(shí)候存儲(chǔ)斷點(diǎn),做遞歸時(shí)要用到棧!
posted @ 2009-08-03 18:19 saobaolu| 編輯 收藏
posted @ 2009-07-30 21:44 saobaolu| 編輯 收藏
http://www.oracle.com/technology/global/cn/tech/java/ajax.html
IBM有這些教程 oracle也有咯~呵呵
posted @ 2009-07-20 13:52 saobaolu| 編輯 收藏
當(dāng)Java程序違反了Java的語義規(guī)則時(shí),Java虛擬機(jī)就會(huì)將發(fā)生的錯(cuò)誤表示為一個(gè)異常。違反語義規(guī)則包括2種情況。一種是Java類庫(kù)內(nèi)置的語義。例如數(shù)組下標(biāo)越界,會(huì)引發(fā)IndexOutOfBoundsException;訪問null的對(duì)象時(shí)會(huì)引發(fā)NullPointerException。另一種情況就是Java允許程序員擴(kuò)展這種語義檢查,程序員可以創(chuàng)建自己的異常,并自由選擇在何時(shí)用throw關(guān)鍵字引發(fā)異常。所有的異常都是java.lang.Thowable的子類。
2. Java的接口和C++的虛類的相同和不同處。
由于Java不支持多繼承,而有可能某個(gè)類或?qū)ο笠褂梅謩e在幾個(gè)類或?qū)ο罄锩娴姆椒ɑ驅(qū)傩裕F(xiàn)有的單繼承機(jī)制就不能滿足要求。與繼承相比,接口有更高的靈活性,因?yàn)榻涌谥袥]有任何實(shí)現(xiàn)代碼。當(dāng)一個(gè)類實(shí)現(xiàn)了接口以后,該類要實(shí)現(xiàn)接口里面所有的方法和屬性,接口里面的屬性在默認(rèn)狀態(tài)下面都是public static,所有方法默認(rèn)情況下是public.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。
3. 垃圾回收的優(yōu)點(diǎn)和原理。并考慮2種回收機(jī)制。
Java語言中一個(gè)顯著的特點(diǎn)就是引入了垃圾回收機(jī)制,使c++程序員最頭疼的內(nèi)存的問題迎刃而解,它使得Java程序員在編寫程序的時(shí)候不再需要考慮內(nèi)存管理。由于有個(gè)垃圾回收機(jī)制,Java中的對(duì)象不再有“作用域”的概念,只有對(duì)象的引用才有“作用域”。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個(gè)單獨(dú)的低級(jí)別的線程運(yùn)行,不可預(yù)知的情況下對(duì)內(nèi)存堆中已經(jīng)死亡的或者長(zhǎng)時(shí)間沒有使用的對(duì)象進(jìn)行清除和回收,程序員不能實(shí)時(shí)的調(diào)用垃圾回收器對(duì)某個(gè)對(duì)象或所有對(duì)象進(jìn)行垃圾回收。回收機(jī)制有分代復(fù)制垃圾回收和標(biāo)記垃圾回收,增量垃圾回收。
4.線程同步的方法。
wait():使一個(gè)線程處于等待狀態(tài),并且釋放所持有的對(duì)象的lock。
sleep():使一個(gè)正在運(yùn)行的線程處于睡眠狀態(tài),是一個(gè)靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException異常。
notify():喚醒一個(gè)處于等待狀態(tài)的線程,注意的是在調(diào)用此方法的時(shí)候,并不能確切地喚醒某一個(gè)等待狀態(tài)的線程,而是由JVM確定喚醒哪個(gè)線程,而且不是按優(yōu)先級(jí)。
Allnotity():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個(gè)對(duì)象的鎖,而是讓它們競(jìng)爭(zhēng)。
5. Error與Exception有什么區(qū)別?
Error表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,
Exception表示需要捕捉或者需要程序進(jìn)行處理的異常。
6. 在java中一個(gè)類被聲明為final類型,表示了什么意思?
表示該類不能被繼承,是頂級(jí)類。
7. heap和stack有什么區(qū)別。
棧是一種線形集合,其添加和刪除元素的操作應(yīng)在同一段完成。棧按照后進(jìn)先出的方式進(jìn)行處理。堆是棧的一個(gè)組成元素。
8. 談?wù)刦inal, finally, finalize的區(qū)別。
final—修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥胁槐桓淖儭1宦暶鳛閒inal的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
finally—異常處理時(shí)提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的 catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入 finally 塊(如果有的話)。
finalize—方法名。Java 技術(shù)允許使用 finalize() 方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在 Object類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。
9. Anonymous Inner Class (匿名內(nèi)部類)
是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?
匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能extends(繼承) 其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。
10. Static Nested Class 和 Inner Class的不同
Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內(nèi)部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。
注: 靜態(tài)內(nèi)部類(Inner Class)意味著1創(chuàng)建一個(gè)static內(nèi)部類的對(duì)象,不需要一個(gè)外部類對(duì)象,2不能從一個(gè)static內(nèi)部類的一個(gè)對(duì)象訪問一個(gè)外部類對(duì)象。
posted @ 2009-07-13 20:14 saobaolu| 編輯 收藏
1.首頁flash圖片輪播源文件
/Files/chenglu/flash-index.rar
2.圖片局部放大
/Files/chenglu/tjpzoom.zip
3.Tab內(nèi)容切換
/Files/chenglu/ajaxtabscontent.rar
4.Jquery報(bào)紙?zhí)匦?br /> /Files/chenglu/jquerynewspager.rar
posted @ 2009-07-04 09:17 saobaolu| 編輯 收藏

2

posted @ 2009-06-14 18:07 saobaolu| 編輯 收藏
一個(gè)人如果不懂得處世的藝術(shù),尤其是處世沒有一點(diǎn)“心機(jī)”,是無法獲得成功的。要處理好與同事、朋友、家人等一切社會(huì)關(guān)系,在如今越來越復(fù)雜的社會(huì)里,要想更好地生存和發(fā)展,必須要學(xué)會(huì)處世之道。處世厚黑學(xué)是一種智慧和謀略,是助我們通往成功之路的向?qū)А?
1、要懂得適度偽裝自己,不能太單純。
要想保護(hù)自己,發(fā)展自己,要懂得適度偽裝自己。
2、做人要留退路,留余地。
做人難,難做人。很多時(shí)候,不僅要給別人留有余地,還要給自己鋪個(gè)臺(tái)階。
3、嘴不遮掩難成大事。
有些人話說得絕對(duì),信誓旦旦,又嘴不遮掩,處處許諾,結(jié)果能做到的很少,泡湯的很多,最終累得自己半死,還遭人討厭,真是得力不討好,費(fèi)心還傷神。
4、成熟而不世故。
成熟的人,做人沉著穩(wěn)當(dāng),人人想與之交往,這樣的人在社會(huì)上做人也左右逢源,如魚得水;而世故的人,本以為占了便宜,把社會(huì)上各種算計(jì)運(yùn)用得自以為是,結(jié)果,人人對(duì)你敬而遠(yuǎn)之。
5、想得開活得不累。
寵辱不驚,看庭前花開花落;去留無意,望天上云卷云舒。心態(tài)決定一切,有好的心態(tài)就活得瀟灑不累。
6、沒事不惹事,來事不怕事。
一般來說,自然形成的都是圓的,人為修飾的都是方的,因此,方為動(dòng),圓為靜,方是原則,圓是機(jī)變,方是以不變應(yīng)萬變,圓是以萬變應(yīng)不變。外表要圓(大智若愚),內(nèi)心要方(清靜明志),對(duì)己要方(嚴(yán)以律己),對(duì)人要圓(寬以待人)。
7、防挨朋友刀。
處世最怕的是挨朋友插的刀。因?yàn)槭桥笥眩悴蛔⒁馑驗(yàn)槭桥笥眩悴环婪端驗(yàn)槭桥笥眩私饽愕闹w命脈,所以給你那一刀插得最深,因?yàn)槭桥笥眩艜?huì)真懂得背后下手。
8、用勢(shì)利眼尋找可靠伙伴。
有點(diǎn)勢(shì)利眼可謂是善識(shí)時(shí)務(wù),不懂得勢(shì)利的人,只能說自欺欺人,表面哽氣,其實(shí)糊涂。人生當(dāng)中,免不了與他人合作,有“勢(shì)利眼”的人,能選擇高能耐有前途的人,自己自然也沾光。
9、放下面子來做人。
只要臉不太厚,心不太黑,做人就能做得完善,做事就能做得完美。
posted @ 2009-06-11 15:57 saobaolu| 編輯 收藏