2000年10月份出來
Servlet API 2.3中最重大的改變是增加了filters
servlet 2.4 新增功能:
2003年11月份出來
1、web.xml DTD改用了XML Schema;
Servlet 2.3之前的版本使用DTD作為部署描述文件的定義,其web.xml的格式為如下所示:
<?xml version="1.0" encoding="IS0-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//sunMicrosystems,Inc.//DTD WebApplication 2.3f//EN"
"
<web-app>
.......
</web-app>
Servlet 2.4版首次使用XML Schema定義作為部署描述文件,這樣Web容器更容易校驗web.xml語法。同時XML Schema提供了更好的擴充性,其web.xml中的格式如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="
xmlns:workflow="
xmins:xsi="
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
.........
</web-app>
注意: 改為Schema后主要加強了兩項功能:
(1) 元素不依照順序設定
(2) 更強大的驗證機制
主要體現在:
a.檢查元素的值是否為合法的值
b.檢查元素的值是否為合法的文字字符或者數字字符
c.檢查Servlet,Filter,EJB-ref等等元素的名稱是否唯一
2.新增Filter四種設定:REQUEST、FORWARD、INCLUDE和ERROR。
3.新增Request Listener、Event和Request Attribute Listener、Enent。
4.取消SingleThreadModel接口。當Servlet實現SingleThreadModel接口時,它能確保同時間內,只能有一個thread執行此Servlet。
5.<welcome-file-list>可以為Servlet。
6.ServletRequest接口新增一些方法。
public String getLocalName()
public String getLocalAddr()
public int getLocalPort()
public int getRemotePort()
Servlet 2.5的新特征
2005年9月發布Servlet 2.5
Servlet2.5一些變化的介紹:
1) 基于最新的J2SE 5.0開發的。
2) 支持annotations 。
3) web.xml中的幾處配置更加方便。
4) 去除了少數的限制。
5) 優化了一些實例
servlet的各個版本對監聽器的變化有:
(1)servlet2.2和jsp1.1
新增Listener:HttpSessionBindingListener
新增Event: HttpSessionBindingEvent
(2)servlet2.3和jsp1.2
新增Listener:ServletContextListener,ServletContextAttributeListener
,HttpSessionListener,HttpSessionActivationListener,HttpSessionAttributeListener
新增Event: ServletContextEvent,ServletContextAttributeEvent,HttpSessionEvent
(3)servlet2.4和jsp2.0
新增Listener:ServletRequestListener,ServletRequestAttribureListener
新增Event: ServletRequestEvent,ServletRequestAttributeEvent
對于直接通過在ie下打開文件,比如word(xml也是一樣的),默認weblogic訪問xxx.doc時返回如下的響應,沒有contentType
HTTP/1.1 200 OK
Date: Thu, 25 Oct 2007 07:22:26 GMT
Content-Length: 10752
Last-Modified: Thu, 25 Oct 2007 07:20:04 GMT
Accept-Ranges: bytes
所以也需要在web.xml加入mime-type才行
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
這時weblogic的響應信息:
200 OK
Date: Thu, 25 Oct 2007 07:28:38 GMT
Content-Length: 10752
Content-Type: application/msword
Last-Modified: Thu, 25 Oct 2007 07:20:04 GMT
Accept-Ranges: bytes
這樣可以通過提示用戶打開還是保存,而不是一堆亂碼了。
對于下載的需求,可以在servlet設置response的header
response.setHeader("Content-Disposition","attachment;filename=xxx.xxx");
關于Content-Disposition的說明:http://www.ietf.org/rfc/rfc2183.txt
界面可以通過<a href="download?file=xxx">下載</a>實現
The name of the manifest file must match the name of the executable. In the case of eclipse, the executable is javaw.exe and the manifest file must have the name javaw.exe.manifest. The manifest file must be in the jre\bin folder for the VM you use to launch Eclipse. Note: the eclipse.exe executable does not launch Eclipse; eclipse.exe displays a splash screen and then invokes the Java VM.
Note: As of SWT 3.2, the manifest file is no longer needed.
很不錯的中文Opencms的blog,以前下過opencms,想好好研究一下,畢竟自己是做這個的,但裝上后不知如何來用,汗。這個blog講解的比較清楚,有時間在好好研究一下這個opencms。
jdbc連接代碼為:
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");?????
Connection conn = DriverManager.getConnection(url,user,pwd);
jdbc driver在db2/sqllib/java12/db2java.zip中
copy到過來改成db2java.jar
?
? set JAVA_VENDOR=SUN
? set JAVA_HOME=d:\bea\jdk142_11
??
出錯weblogic版本:8。1
?
1.基本結構
CREATE OR REPLACE PROCEDURE 存儲過程名字
(
??? 參數1 IN NUMBER,
??? 參數2 IN NUMBER
) IS
變量1 INTEGER :=0;
變量2 DATE;
BEGIN
END 存儲過程名字
2.SELECT INTO STATEMENT
? 將select查詢的結果存入到變量中,可以同時將多個列存儲多個變量中,必須有一條
? 記錄,否則拋出異常(如果沒有記錄拋出NO_DATA_FOUND)
? 例子:
? BEGIN
? SELECT col1,col2 into 變量1,變量2 FROM typestruct where xxx;
? EXCEPTION
? WHEN NO_DATA_FOUND THEN
???? ?xxxx;
? END;
? ...
3.IF 判斷
? IF V_TEST=1 THEN
??? BEGIN
?????? do something
??? END;
? END IF;
4.while 循環
? WHILE V_TEST=1 LOOP
? BEGIN
?XXXX
? END;
? END LOOP;
5.變量賦值
? V_TEST := 123;
6.用for in 使用cursor
? ...
? IS
? CURSOR cur IS SELECT * FROM xxx;
? BEGIN
?FOR cur_result in cur LOOP
??BEGIN
???V_SUM :=cur_result.列名1+cur_result.列名2
??END;
?END LOOP;
? END;
7.帶參數的cursor
? CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
? OPEN C_USER(變量值);
? LOOP
?FETCH C_USER INTO V_NAME;
?EXIT FETCH C_USER%NOTFOUND;
??? do something
? END LOOP;
? CLOSE C_USER;
8.用pl/sql developer debug
? 連接數據庫后建立一個Test WINDOW
? 在窗口輸入調用SP的代碼,F9開始debug,CTRL+N單步調試
??
那么就在%ECLIPSE_HOME%\PlugInsNew\目錄下建立XYZ目錄,目錄里面是eclipse目錄,eclipse目錄包含有features與plugins兩個子目錄;結構如下圖所示:
?? 1. 把下載的新插件的文件放在以下相應目錄中
????? %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
????? %ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
?? 2. 建立相關的.link的文件
????? 然后在%ECLIPSE_HOME%\links目錄里建立一個XYZ.link的文件
????? 內容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行這樣的路徑指示而已。
????? 這樣,如果你下載了多個插件就可以如法炮制建立多個Link文件,想加載哪個插件就把哪個插件的Link文件放到%ECLIPSE_HOME%\links的目錄中即可,使用與管理都很方便,建議千萬不要放在默認的安裝目錄中;
????? 如果你的%ECLIPSE_HOME%與此不同,請修改XYZ.link文件里的路徑
?? 3. 刪除,關閉Eclipse
????? 刪除%ECLIPSE_HOME%\links\XYZ.link文件即可
????? 刪除%ECLIPSE_HOME%\PlugInsNew\XYZ整個目錄及文件
?? 4. 重新啟動Eclipse即可
?
原文:http://dev2dev.bea.com.cn/bbsdoc/20060126189.html