2000年10月份出來(lái)
Servlet API 2.3中最重大的改變是增加了filters
servlet 2.4 新增功能:
2003年11月份出來(lái)
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容器更容易校驗(yàn)web.xml語(yǔ)法。同時(shí)XML Schema提供了更好的擴(kuò)充性,其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后主要加強(qiáng)了兩項(xiàng)功能:
(1) 元素不依照順序設(shè)定
(2) 更強(qiáng)大的驗(yàn)證機(jī)制
主要體現(xiàn)在:
a.檢查元素的值是否為合法的值
b.檢查元素的值是否為合法的文字字符或者數(shù)字字符
c.檢查Servlet,Filter,EJB-ref等等元素的名稱是否唯一
2.新增Filter四種設(shè)定:REQUEST、FORWARD、INCLUDE和ERROR。
3.新增Request Listener、Event和Request Attribute Listener、Enent。
4.取消SingleThreadModel接口。當(dāng)Servlet實(shí)現(xiàn)SingleThreadModel接口時(shí),它能確保同時(shí)間內(nèi),只能有一個(gè)thread執(zhí)行此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月發(fā)布Servlet 2.5
Servlet2.5一些變化的介紹:
1) 基于最新的J2SE 5.0開(kāi)發(fā)的。
2) 支持annotations 。
3) web.xml中的幾處配置更加方便。
4) 去除了少數(shù)的限制。
5) 優(yōu)化了一些實(shí)例
servlet的各個(gè)版本對(duì)監(jiān)聽(tīng)器的變化有:
(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
對(duì)于直接通過(guò)在ie下打開(kāi)文件,比如word(xml也是一樣的),默認(rèn)weblogic訪問(wèn)xxx.doc時(shí)返回如下的響應(yīng),沒(méi)有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>
這時(shí)weblogic的響應(yīng)信息:
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
這樣可以通過(guò)提示用戶打開(kāi)還是保存,而不是一堆亂碼了。
對(duì)于下載的需求,可以在servlet設(shè)置response的header
response.setHeader("Content-Disposition","attachment;filename=xxx.xxx");
關(guān)于Content-Disposition的說(shuō)明:http://www.ietf.org/rfc/rfc2183.txt
界面可以通過(guò)<a href="download?file=xxx">下載</a>實(shí)現(xiàn)
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.
很不錯(cuò)的中文Opencms的blog,以前下過(guò)opencms,想好好研究一下,畢竟自己是做這個(gè)的,但裝上后不知如何來(lái)用,汗。這個(gè)blog講解的比較清楚,有時(shí)間在好好研究一下這個(gè)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到過(guò)來(lái)改成db2java.jar
?
? set JAVA_VENDOR=SUN
? set JAVA_HOME=d:\bea\jdk142_11
??
出錯(cuò)weblogic版本:8。1
?
1.基本結(jié)構(gòu)
CREATE OR REPLACE PROCEDURE 存儲(chǔ)過(guò)程名字
(
??? 參數(shù)1 IN NUMBER,
??? 參數(shù)2 IN NUMBER
) IS
變量1 INTEGER :=0;
變量2 DATE;
BEGIN
END 存儲(chǔ)過(guò)程名字
2.SELECT INTO STATEMENT
? 將select查詢的結(jié)果存入到變量中,可以同時(shí)將多個(gè)列存儲(chǔ)多個(gè)變量中,必須有一條
? 記錄,否則拋出異常(如果沒(méi)有記錄拋出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 循環(huán)
? 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.帶參數(shù)的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
? 連接數(shù)據(jù)庫(kù)后建立一個(gè)Test WINDOW
? 在窗口輸入調(diào)用SP的代碼,F9開(kāi)始debug,CTRL+N單步調(diào)試
??
那么就在%ECLIPSE_HOME%\PlugInsNew\目錄下建立XYZ目錄,目錄里面是eclipse目錄,eclipse目錄包含有features與plugins兩個(gè)子目錄;結(jié)構(gòu)如下圖所示:
?? 1. 把下載的新插件的文件放在以下相應(yīng)目錄中
????? %ECLIPSE_HOME%\PlugInsNew\XYZ\eclipse\features
????? %ECLIPSE_HOME%\PlugInsNew\ XYZ\eclipse\plugins
?? 2. 建立相關(guān)的.link的文件
????? 然后在%ECLIPSE_HOME%\links目錄里建立一個(gè)XYZ.link的文件
????? 內(nèi)容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行這樣的路徑指示而已。
????? 這樣,如果你下載了多個(gè)插件就可以如法炮制建立多個(gè)Link文件,想加載哪個(gè)插件就把哪個(gè)插件的Link文件放到%ECLIPSE_HOME%\links的目錄中即可,使用與管理都很方便,建議千萬(wàn)不要放在默認(rèn)的安裝目錄中;
????? 如果你的%ECLIPSE_HOME%與此不同,請(qǐng)修改XYZ.link文件里的路徑
?? 3. 刪除,關(guān)閉Eclipse
????? 刪除%ECLIPSE_HOME%\links\XYZ.link文件即可
????? 刪除%ECLIPSE_HOME%\PlugInsNew\XYZ整個(gè)目錄及文件
?? 4. 重新啟動(dòng)Eclipse即可
?
原文:http://dev2dev.bea.com.cn/bbsdoc/20060126189.html